Vizualizační knihovna - Visualization Library
![]() | tento článek příliš spoléhá na Reference na primární zdroje.Září 2019) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
První vydání | 7. května 2007 |
---|---|
Stabilní uvolnění | 1.0.0 / 16. května 2012 |
Napsáno | C ++ |
Operační systém | Cross-platform |
Typ | 3D grafika |
Licence | Zjednodušená licence BSD |
webová stránka | vizualizační knihovna |
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:
- Implementujte intuitivní, tenký a přenosný obal C ++ kolem OpenGL 4.
- Buďte plně kompatibilní se staršími verzemi OpenGL (1.x, 2.xa 3.x).
- 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.
- Poskytněte obecný a jemnozrnný rámec, který lze použít k sestavení přizpůsobených technik vykreslování.
- Vyhněte se architektonickým omezením paradigmatu uber-scéna-graf.
- 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í.