Raycasting
Raycasting (většinou ray casting v angličtině ) je termín z počítačové grafiky . Popisuje techniky pro rychlé zobrazení ( rendering ) ze trojrozměrné scény , ale je nyní používán zejména v souvislosti ze svazku vizualizace . Přesná definice pojmu se liší v závislosti na kontextu.
Raycasting v objemové vizualizaci
Raycasting je metoda vizualizace skalárních funkcí v trojrozměrném svazku, které se vyskytují v mnoha vědeckých aplikacích . V lékařské oblasti jsou to například: počítačová tomografie (CT), magnetická rezonanční tomografie (MRT) nebo pozitronová emisní tomografie (PET); v oblasti numerické simulace metodou konečných prvků (FEM) pro výpočetní dynamiku tekutin (CFD), ve které se vypočítává tokové chování plynů a kapalin. Zde získaná skalární data, například hustota nebo teplota , mohou být vizualizována pomocí různých metod, včetně raycastingu. Rozlišuje se mezi přímými a nepřímými procesy. Nepřímé metody vizualizují objem pomocí polygonální mezilehlé reprezentace. Pochodování kostek je jednou z těchto nepřímých metod. Přímé metody vizualizují objem bez generování takových mezilehlých dat. Mezi tyto techniky patří raycasting a stříkání . Dále se rozlišují metody orientované na obrazový prostor (pořadí obrázků) a objektově orientované metody (pořadí objektů).
Raycasting jako proces v objemové vizualizaci
Základní myšlenkou je, jak lze objemová data vizualizovat pomocí raycastingu. Teoretickým základem je rovnice vykreslování objemu, kombinace emise a absorpce . Raycasting řeší ( přibližuje ) k tomuto problému.
Raycastingový proces
Raycasting odesílá vizuální paprsek (primární paprsky) objemem pro každý pixel diváka (obrazu, který se má vypočítat). Paprsek je sledován v rámci objemu a hodnoty barvy a neprůhlednosti jsou stanovovány v pravidelných intervalech v místech vzorkování paprsku. Stínování se počítá i pro barevné hodnoty u všech míst odběru vzorků. Takto získaný vektor pro přímku obsahuje uspořádané vzorkovací hodnoty (barvy, hodnoty opacity), barevné hodnoty odpovídající zdrojovému výrazu a hodnoty opacity odpovídající koeficientu zániku. V posledním kroku se zkombinují hodnoty kompozice , barvy a krytí a v obrazové rovině se vypočítá pixel vyplývající z přímky.
Raycasting jako jednoduché sledování paprsku
Raycasting často odkazuje na jednoduchou formu raytracingu , známý proces vykreslování. Trojrozměrná scéna je pravidelně skenována v souladu se specifikovanými specifikacemi, jako je úhel pohledu a perspektiva pozorovatele, takže je vytvořen dvourozměrný obraz řezu. Na rozdíl od rozšířených variant sledování paprsků skenování paprsku končí, když se paprsek a objekt setkají, takže dochází pouze k výpočtu okluze . Barva určená v této křižovatce tvoří hodnotu barvy pixelu. Odrazy, lomy a přenosy objektu nejsou brány v úvahu. Tato technika umožňuje velmi rychlý náhled scény.
Příležitostně se raycasting používá také synonymně s raytracingem.
Raycasting v počítačových hrách
Ve vývoji počítačových her se termínem raycasting označuje výpočet pseudo-3D pohledu na základě dvojrozměrné mapy. Na základě vzdálenosti k objektu zasaženému "paprskem vidění" se na jedné straně barva objektu zobrazí vertikálně středově a na druhé straně se vypočítá podíl stropu nebo podlahy příslušného pixelového sloupce. Na rozdíl od běžné technologie sledování paprsků je pro výpočet celého obrazu naskenován pouze jeden řádek obrazu; výpočet occlusion probíhá pouze v jedné rovině, a ne v prostoru. Tento typ raycastingu se používá například v počítačové hře Wolfenstein 3D .
Protože tato technologie neodpovídá skutečnému 3D, podléhá různým omezením: Nelze zobrazit žádné trojrozměrné objekty, jako jsou lidé a objekty, podlaha a strop mají vždy stejnou výšku a svahy nejsou možné.
Byla nalezena různá řešení, která mají vytvořit dojem trojrozměrnosti. Pro libovolné objekty, které jsou zmenšeny a vloženy do vypočítaného obrázku, se používá dvojrozměrná grafika, takzvané sprity . V pokročilých hrách, jako je Duke Nukem 3D, byly tyto vybrány v závislosti na úhlu, takže předmět vypadá zepředu jinak než zezadu.
Byly postaveny textury pro stěny, podlahy a oblohu, které zobrazují trojrozměrné struktury. Obloha nebo strop a podlaha byly nezávisle nastavitelné pro části mapy, takže byly možné schody, průchody a podobně (například v Doom ). S Duke Nukem 3D byly konečně umožněny šikmé podlahy, světlíky nebo stropy a hledisko bylo možné otáčet svisle, aby bylo možné dívat se nahoru nebo dolů. Displej je ale silně a nepřirozeně zkreslený. I přes nejlepší rozšíření nejsou možné žádné superponované trojrozměrné objekty, jako jsou mosty. Jejich zastoupení je vždy „předstíráno“ pomocí skřítků nebo jiných triků.
Raycasting se stal oblíbeným u raných first-person stříleček Catacomb , Wolfenstein 3D, Doom, Heretic a Duke Nukem 3D, protože vyžaduje podstatně kratší dobu výpočtu než skutečné 3D.
S raycastingem souvisí algoritmus VoxelSpace představený ve hře Comanche pro vizualizaci výškových polí . Grafické motory založené na tomto jsou často jednoduše označovány jako voxelové motory, ačkoli žádné voxely nejsou vizualizovány.
webové odkazy
- Raycasting tutorial od F. Permadi (anglicky)
- Interaktivní Raycaster pro MSDOS v 64 bajtech (se zdrojovým kódem)
Individuální důkazy
- ^ Alan Watt, Mark Watt: Advanced Animation and Rendering Techniques Theory and Practice. Addison-Wesley, Reading 1992, ISBN 0-201-54412-1 , s. 305-312.
- ↑ a b James Foley a kol: Počítačová grafika: zásady a praxe. Addison-Wesley, Reading 1995, ISBN 0-201-84840-6 , s. 701.
- ↑ Stefan Becker: Reprezentace virtuálních světů pomocí technologie raycastingu. In: c't 2/1996, ISSN 0724-8679 , p. 246.
- ↑ Boris Bert Elson obsahuje: PC Underground. Data Becker, Düsseldorf 1995, ISBN 3-8158-1185-6 .