Deschideți Inventor

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 23 iulie 2022; verificarea necesită 1 editare .
Open Inventor [de la SGI]
Tip de Setul de instrumente pentru grafică 3D
Scris in C++ și Java
Interfață Qt
Platformă hardware Mașină virtuală Java
ultima versiune 2.1.5.10 (2003 ) ( 2003 )
Formate de fișiere care pot fi citite OpenFlight [d] [2],DXF[2], Open Inventor File Format, v1 [d] [2]și Open Inventor File Format, v2 [d] [2]
Licență Licență publică generală inferioară GNU [1]
Site-ul web oss.sgi.com/projects/inventor/

Open Inventor , inițial IRIS Inventor , este un set de instrumente de programare 3D orientat pe obiecte orientat spre C++ , dezvoltat de SGI pentru a programa OpenGL la un nivel superior de abstractizare. Obiectivele sale principale sunt de a îmbunătăți confortul și eficiența programatorului. Open Inventor există atât ca software proprietar, cât și ca software gratuit și open source, în conformitate cu termenii GNU Lesser General Public License (LGPL), versiunea 2.1.

Fundal

În jurul anilor 1988-89, Wei Yen i-a cerut lui Rikka Carey să conducă proiectul IRIS Inventor. Scopul lor a fost să creeze un set de instrumente care să faciliteze dezvoltarea aplicațiilor pentru grafică tridimensională. Strategia s-a bazat pe premisa că aplicațiile 3D cu IRIS GL au fost subdezvoltate deoarece a durat prea mult timp pentru a utiliza interfața de nivel scăzut oferită de IRIS GL. S-a presupus că numărul de dezvoltatori ar putea fi crescut dacă programarea 3D ar fi simplificată folosind un API orientat pe obiecte, ceea ce ar fi benefic pentru SGI. Principiul principal a fost prioritatea „ușurinței de utilizare” față de „performanță”, și sloganul „programare 3D pentru oameni”.

Utilizare

OpenGL (OGL) este o interfață de programare a aplicațiilor de nivel scăzut care își propune să accepte liste de poligoane simple și să le redeze cât mai repede posibil. Pentru utilizare practică, cum ar fi sarcina „desenează o casă”, programatorul trebuie să spargă obiectul într-o serie de instrucțiuni OGL simple și să le trimită motorului de randare. O problemă este că performanța OGL este foarte sensibilă la modul în care aceste instrucțiuni sunt trimise către sistem, forțând programatorul să selecteze cu atenție datele și să elaboreze ordinea de afișare și filtrare a obiectelor care nu ar trebui trimise deoarece nu vor fi trimise. vizibil în imaginea rezultată... Chiar și pentru programele simple, cantitatea de programare pentru a începe este enormă.

Open Inventor (OI) a fost scris pentru a rezolva această problemă și oferă o bază comună pentru a începe. Obiectele pot fi subclasate din mai multe forme pre-pliate, cum ar fi cuburi și poligoane și apoi ușor modificate în forme noi. „Lumea” care urmează să fie desenată a fost plasată într -un grafic al scenei condus de OI , sistemul aplicând automat eșantionarea ocluziei obiectelor din grafic. OI include, de asemenea, mai multe obiecte și sisteme de control pentru utilizare în scenă, ceea ce facilitează realizarea sarcinilor comune de interacțiune. În cele din urmă, OI a furnizat și un format de fișier comun pentru stocarea „lumilor” și a codului pentru a salva sau încărca automat o lume din acele fișiere. Aplicațiile 3D de bază care utilizează OpenInvertor ar putea fi scrise în cantitate de câteva sute de linii de cod, legând împreună bucăți dintr-o cutie de instrumente folosind cod „clei”.

Pe de altă parte, OI tinde să fie mai lent decât codul scris de mână, deoarece sarcinile 3D se realizează cel mai bine prin amestecarea manuală în graficul scenei. O altă problemă practică a fost că OI putea fi folosit doar cu propriul format de fișier, forțând dezvoltatorii să scrie convertoare în și din sistemul intern.

OpenGL Performer

Aproximativ un an mai târziu, o filozofie alternativă s-a infiltrat în proiectul Inventor. În loc să scrieți doar aplicații pe sisteme SGI, scopul a fost schimbat pentru a face mai dificilă scrierea aplicațiilor lente. Unii membri ai echipei Inventor au plecat pentru a-și forma propriul grup, care a stat la baza proiectului OpenGL Performer. Performer s-a bazat, de asemenea, pe un grafic al scenei intern, dar a avut capacitatea de a-l schimba în mod arbitrar pentru a crește viteza, eliminând chiar obiecte și poligoane „mai puțin importante” pentru a menține niveluri de performanță garantate. În plus, Performer a folosit o serie de procese pentru a rula sarcini în paralel pentru a îmbunătăți performanța, permițându-i să ruleze pe mai multe procesoare. Spre deosebire de Inventor, Performer a rămas proprietarul SGI, astfel încât compania a putut schimba API-ul după cum era necesar pentru a ține pasul cu cele mai recente îmbunătățiri hardware.

Mijlocul anilor 1990

La mijlocul anilor 1990, a devenit clar că ambele sisteme ar putea fi bine combinate, rezultând un singur API de nivel înalt care a furnizat atât performanță, cât și ușurință de programare. SGI a început să lucreze la un alt proiect care vizează fuzionarea ambelor, rezultatul a fost Cosmo 3D. Cu toate acestea, Cosmo a avut o serie de probleme practice care puteau fi rezolvate prin reproiectarea designului.

În cele din urmă, toate aceste idei au fost combinate într-un proiect comun cu Intel , IBM și DEC , OpenGL ++, care a devenit, de fapt, o versiune „purificată” și mai „deschisă” a Cosmo 3D. SGI a terminat lucrul la Cosmo și a trecut complet la OpenGL++. Dar munca pe OpenGL++ a durat și a fost în cele din urmă abandonată, după care SGI a încercat din nou un proiect Fahrenheit similar cu Microsoft , care a murit și el. În 1994, SGI a acordat licență Open Inventor pentru doi dezvoltatori terți, Template Graphics Software (TGS) și Portable Graphics, dar în 1996 deținătorii de licență au fuzionat prin achiziționarea TGS de către Portable Graphics.

Istoria modernă

Thermo Scientific Open Inventor
Tip de SDK pentru vizualizarea datelor 3D
Dezvoltator Thermo Fisher Scientific
Scris in C++ .NET Java
Interfață Qt
Platformă hardware Windows Linux macOS
ultima versiune 10.0 (10 octombrie 2018)
Formate de fișiere care pot fi citite OpenFlight [d] [2],DXF[2], Open Inventor File Format, v1 [d] [2]și Open Inventor File Format, v2 [d] [2]
Licență Software comercial proprietar (gratuit pentru uz academic necomercial)
Site-ul web thermofisher.com/openinventor

API -ul Open Inventor continuă să fie utilizat pe scară largă pentru o gamă largă de sisteme de vizualizare științifice și de inginerie din întreaga lume și este bine stabilit pentru dezvoltarea eficientă a software-ului complex pentru aplicații 3D.

După mulți ani de lucru la bibliotecă sub TGS (acum FEI) exclusiv sub o licență proprietară, Inventor a fost relansat de SGI sub o licență LGPL open source în august 2000 . SGI nu o sprijină în prezent și nu și-a manifestat niciun interes pentru dezvoltarea ulterioară a bibliotecii. Cu toate acestea, este utilizat de MeVisLab (MeVis Medical Solutions AG și Fraunhofer MEVIS) și dezvoltarea acestei versiuni este în curs de desfășurare [3] . În 2004, TGS a fost achiziționat de Mercury Computer Systems și a devenit din nou o companie independentă în iunie 2009 sub numele Visualization Sciences Group (VSG) Arhivat la 31 mai 2021 la Wayback Machine . În 2012, VSG a fost achiziționat de FEI . În 2016, FEI a fost achiziționată de Thermo Fisher Scientific (Divizia Materiale și Analiză Structurală), care continuă să dezvolte și să mențină Open Inventor . Arhivat 14 martie 2022 la Wayback Machine .

Cu puțin timp înainte de relansarea codului Inventor sub licența LGPL , SIM (Systems in Motion) a început dezvoltarea și a lansat o bibliotecă numită Coin3D , scrisă de la zero, fără a utiliza codul sursă al bibliotecii SGI Inventor, dar cu același API. din motive de compatibilitate. Ulterior, SIM a fost achiziționat de grupul Kongsberg și redenumit Kongsberg SIM, iar în 2011 dezvoltarea Coin3D a fost încheiată intern [4] , iar codul sursă a fost relansat sub o licență BSD și a început să fie dezvoltat de o comunitate independentă. Această implementare a API-ului Open Inventor a fost aleasă pentru a dezvolta sistemul CAD 3D cu sursă deschisă orientată pe obiecte universal FreeCAD .

Există, de asemenea, o versiune proprietară a Thermo Scientific Open Inventor, care este în curs de dezvoltare activă și a primit numeroase îmbunătățiri ale API-ului original Inventor, concentrate pe imagistica medicală, calculul imagistic medical, seismologia de reflexie 3D și modelarea rezervoarelor de petrol .

Note

  1. SGI - Developer Central Open Source - Open Inventor (link nu este disponibil) . Preluat la 11 mai 2020. Arhivat din original la 19 octombrie 2017. 
  2. 1 2 3 4 5 6 7 8 http://developer98.openinventor.com/content/chapter-12-importing-data
  3. MeVisLab . Preluat la 15 martie 2022. Arhivat din original la 8 martie 2022.
  4. Coin3D / Coin / wiki / Acasă - Github (30 martie 2020). Preluat la 11 mai 2020. Arhivat din original la 14 decembrie 2020.

Link -uri