Uz jsem ti to chtel psat, ale nakonec se tim preci jen posledni dva odstavce zabyvaji a popisuji situaci tak, jak je.
Nikdo totiz momentalne nevime, co to je hardwarovy raytracing. Jak to definovat?
Softwarovy raytracing je jasny - obecny x86 procesor dostane x86 instrukce od programu pro raytracing tak, aby se raytracing na procesoru spocital.
Jenze, kdyz NVidia pocita raytracing pres ovladac (software) graficke karty primo na jadnotkach grafiky, je to jeste softwarovy raytracing nebo hardwarovy? Tyka se grafik Pascal, Volta a Turing GTX.
A navic se proslycha, ze ani specializovane RTX jednotky na grafikach Turing RTX nejsou schopny spocitat cely raytracing a ze jim castecne take pomaha ovladac graficky pres bezne jednotky. Zde teda jde minimalne o castecny hardwarovy raytracing.
U AMD je to zase o ovladaci, ktery dostal podporu pocitani RT na obecnych vypocetnich jednotkach graficke karty. U Intelu to tedy vubec nemusi byt jine.
"A navic se proslycha, ze ani specializovane RTX jednotky na grafikach Turing RTX nejsou schopny spocitat cely raytracing a ze jim castecne take pomaha ovladac graficky pres bezne jednotky."
To se neproslýchá, tak to Nvidia popisuje ve svých dokumentech a prezentovala to tak.
RT jádro dostává za úkol analyzovat průsečík paprsků a objektů scén (tj. jestli je a do které primitivy paprsek narazí - nejdřív analyzuje pomocnou stromovou hierarchii "bounding volume" objektů, pak nakonec přímo, kterého trojúhelníku se průsečík týká). Na začátku to inicializuje kód běžící na ALU shaderů, kteérmu se vrátí jako výsledek z RT jádra ten nalzený průsečík a zbytek operací zase dělají programovatelné shadery.
Vega56 Crytek RT Demo vs Nvidia RTX:
https://uploads.disquscdn.com/images/fd5dd03716083cfb78d239d7849e1cb8df3af05328bdfa330d3e0d758bb34f6d.png
No tak jednoduchy to zas neni. Paprsky z pixelu u sebe se pocitaji spolecne nebo se daji puvodni vysledky znovupouzit, protoze ve vysledku prochazeji stejnou cestou v BVH a muzou dopadnout jen na jiny face v danem leaf bounding volume nebo dokonce jen na jinou cast stejneho facu. Tam bude cela rada logiky v scheduleru, ktera tenhle fakt zohlednuje (a nejen tohle), to se vsad.