OptiX | |
---|---|
Oficiální logo OptiX | |
Typ | Grafický engine |
Vývojář | nVidia |
Datum vyhlášení | 6. srpna 2009 |
Datum vydání | 5. listopadu 2009 |
Hardwarová platforma | Počítač kompatibilní s IBM PC s určitými grafickými kartami |
Podporovaný OS | Microsoft Windows , Linux , macOS |
Napsáno v jazyce | C++ a C |
Licence | proprietární , používání a licencování motoru zdarma ( freeware ) |
Nejnovější verze | 7.0.0 / 30. července 2019 |
developer.nvidia.com/opt… |
OptiX ( nVidia OptiX ) je grafický engine ray tracing využívající technologii CUDA společnosti nVidia . Ray tracing lze použít jako metodu pro analýzu a zkoumání geometrických systémů pomocí výpočtu šíření vln nebo částic.
Engine nVIDIA OptiX je součástí sady modulů pro vývojáře, která kromě OptiX obsahuje další moduly jako SceniX a CompleX . Všechny jsou integrovány do aplikací třetích stran [1] [2] .
nVidia OptiX je softwarový nástroj, který implementuje vykreslování ray tracingu v reálném čase pomocí GPU nVidia . OptiX využívá technologii CUDA k provádění výpočtů na GPU. Přestože hlavní funkcí OptiX je vykreslování ray tracingu, je podporována i klasická rasterizace . OptiX je tedy hybridní renderer. Přestože je OptiX grafický engine, lze jej použít i pro negrafické výpočty. Náplní OptiX jsou všechny výpočetně náročné úlohy, na které lze ray tracing aplikovat ("ray tracing" zde neznamená ray tracing ve vztahu k počítačové grafice, ale ray tracing jako metoda analýzy a studia geometrických systémů pomocí výpočtu šíření vln nebo částic, viz Ray ] 4[[3])fyzika(tracing
OptiX poskytuje programovatelný ray tracing pipeline využívající programovací jazyk C [2] s omezeními. OptiX je vývojáři umístěn jako velmi flexibilní engine, který lze podrobně konfigurovat a přizpůsobit konkrétním úkolům. Uživatelé OptiX – vývojáři aplikací – mohou urychlit úlohy sledování paprsků, které potřebují. Flexibilita OptiX začíná v abstrakci provedení a končí u jednotlivých paprsků, což značně zjednodušuje výpočty pro jeden paprsek za jednotku času. Data, která paprsek přenáší a shromažďuje, jsou plně přizpůsobitelná. Data přiváděná do OptiX jsou také programovatelná, což umožňuje programovatelné shadery pro nové techniky, programovatelné průniky pro procedurální typy povrchů a programovatelné virtuální kamery pro kompoziční potenciál [5] .
OptiX obsahuje takové kritické funkce, jako je paralelismus (jak v rámci GPU, tak mezi GPU a CPU ), použití datových struktur, jako jsou k-dimenzionální stromy a hierarchie ohraničujících svazků , a také různé obtokové algoritmy. Využití GPU je řízeno pomocí vestavěného modulu pro vyrovnávání zátěže OptiX. Protože OptiX je hybridní renderer, poskytuje podporu pro grafická API , jako je OpenGL , což vám umožňuje kombinovat techniky ray tracingu a rastrovaného vykreslování pro větší flexibilitu [5] [6] .
OptiX verze 1 vyžaduje profesionální grafické karty z rodiny nVidia Quadro FX nebo nVidia Tesla . OptiX verze 2 má podporu pro architekturu nVidia Fermi , takže může běžet na grafických kartách s nainstalovaným GPU GF100. Navíc jsou podporovány nejen profesionální grafické karty, ale také vlastní modely GeForce, jako jsou GeForce 480 a GeForce 470. Další novinkou OptiX 2 je podpora vlastních grafických karet řady GeForce 200 (GT200) . Při použití řady GT200 je však vyžadována GeForce GTX 260 nebo vyšší [7] [8] .
Kompletní seznam GPU podporovaných jádrem OptiX 2 [8] :
Kromě grafických karet s určitými GPU je vyžadován CPU kompatibilní s x86 [8] .
OptiX vyžaduje verzi v.190 ovladače NVIDIA Unified Graphics Driver nebo novější. GT200 vyžaduje CUDA Toolkit 2.3 nebo novější a GF100 vyžaduje CUDA Toolkit 3.0 nebo novější. Je také vyžadován kompilátor C/C++: pro Microsoft Windows , Visual Studio 2005 nebo Visual Studio 2008 a pro Linux gcc 4.2 nebo 4.3. Kromě toho je vyžadován multiplatformní systém pro automatizaci sestavení softwaru ze zdrojového kódu CMake verze 2.6.3 nebo novější [8] .
Motor OptiX podporuje 32bitové i 64bitové operační systémy [8] :
OptiX lze použít v různých aplikacích: stavba fotorealistických modelů, automobilový design, návrh hudebních nástrojů a optických systémů, kapacitní a radiační studie, analýza kolizí a cokoli jiného, kde lze použít algoritmus sledování paprsku . OptiX lze použít v aplikacích, které používají scénický engine SceniX , jako je RTT DeltaGen , Autodesk Showcase a Anark Media Studio [3] [4] .
nVidia zveřejnila na svých oficiálních stránkách řadu příkladů demonstrujících fungování OptiX“ [15] [16] [17] :
OptiX byl poprvé oznámen 6. srpna na mezinárodní výroční konferenci SIGGRAPH 2009, která se konala od 3. do 7. srpna včetně v New Orleans [18] . Na SIGGRAPH 2009 byl oznámen název enginu, jeho hlavní funkcionalita, zaměření na určité úkoly, hlavní vlastnosti atd. Jeff Brown, generální ředitel divize profesionálních řešení společnosti nVidia, k oznámení OptiX uvedl: „Svět výpočetní techniky se posunul od počítání pouze na procesoru k vyváženému společnému zpracování na CPU a GPU. Aplikační akcelerační motory nVidia vybavují vývojáře nástroji, které potřebují k další revoluci v grafice v reálném čase a komplexní analýze dat." Jon Peddie , zakladatel a prezident think-tanku Jon Peddie Research , v době oznámení uvedl, že „za jeden rok byla nVidia schopna přejít od tvrzení, že interaktivní vizualizace sledování paprsků je možná, aby ji umožnila všem“ [4] [19] .
Před tímto oznámením OptiX se software Nvidia pro sledování paprsků v reálném čase nazýval NVIRT (Nvidia Interactive Raytracer) [19] .
Kromě OptiX byly na SIGGRAPH 2009 oznámeny také SceniX , CompleX a 64bitová verze PhysX . Bylo uvedeno, že OptiX bude k dispozici na podzim 2009 a poběží na profesionálních grafických kartách (videokartách) nVidia Quadro [2] [4] .
Na konci srpna 2009 zveřejnila nVidia na svých webových stránkách příklady použití enginu OptiX. Byly publikovány tři příklady: Whitted (ukázka lomů, odrazů a průhledných objektů), Cook (ukázka Depth Of Field a Motion Blur ) a Julia (procedurální objekty a výpočet Ambient Occlusion ) [15] [16] [17] .
5. listopadu 2009, jak bylo slíbeno na SIGGRAPH 2009, nVidia vydala OptiX. OptiX byl uvolněn pro veřejnost jako OptiX SDK . Spolu s vydáním bylo oznámeno, že motor bude fungovat na profesionálních grafických kartách řady Quadro FX a nVidia Tesla a také na řadě vlastních grafických karet GeForce 200 [6] [20] [21] .
22. ledna 2010 vydala nVidia první beta verzi OptiX 2, jejímž hlavním rysem je zpracování pro architekturu GPU nVidia Fermi . Také v této verzi může engine fungovat nejen na profesionálních grafických kartách Quadro a Tesla, ale také na vlastních grafických kartách GeForce [7] .
13. března 2010 byla vydána třetí beta verze OptiX 2, která přidala předběžnou podporu pro první grafické karty založené na Fermi a interakci na úrovni textury a vyrovnávací paměti s Direct3D [22] .
29. července 2010 nVidia představila nové profesionální GPU a grafické karty z řady Quadro založené na architektuře Fermi . Charakteristickým rysem těchto grafických karet je rozšířená podpora pro aplikační akcelerační motory ( Application Acceleration Engine-AX ), z nichž jedním je OptiX . Bylo uvedeno, že GPU Quadro 6000 zvýší výkon v AX až pětinásobně oproti předchozí generaci modelů této řady. „Quadro je již více než deset let celosvětově nejlepší volbou profesionálů. Postavili jsme také motory jako AX, abychom poháněli vývoj aplikací nové generace,“ řekl k oznámení Jeff Brown, ředitel profesionálních řešení ve společnosti nVidia [ 23 ] . Ve stejný den bylo v rámci SIGGRAPH 2010 oznámeno vydání nových verzí aplikačních akceleračních motorů. Vyšla stabilní verze OptiX 2, která byla oproti předchozím optimalizována pro běh na nových Quadro GPU a navíc získala podporu Direct3D a možnost rychlé práce v Direct3D a OpenGL pro flexibilní skládání a hybridní vykreslování [24] [ 25] . Kromě toho na SIGGRAPH 2010 zaměstnanci nVidie uspořádali prezentaci „OptiX: A General Purpose Ray Tracing Engine“ v rámci sekce „GPU rendering“ [26] [27] .
Nvidia | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
GPU ( srovnání ) _ |
| ||||||||||
Čipové sady základní desky ( srovnání ) _ |
| ||||||||||
jiný |
|