Szoftver renderelés - Software rendering

Image
GPU nélküli eszközön futó szoftver -megjelenítő .

A szoftveres megjelenítés az a folyamat, amelynek során számítógépes szoftverek segítségével képeket hoznak létre a modellből. A számítógépes grafikus megjelenítés összefüggésében a szoftveres megjelenítés olyan renderelési folyamatra utal, amely nem függ a grafikus hardver ASIC -eitől , például a grafikus kártyától . A megjelenítés teljes egészében a CPU -ban történik . Az (általános célú) CPU-val történő minden renderelés fő előnye, hogy nem korlátozódik a grafikus hardver (korlátozott) képességeire, de hátránya, hogy több félvezetőre van szükség az azonos sebesség eléréséhez.

A renderelést építészetben, szimulátorokban, videojátékokban, filmekben és televíziós vizuális effektekben, valamint dizájn vizualizációban használják. A renderelés az animációs folyamat utolsó lépése, és vizuális effektekkel, például árnyékolással, textúra-leképezéssel, árnyékokkal, visszaverődésekkel és mozgás-elmosódással végleges megjelenést kölcsönöz a modelleknek és az animációknak . A megjelenítés két fő kategóriába sorolható: valós idejű megjelenítés (más néven online megjelenítés) és előzetes megjelenítés (más néven offline renderelés). A valós idejű megjelenítést interaktív renderelésre használják, például a 3D-s számítógépes játékokban , és általában minden képkockát néhány ezredmásodperc alatt kell megjeleníteni. Az offline megjelenítést valósághű képek és filmek készítésére használják, ahol minden képkocka órákig vagy napokig eltarthat, vagy a komplex grafikus kód hibakeresésére a programozók által.

Valós idejű szoftver megjelenítés

A valós idejű megjelenítésnél a teljesítményen van a hangsúly. A legkorábbi textúrájú, valós idejű szoftveres megjelenítők PC-k számára sok trükköt alkalmaztak a 3D geometria illúziójának megteremtésére (a valódi 3D csak lapos vagy Gouraud-árnyékolt sokszögekre korlátozódott, főleg repülésszimulátorokban .) Az Ultima Underworld például korlátozott formát engedélyezett a fel -le nézés, a ferde padló és a szobák fölött lévő szobák, de minden részletes tárgyhoz sprite -ot használtak . Az ezekben a játékokban használt technológia jelenleg a 2.5D kategóriába tartozik .

A modern 3D címekhez építészetileg hasonló első játékok egyike, amely teljes 6DoF -et engedélyezett , a Descent volt , amely 3D -s modelleket tartalmazott , amelyek teljes egészében bitképes textúrájú háromszögletű sokszögekből készültek . A Voxel -alapú grafika a Delta Force esetében is népszerűvé vált a gyors és viszonylag részletes terepvisszaadáshoz , de a népszerű fix funkciójú hardverek végül ellehetetlenítették használatát. A Quake -ben Michael Abrash és John Carmack hatékony szoftver -megjelenítője található . Népszerűségével a Quake és más akkori sokszögű 3D -s játékok segítették a grafikus kártyák értékesítését , és több játék kezdett hardver API -kat használni, mint például a DirectX és az OpenGL . Bár a szoftveres megjelenítés elsõdleges renderelési technológiaként esett le, sok játéknak a 2000 -es években is volt tartalék szoftver -visszaállítója, például az Unreal és az Unreal Tournament olyan szoftver -megjelenítõket tartalmaz, amelyek élvezetes minõséget és teljesítményt tudnak nyújtani az adott idõszak CPU -jain. Az egyik utolsó hardveres renderelő nélküli AAA játék az Outcast volt , amely fejlett voxel technológiát, de textúraszűrést és ütésleképezést is tartalmazott, mint a grafikus hardverek.

A videojáték-konzolok és az arcade-játékok piacán a 3D fejlődése hirtelen volt, mivel mindig nagy mértékben támaszkodtak az egycélú lapkakészletekre. A 16 bites konzolok RISC gyorsítópatronokat szereztek olyan játékokban, mint a StarFox és a Virtua Racing, amelyek személyre szabott utasításkészleteken keresztül valósították meg a szoftveres megjelenítést. A Jaguar és a 3DO volt az első konzol, amelyet 3D hardverrel szállítottak, de csak a PlayStationben kezdték használni ezeket a funkciókat a legtöbb játékban.

Az 1990 -es évek végétől a 2000 -es évek elejéig tartó gyermekeknek és alkalmi játékosoknak szóló játékok (akik elavult rendszereket vagy elsősorban irodai alkalmazásokhoz használt rendszereket használnak) általában szoftveres visszaadót használtak. Például a Toy Story 2: Buzz Lightyear to the Rescue választhat, hogy hardver vagy szoftver renderelést választ a játék lejátszása előtt, míg mások, mint a Half-Life alapértelmezés szerint szoftver mód, és beállíthatók az Opciók menü OpenGL vagy DirectX használatára . Egyes 3D modellező szoftverek szoftvermegjelenítőket is tartalmaznak a vizualizációhoz. És végül a hardver emulálása és ellenőrzése szoftver -visszaadót is igényel. Ez utóbbira példa a Direct3D referencia raszterizátor.

De még a csúcskategóriás grafikák esetében sem halt ki teljesen a szoftver-megjelenítés „művészete”. Míg a korai grafikus kártyák sokkal gyorsabbak voltak, mint a szoftvermegjelenítők, és eredetileg jobb minőségűek és több funkcióval rendelkeztek, a fejlesztőt a „fix funkciójú” pixelfeldolgozásra korlátozta. Hamarosan szükség volt a játékok megjelenésének diverzifikálására. A szoftver megjelenítésének nincsenek korlátozásai, mert tetszőleges program fut. Tehát a grafikus kártyák újra bevezették ezt a programozhatóságot, azáltal, hogy csúcsonként és képpontonként / töredékenként kis programokat hajtottak végre , más néven árnyékolók . A Shader nyelvek, mint például a High Level Shader Language (HLSL) a DirectX -ben vagy az OpenGL Shading Language (GLSL), C -szerű programozási nyelvek az árnyékolók számára, és kezdenek némi hasonlóságot mutatni a (tetszőleges funkciójú) szoftver -megjelenítéssel.

Amióta a grafikus hardvert elfogadták a valós idejű megjelenítés elsődleges eszközeként, a CPU teljesítménye folyamatosan nőtt. Ez lehetővé tette új szoftver -megjelenítési technológiák megjelenését. Bár nagyrészt a hardver-renderelés teljesítménye árnyékolja be, néhány modern valós idejű szoftver-megjelenítőnek sikerül ötvöznie a széles körű funkciókészletet és az ésszerű teljesítményt (egy szoftver-megjelenítő esetében), speciális dinamikus összeállítások és speciális utasításkészletek, például az SSE használatával . Bár manapság a hardver -renderelés dominanciája a szoftveres megjelenítéssel szemben vitathatatlan a páratlan teljesítmény, a funkciók és a folyamatos innováció miatt, egyesek úgy vélik, hogy a CPU -k és a GPU -k így vagy úgy konvergálnak, és a szoftver és a hardver -megjelenítés közötti határ elhalványul.

Szoftver tartalék

Különböző okok miatt, mint például hardverhiba, meghibásodott illesztőprogramok, emuláció, minőségbiztosítás, szoftverprogramozás, hardvertervezés és hardverkorlátozások, néha hasznos, ha hagyjuk, hogy a CPU elvégezze a grafikus folyamat egyes vagy összes funkcióját.

Ennek eredményeként számos olyan általános célú szoftvercsomag létezik, amelyek képesek meglévő hardver grafikus gyorsítójának cseréjére vagy bővítésére, beleértve:

  • A RAD Game Tools Pixomatic, köztes szoftverként kerül forgalomba, amelyet statikus összekapcsolásra terveztek a D3D 7–9 kliensszoftverben.
  • A SwiftShader , a D3D9 és OpenGL ES 2 kliensszoftverekhez való csomagoláshoz készült könyvtár, amelyet köztes szoftverként értékesítenek.
  • A Mesa belsejében található swrast, softpipe és LLVMpipe renderelők rendszerszinten simítóként működnek, és emulálják az OpenGL 1.4–3.2 hardvereszközt.
  • WARP , amelyet a Microsoft a Windows Vista óta biztosít, és amely rendszerszinten gyors D3D 9.1 és újabb emulációt biztosít. Ez kiegészül a rendkívül lassú szoftver alapú referencia-raszterizátorral, amelyet a Microsoft mindig biztosított a fejlesztőknek.
  • Az Apple szoftver -megjelenítője a CGL -ben, amelyet az Apple biztosít a Mac OS X rendszerben, és amely rendszerszinten gyors OpenGL 1.1–4.1 emulációt biztosít.

Előzetes renderelés

A valós idejű megjelenítéssel ellentétben a teljesítmény csak a második prioritás az előzetes megjelenítésnél. Elsősorban a filmiparban használják élethű jelenetek kiváló minőségű renderelésének létrehozására. A mai filmek sok speciális effektusát részben vagy egészben számítógépes grafika hozza létre. Például Gollum karaktere a Peter Jackson A gyűrűk ura filmekben teljesen számítógéppel készített képek (CGI). Az animációs filmek esetében is egyre népszerűbb a CGI. Leginkább a Pixar készített olyan sorozatokat, mint a Toy Story és a Finding Nemo , valamint a Blender Foundation a világ első nyitott filmje, az Elephants Dream .

Mivel nagyon jó minőségű és sokféle effektusra van szükség, az offline megjelenítés sok rugalmasságot igényel. Annak ellenére, hogy a valós idejű kereskedelmi grafikus hardverek napról napra jobb minőségűek és programozhatóbbak, a legtöbb fotorealisztikus CGI továbbra is szoftveres megjelenítést igényel. A Pixar RenderMan például korlátlan hosszúságú és összetettségű árnyékolókat tesz lehetővé, amelyek általános célú processzort igényelnek. A magas realizmus technikái, például a raytracing és a globális megvilágítás, természetüknél fogva alkalmatlanok a hardver megvalósítására, és a legtöbb esetben pusztán szoftverben valósulnak meg.

Lásd még

Hivatkozások