Öppna Inventor

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 23 juli 2022; verifiering kräver 1 redigering .
Open Inventor [av SGI]
Sorts 3D-grafik verktygslåda
Skrivet i C++ och Java
Gränssnitt Qt
Hårdvaruplattform Java Virtual Machine
senaste versionen 2.1.5.10 (2003 ) ( 2003 )
Läsbara filformat OpenFlight [d] [2],DXF[2], Open Inventor File Format, v1 [d] [2]och Open Inventor File Format, v2 [d] [2]
Licens GNU Lesser General Public License [1]
Hemsida oss.sgi.com/projects/inventor/

Open Inventor , ursprungligen IRIS Inventor , är en C++- orienterad 3D objektorienterad programmeringsverktygssats utvecklad av SGI för att programmera OpenGL på en högre abstraktionsnivå. Dess huvudsakliga mål är att förbättra programmerarens bekvämlighet och effektivitet. Open Inventor finns både som proprietär programvara och fri och öppen källkod, under villkoren i GNU Lesser General Public License (LGPL), version 2.1.

Bakgrund

Runt 1988-89 bad Wei Yen Rikka Carey att leda projektet IRIS Inventor. Deras mål var att skapa en uppsättning verktyg som gör det lättare att utveckla applikationer för tredimensionell grafik. Strategin baserades på antagandet att 3D-applikationer med IRIS GL var underutvecklade eftersom det tog för lång tid att använda lågnivågränssnittet från IRIS GL. Det antogs att antalet utvecklare kunde ökas om 3D-programmering förenklades med hjälp av ett objektorienterat API, vilket skulle vara fördelaktigt för SGI. Huvudprincipen var prioriteringen av "användarvänlighet" framför "prestanda", och sloganen "3D-programmering för människor".

Användning

OpenGL (OGL) är ett applikationsprogrammeringsgränssnitt på låg nivå som syftar till att acceptera listor med enkla polygoner och rendera dem så snabbt som möjligt. För praktisk användning, såsom uppgiften "rita ett hus", måste programmeraren dela upp objektet i en serie enkla OGL-instruktioner och skicka dem till renderingsmotorn. Ett problem är att OGL:s prestanda är mycket känslig för hur dessa instruktioner skickas till systemet, vilket tvingar programmeraren att noggrant välja data och räkna ut ordningen för visning och filtrering av objekt som inte ska skickas eftersom de inte kommer att skickas. syns i den resulterande bilden. . Även för enkla program är mängden programmering för att komma igång enorm.

Open Inventor (OI) skrevs för att lösa detta problem och ger en gemensam baslinje för att komma igång. Objekt kan underklassas från flera förvikta former som kuber och polygoner och sedan enkelt modifieras till nya former. "Världen" som skulle ritas placerades i en OI-driven scengraf , där systemet automatiskt tillämpade ocklusionssampling på objekt i grafen. OI inkluderar även flera objekt och styrsystem för användning i scenen, vilket gör det lättare att utföra vanliga interaktionsuppgifter. Slutligen tillhandahöll OI också ett vanligt filformat för att lagra "världar" och kod för att automatiskt spara eller ladda en värld från dessa filer. Grundläggande 3D-applikationer som använder OpenInvertor kan skrivas i mängden flera hundra rader kod, som binder ihop bitar från en verktygslåda med hjälp av "lim"-kod.

Å andra sidan tenderar OI att vara långsammare än handskriven kod eftersom 3D-uppgifter bäst görs genom manuell blandning i scendiagrammet. Ett annat praktiskt problem var att OI endast kunde användas med sitt eget filformat, vilket tvingade utvecklare att skriva omvandlare till och från det interna systemet.

OpenGL Performer

Ungefär ett år senare infiltrerades en alternativ filosofi i Inventor-projektet. Istället för att bara skriva applikationer på SGI-system har målet ändrats för att göra det svårare att skriva långsamma applikationer. Några medlemmar i Inventor-teamet lämnade för att bilda sin egen grupp, som låg till grund för OpenGL Performer-projektet. Artisten förlitade sig också på en intern scengraf, men den hade förmågan att godtyckligt ändra den för att öka hastigheten, till och med kassera "mindre viktiga" objekt och polygoner för att upprätthålla garanterade prestandanivåer. Dessutom använde Performer ett antal processer för att köra uppgifter parallellt för att förbättra prestandan, vilket gjorde att den kunde köras på flera processorer. Till skillnad från Inventor förblev Performer SGIs egendom, så företaget kunde ändra API efter behov för att hålla jämna steg med de senaste hårdvaruförbättringarna.

Mitten av 1990-talet

I mitten av 1990-talet stod det klart att båda systemen mycket väl kunde kombineras, vilket resulterade i ett enda högnivå-API som gav både prestanda och enkel programmering. SGI började arbeta med ett annat projekt som syftade till att slå samman båda, resultatet blev Cosmo 3D. Cosmo hade dock ett antal praktiska problem som kunde lösas genom att göra om designen.

I slutändan kombinerades alla dessa idéer i ett gemensamt projekt med Intel , IBM och DEC , OpenGL ++, som faktiskt blev en "renad" och mer "öppen" version av Cosmo 3D. SGI har avslutat arbetet med Cosmo och gått över helt till OpenGL++. Men arbetet med OpenGL++ drog ut på tiden och övergavs så småningom, varefter SGI återigen provade ett liknande Fahrenheit-projekt med Microsoft , som också dog. 1994 licensierade SGI Open Inventor till två tredjepartsutvecklare, Template Graphics Software (TGS) och Portable Graphics, men 1996 slogs licensinnehavarna samman genom köpet av TGS av Portable Graphics.

Modern historia

Thermo Scientific Open Inventer
Sorts 3D-datavisualisering SDK
Utvecklaren Thermo Fisher Scientific
Skrivet i C++ .NET Java
Gränssnitt Qt
Hårdvaruplattform Windows Linux macOS
senaste versionen 10,0 (10 oktober 2018)
Läsbara filformat OpenFlight [d] [2],DXF[2], Open Inventor File Format, v1 [d] [2]och Open Inventor File Format, v2 [d] [2]
Licens Proprietär kommersiell programvara (gratis för icke-kommersiell akademisk användning)
Hemsida thermofisher.com/openinventor

Open Inventor API fortsätter att användas i stor utsträckning för ett brett utbud av vetenskapliga och tekniska visualiseringssystem runt om i världen, och är väletablerat för effektiv utveckling av komplex programvara för 3D-applikationer.

Efter många års arbete med biblioteket under TGS (nu FEI) exklusivt under en egen licens, återutgavs Inventor av SGI under en LGPL -licens med öppen källkod i augusti 2000 . SGI stödjer för närvarande inte det, och har inte visat något intresse för vidareutveckling av biblioteket. Den används dock av MeVisLab (MeVis Medical Solutions AG och Fraunhofer MEVIS) och utvecklingen av denna version pågår [3] . 2004 förvärvades TGS av Mercury Computer Systems och blev ett oberoende företag igen i juni 2009 under namnet Visualization Sciences Group (VSG) Arkiverad 31 maj 2021 på Wayback Machine . 2012 förvärvades VSG av FEI . 2016 förvärvades FEI av Thermo Fisher Scientific (Materials and Structural Analysis Division), som fortsätter att utveckla och underhålla Open Inventor . Arkiverad 14 mars 2022 på Wayback Machine .

Strax före återutgivningen av Inventor-koden under LGPL -licensen började SIM (Systems in Motion) utvecklingen och släppte ett bibliotek som heter Coin3D , skrivet från grunden, utan att använda källkoden för SGI Inventor-biblioteket, men med samma API av kompatibilitetsskäl. Därefter förvärvades SIM av Kongsberg-gruppen och döptes om till Kongsberg SIM, och 2011 avslutades Coin3D-utvecklingen internt [4] , och källkoden släpptes på nytt under en BSD-licens, och började utvecklas av en oberoende community. Det var denna implementering av Open Inventor API som valdes för att utveckla det universella objektorienterade 3D CAD -systemet FreeCAD med öppen källkod .

Det finns också en egenutvecklad version av Thermo Scientific Open Inventor som är under aktiv utveckling och som har fått många förbättringar av det ursprungliga Inventor API fokuserat på medicinsk bildbehandling , medicinsk bildbehandling, 3D - reflektionsseismologi och oljereservoarmodellering .

Anteckningar

  1. SGI - Developer Central Open Source - Open Inventor (länk ej tillgänglig) . Hämtad 11 maj 2020. Arkiverad från originalet 19 oktober 2017. 
  2. 1 2 3 4 5 6 7 8 http://developer98.openinventor.com/content/chapter-12-importing-data
  3. MeVisLab . Hämtad 15 mars 2022. Arkiverad från originalet 8 mars 2022.
  4. Coin3D / Coin / wiki / Home - Github (30 mars 2020). Hämtad 11 maj 2020. Arkiverad från originalet 14 december 2020.

Länkar