Vizualizační knihovna - Visualization Library

Vizualizační knihovna
První vydání7. května 2007; Před 13 lety (2007-05-07)
Stabilní uvolnění
1.0.0 / 16. května 2012; před 8 lety (2012-05-16)
NapsánoC ++
Operační systémCross-platform
Typ3D grafika
LicenceZjednodušená licence BSD
webová stránkavizualizační knihovna.org

Vizualizační knihovna (VL) je open source C ++ middleware pro 2D / 3D grafické aplikace založené na OpenGL 4, určený k vývoji přenosných aplikací pro Microsoft Windows, Linux a Mac OS X operační systémy.

Cíle designu

Knihovna vizualizace byla navržena tak, aby:

  1. Implementujte intuitivní, tenký a přenosný obal C ++ kolem OpenGL 4.
  2. Buďte plně kompatibilní se staršími verzemi OpenGL (1.x, 2.xa 3.x).
  3. Poskytujte funkce a výkony moderních grafických procesorů také pro neherní aplikace, jako je virtuální realita, vědecká a lékařská vizualizace, simulátory, školení atd.
  4. Poskytněte obecný a jemnozrnný rámec, který lze použít k sestavení přizpůsobených technik vykreslování.
  5. Vyhněte se architektonickým omezením paradigmatu uber-scéna-graf.
  6. Dejte programátorovi co největší kontrolu a zároveň se postarejte o špinavé detaily.

Vnitřní design

Návrh vizualizační knihovny je založen na specializaci a oddělení algoritmických a datových struktur, na rozdíl od mnoha jiných 3D rámců, které jsou součástí tzv. graf scény "rodina, to znamená ty 3D stroje, které udržují všechny informace o vykreslování v jedné hierarchické struktuře. Visualization Library tedy používá různé datové struktury (možná hierarchické) ke správě každé konkrétní domény vykreslovacího kanálu."

Například transformační strom je uchováván v samostatné datové struktuře stromového grafu a objekty, které jsou součástí scény („Actors“ v jazyce Visualization Library), mohou volně odkazovat na uzel transformačního stromu.

Herci jsou drženi ve své vlastní scéně dělící datovou strukturu, ze které je testována jejich viditelnost proti zobrazit frustum a ze kterého se nakonec extrahují v době vykreslení, aby byly součástí fronty vykreslení. To umožňuje nezávislosti VL na prakticky jakékoli technice správy scén, jako je PVS, portál / sektor, KdTree, čtyřkolky, oktávy atd.

Shadery jsou také koncept, který je udržován nezávisle na zbytku logiky a nevyžadují, aby herec používal jakoukoli hierarchickou datovou strukturu. VL však poskytuje třídu ShaderNode jako službu na vysoké úrovni, která uživateli umožňuje hierarchicky aktualizovat a spravovat shadery pomocí pravidel dědičnosti podobných pravidlům běžně dostupným v rámcích založených na grafech uber-scene-graph. Renderovací kanál sleduje podobný modulární přístup, takže vysoce přizpůsobené techniky vykreslování lze implementovat sestavením a opětovným použitím komponent VL.

Hlavní rysy

  • Podpora OpenGL: 1.x, 2.x, 3.x, 4.x.
  • Podpora OS: Windows XP, Vista, 7, Mac OS, Linux
  • Vazby GUI: Win32, MFC, Qt4, wxWidgets, SDL, GLUT.
  • Formáty 3D souborů: 3DS, OBJ, PLY (binární a ascii), STL (binární a ascii), AC3D, MD2. Lze zapojit další.
  • Podporované formáty obrazových souborů: JPG, PNG, TGA, TIFF, BMP, DDS, DICOM. Lze zapojit další.
  • Vizualizace svazku: vykreslování svazku paprsků (přenosové funkce, isosurface atd.), Plátky zarovnané na obrazovku, efektivní implementace pochodových kostek.
  • Textury: 1D / 2D / 3D textury, krychlové mapy, více textur, pole textury, obdélníky textury, vykreslení na texturu, generování souřadnic textury, kombinátory textur, mipmapování a generování mipmaps, anizotropní filtrování, komprimované textury, hloubkové textury, celočíselné textury, jiné normalizované textury, vyrovnávací paměti textur, vícevzorové textury.
  • Podpora stínovacího jazyka OpenGL 1.x až 4.x včetně shaderů geometrie a mozaiky.
  • Automatická správa průhlednosti.
  • Automatické třídění stavu vykreslování a minimalizace nastavení.
  • Automatická správa objektů Buffer Vertex.
  • Rozsáhlá podpora framebufferů.
  • Poskytovaní správci scén: obecný hierarchický strom svazků, KdTree, portálový graf scén.
  • Vysoce kvalitní funkce a třídy pro vykreslování textu v Unicode a manipulaci s textem.
  • GLSL založená na C ++ pokročilé knihovně vektorů / matic.
  • Funkce optimalizace geometrie, zmenšení / decimace trojúhelníku, odstranění dvojitého vrcholu atd.
  • Molekulární vizualizace.
  • Generování vytlačování.
  • Lineární a Catmull-Romova interpolace.
  • Bikubické Bézierovy povrchy.
  • Vylepšení hran a siluet.
  • Virtuální souborový systém: abstraktní souborový systém, který transparentně umožňuje přístup k souborům na disku, paměťovým souborům, souborům ZIP a souborům GZ.
  • Rozšiřitelný systém zdrojů na podporu nových typů zdrojů a formátů souborů.
  • Mnoho dokumentace a mnoho příkladů.

Stav vývoje

První veřejné vydání Visualization Library bylo 7. května 2007.

Visualization Library je v současné době na svém druhém stabilním vydání, VL 2011.05.1140, které navazuje na první, VL 2009.07.640. Zatímco design zůstal v podstatě stejný, nejnovější stabilní vydání se od svého předchůdce liší hlavně pro: podporu OpenGL 3 a 4 a zejména shadery teselace, jednotné proměnné s dvojitou přesností, nové formáty textury, jako jsou vícevzorové textury a objekty textury, rozsáhlá podpora objektů framebuffer a lepší vyladění pro aplikace, které hojně využívají GLSL, kromě mnoha dalších vylepšení.

Viz také

externí odkazy