RayTracing NEMŮŽE řešit shader, kde jsi to vzal, každý zdroj vysílá paprsky světla a tam kam dopadne se řeší jaký má objekt materiál , zda pohlcuje, odráží nebo propouští světlo, jak ovlivnˇuje jeho lom atp. Tam kde se paprsek zastaví tam se pak vyhodnotí jak bude výsledný pixel vypadat.
S Raytracingem je celá scéna generována naprosto jinak než běžnou rasterizací , kde se musí spousta věcí dělat jako fake, například je třeba přidávat fake zdroje světel aby vývojář dosáhl něčeho co se alespoň blíží realistickému podání, mnohdy to znamená jednu scénu renderovat hned několikrát... Ne nadarmo to znamený často poloviční výkon na kartách které mají HW akceleraci pro raytracing a až několikanásobné snížení výkonu pokud grafika nemá HW akceleraci.
Raytracing reflektuje fyziku a generuje daleko realističtější stíny, světla...
https://www.youtube.com/watch?v=bjtJCo4cDd4
Tady máš příklad hru Control, což je aktuálně nejšířeji implementovaný raytracing ve hře, obvykle je RT použito jen pro jedno - reflexe, global illumination nebo stíny, tady je to vše dohromady...
Je třeba sledovat i opravdu pidi detaily, třeba contact shadows. stín leckdy mizí v blízkosti předmětu a viditelný je až kousek dál, kdežto ve skutečnosti by tam ten stín být měl, nejpatrnější rozdíl jsou reflexe, rasterizované reflexe postrádají detail a leckdy nejsou ve správné velikosti, RT reflexe jsou naprosto něco jiného. Nejlepší je pak sklo, ve skle nejen vidíš věrnou reflexi, ale i věrný obraz toho co se ukrývá za sklem, v rasterizaci naprosto nemožné...
|
|