Coin3D

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Coin3D
Logo
Vývojář Kongsberg Oil & Gas Technologies
Aktuální verze 3.1.3 (3. březen 2010)
Operační systém multiplatformní
Vyvíjeno v C++
Typ softwaru knihovna pro práci s 3D grafikou
Licence BSD (trojbodová)
Web https://bitbucket.org/Coin3D/coin/wiki/Home

Coin3D je vysokoúrovňové API pro efektivní vývoj 3D grafiky kompatibilní s API Open Inventor 2.1.

Vývoj a historie[editovat | editovat zdroj]

Coin vznikl v roce 1995 jako knihovna pro vykreslování grafu scény pro scény VRML 1.0. Tato knihovna původně vznikla z knihovny Qv od SGI pro parsování VRML 1.0 souborů.

V roce 1998 se vývoje ujala společnost SIM (Systems In Motion), která byla později přejmenována na Kongsberg SIM a později sloučená s mateřskou společností Kongsberg Oil & Gas Technologies. Postupným rozšiřováním této knihovny se kód stával více a více nekonzistentním a bylo potřeba celou knihovnu přepsat od základu.

Svým API byl Coin podobný již existujícímu Open Inventoru, který byl často zmiňován v knihách o softwarovém inženýrství, a také vývojáři Coinu jej považovali za metodologicky dobře navržený. Navíc ve stejné době začal získávat značnou popularitu open-source software, proto se vývojáři rozhodli, že vytvoří open-source alternativu k Open Inventoru a po krátkém období přepisování vznikla knihovna se jménem Coin (odvozeno od anglického "to coin" – vytvořit).

Když však byla vydána první betaverze Coinu pro SIGGRAPH 2000, vydala také SGI open-source verzi Open Inventoru. Brzy se ukázalo, že tato verze je pouze v režimu údržby a tak vývojáři doufali, že další vývoj Coinu má i tak smysl.

Na podzim roku 2000 dosáhl vývoj Coinu svého cíle a stal se plně kompatibilní s API Open Inventoru, avšak od té doby bylo přidáno plno dalších funkcí jako podpora 3D zvuku, GLSL shadery, podpora nových typů souborů jako např. VRML97 a mnoho dalších změn, především v optimalizaci vykreslovacích technik OpenGL.

Coin byl zpočátku vytvořen na Linuxu a IRIXu, ale později byl vyvíjen především pro Linux, Windows s Cygwin a Mac OS X.

V polovině roku 2011 oznámila společnost Kongsberg Oil & Gas Technologies konec vývoje Coin3D a celý projekt byl přesunut na stránky BitBucket, kde je od té doby pouze udržován opravami chyb.

V současnosti se můžeme setkat s pojmy Coin i Coin3D. Pojem Coin3D se používá pro sadu knihoven pod stejnou licencí jako Coin. Coin představuje jádro Coin3D.[1]

Klíčové vlastnosti[editovat | editovat zdroj]

Související informace naleznete také v článku Open Inventor.
Architektura Coin3D.

Kompatibilita s Open Inventor 2.1[editovat | editovat zdroj]

Coin3D je plně kompatibilní s API Open Inventoru 2.1 na úrovni zdrojového kódu. To znamená, že jakýkoliv kód napsaný pro Open Inventor 2.1 bude fungovat i v Coin3D a naopak. Kompatibilita na binární úrovni (ABI) ale zajištěna není. Pokud bychom tedy přeložili program na jedné implementaci Open Inventor API a poté nahradili runtime knihovnu jinou implementací, pravděpodobně dojde k chybám.

Knihovna Coin3D[editovat | editovat zdroj]

Základní vlastnosti knihovny Coin3D:

  • Podpora generických GLSL shaderů,
  • generický rendering stínů,
  • podpora geografických dat,
  • multithreading,
  • výstup ve vektorovém formátu PostScript,
  • TrueType font pro poznámky (2D a 3D),
  • podpora 3D zvuku,
  • 3D textury, multi-textury, bump mapping,
  • knihovny pro import a export souborů,
  • plugin pro Qt Designer (QWidget),
  • plugin pro volume rendering.


Vývoj v Coin3D[editovat | editovat zdroj]

Specifika vývoje v Coin3D:

  • Vysokoúrovňové API pro maximální efektivitu práce,
  • integrace do rozhraní Qt,
  • plný přístup ke zdrojovému kódu,
  • multiplatformnost,
  • API v C++, vazby na Python,
  • zdarma pro komerční použití (trojbodová BSD licence).

Udržování kompatibility mezi verzemi Coin3D[editovat | editovat zdroj]

Coin3D má propracovaný plán pro vydávání nových verzí a stanovuje přísná pravidla udržování kompatibility na úrovni API a ABI. Každá verze Coinu je označena číslem, které se skládá ze tří částí, které se nazývají major, minor a micro.

Všechny verze se shodným major a minor číslem musí být vždy vzájemně kompatibilní na úrovni API i ABI. Verze s rodílnou hodnotou micro slouží pouze k opravám chyb a úpravám dokumentace.

Všechny verze se shodným major označením musí být dopředně kompatibilní na úrovni ABI. Pokud si tedy uživatel nainstaluje novější verzi Coinu, která se nebude lišit major číslem, bude jeho kód fungovat, aniž by bylo nutné program překompilovávat. Tyto verze slouží k rozšiřování API a nazývají se minor releases.

Verze s rozdílným major číslem nemusí být vzájemně kompatibilní. Tyto verze se nazývají major releases a kompatibilitu porušují záměrně. Jejich podstatou je pročištění API a zavádění velkých změn.

Budoucnost[editovat | editovat zdroj]

Poslední verze Coin3D vyšla již v březnu 2010 a od té doby se v repositáři objevovaly pouze opravy chyb. Poslední commit do repositáře Coin3D pochází z prosince roku 2011, takže se zdá, že jeho vývoj v současné době ustal.[2]

Nadstavby[editovat | editovat zdroj]

Coindesigner[editovat | editovat zdroj]

Multiplatformní open-source systém využívající Coin pro vytváření 3D scén stylem drag&drop. Rozhraní je podobné například aplikaci Qt Designer nebo Glade umožuňující výběr komponenty z nabídky komponent, její umístění ve scéně a nastavení parametrů. Umožňuje import a export souborů podporovaných Coinem a export aplikace do C++.[3]

IVuPy[editovat | editovat zdroj]

IVuPy poskytuje více než 600 tříd z Coin a SoQt pro rozlehlé Qt aplikace v jazyce Python, zaměřující se na 3D vizualizaci a analýzu velkého množství dat. Vyvíjeno pod licencí GPL.[4]

Pivy[editovat | editovat zdroj]

Podobně jako IVuPy, Pivy vytváří vazby mezi prostředím Coin a jazykem Python, což umožňuje vyvíjet, rozšiřovat a modifikovat Coin aplikace v jazyce Python. Na rozdíl od IVuPy, Pivy využívá SWIG pro propojení těchto technologií.[5]

Licence[editovat | editovat zdroj]

Od roku 1998 do roku 2011 byl Coin3D nabízen pod dvěma licencemi – GPL a Professional Edition License. V roce 2011 bylo kvůli snižující se poptávce upuštěno od vývoje komerční verze produktu a Coin3D byl přelicencován na trojbodovou BSD licenci, která umožňuje volné používání pro komerční účely. Držitelům Professional Edition License byl oznámen konec vývoje Coin3D.

Reference[editovat | editovat zdroj]

  1. Coin3D / Coin / wiki / IntroductionToCoin3D — Bitbucket
  2. Coin3D / Coin / Commits — Bitbucket
  3. Coindesigner
  4. IVuPy
  5. Coin binding for Python—Pivy

Zdroje[editovat | editovat zdroj]