Open Inventor
Open Inventor ist eine freie objektorientierte C++-Programmbibliothek zur Erstellung von 3D-Grafiken unter Verwendung von OpenGL.
Geschichte
Die Programmierung von reinen OpenGL-Anwendungen ist recht zeitintensiv, so dass sich Silicon Graphics 1988/89 entschloss eine Bibliothek zur einfachen Erstellung von 3D-Applikationen zu erstellen. Open Inventor enthält vordefinierte Objekte wie Kugeln, Zylinder, Facesets. etc. und ist relativ einfach um eigene Objekte zu erweitern. Die Objekte werden in einem Szenengraph abgelegt und dann über OpenGL gerendert.
Open Inventor wird trotz seines Alters immer noch in technischen, medizinischen und wissenschaftlichen Anwendungen verwendet.
Von Silicon Graphics, Inc. (SGI) entwickelt wurde es 2000 unter der GNU Lesser General Public License freigegeben.<ref>Heise Meldung</ref>
Die Bibliothek wird von Silicon Graphics Incorporation als GPL-Version und FEI Company,<ref>FEI Company (früher VSG)</ref> sowohl als kommerzielle als auch als GPL-Version, unter dem ursprünglichen Namen Open Inventor angeboten. Zudem existiert vom Unternehmen Systems in Motion (heutiger Name Kongsberg SIM) ein Clone namens Coin3D, welcher zu 100 % kompatibel mit dem Original ist. Dokumentationen, Codebeispiele und Bücher über Open Inventor können auch für Coin3D verwendet werden.
Das durch Inventor verwendete Field-Routing beeinflusste die Struktur von 3D-Anwendungen nachhaltig und stellt bei Virtual-Reality-Anwendungen bis heute einen De-facto-Standard dar. So wurde das zugrunde liegende Design Pattern z. B. in InTml,<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20081106014939
| {{#ifeq: 20081106014939 | *
| {{#if: InTml | {{#invoke:WLink|getEscapedTitle|InTml}} | {{#invoke:Webarchiv|getdomain|http://www.cs.ualberta.ca/~pfiguero/InTml/}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20081106014939}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: InTml | {{#invoke:WLink|getEscapedTitle|InTml}} | {{#invoke:Webarchiv|getdomain|http://www.cs.ualberta.ca/~pfiguero/InTml/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2018-12-11 10:47:27 InternetArchiveBot | 2018-12-11 10:47:27 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20081106014939}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: InTml | {{#invoke:WLink|getEscapedTitle|InTml}} | {{#invoke:Webarchiv|getdomain|http://www.cs.ualberta.ca/~pfiguero/InTml/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2018-12-11 10:47:27 InternetArchiveBot | 2018-12-11 10:47:27 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: InTml | {{#invoke:WLink|getEscapedTitle|InTml}} | {{#invoke:Webarchiv|getdomain|http://www.cs.ualberta.ca/~pfiguero/InTml/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2018-12-11 10:47:27 InternetArchiveBot | 2018-12-11 10:47:27 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: InTml | {{#invoke:WLink|getEscapedTitle|InTml}} | {{#invoke:Webarchiv|getdomain|http://www.cs.ualberta.ca/~pfiguero/InTml/}} }} ({{#if: {{#if: 2018-12-11 10:47:27 InternetArchiveBot | 2018-12-11 10:47:27 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: InTml | {{#invoke:WLink|getEscapedTitle|InTml}} | {{#invoke:Webarchiv|getdomain|http://www.cs.ualberta.ca/~pfiguero/InTml/}} }}
}}}}}}}}{{#if:2018-12-11 10:47:27 InternetArchiveBot
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20081106014939|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.cs.ualberta.ca/~pfiguero/InTml/}}
|| {{#if: || }}
}}{{#if: InTml
| {{#if: {{#invoke:WLink|isBracketedLink|InTml}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.cs.ualberta.ca/~pfiguero/InTml/%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.cs.ualberta.ca/~pfiguero/InTml/%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.cs.ualberta.ca/~pfiguero/InTml/ }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref> Lightning<ref>Lighting</ref> und Avocado<ref>Avocado</ref> implementiert.
Siehe auch
Literatur
- The Inventor Mentor: Programming Object-Oriented 3d Graphics with Open Inventor, Release 2, 1st edition ISBN 978-0-201-62495-3
- The Inventor Toolmaker (Extending Open Inventor, Release 2), Addison-Wesley, 1994. ISBN 0-201-62493-1.
- Paul S. Strauss, Rick Carley: An Object-Oriented 3D Graphics Toolkit. Computer Graphics (SIGGRAPH ’92 Proceedings) July 1992, pp. 341–349
Weblinks
- FEI-Inventor
- Coin-Inventor
- Coin-Designer: Einfaches Zusammenklicken von 3D-Szenen und Export als Open-Inventor-Format
- C++-Referenz
- Open Inventor User Forum
Einzelnachweise
<references />