Sugárkövetés DirectCompute környezetben

OData támogatás
Konzulens:
Dr. Szécsi László
Irányítástechnika és Informatika Tanszék

A szakdolgozat célja egy sugárkövető eljárás implementálása Compute Shader segítségével. A sugárkövetés rendkívül számításigényes feladat, ám jól párhuzamosítható is egyben, ezáltal a grafikus processzorokra írt változataik sokkal gyorsabbak a CPU-n futó társaiknál. A DirectX 11 megjelenésével a Microsoft grafikus platformját használva, a GPU-t általános módon is lehet programozni. A DirectCompute nyújtotta lehetőségekkel élve az alkalmazás sugárkövető része teljes egészében HLSL nyelven íródott és felépítésében alapszintű objektumorientáltságot is megvalósít. A GPGPU kódolás sok helyen eltér a már megszokott kevés szállal operáló programozási környezettől. Ilyen eltérések például a rekurzió hiánya, vagy a divergencia kezelése. A masszívan párhuzamosított feldolgozás a konvergens feladatok megoldását részesíti előnyben, ezáltal nem elég a régi kódokat átírni az új platformra, újra is kell gondolni őket. Például a rekurzív függvényhívásokat minél hatékonyabb ciklusokra kell cserélni.

A kidolgozásra választott algoritmus az inverz fényútkövetés, ami a globális illuminációs eljárások családjába tartozik. A véletlen gyűjtősétát használva járja be a színteret és a sugarat a szemből fényforrás felé követi. Valósághű képet alkot, ezért gyakran referenciaként használják más sugárkövető algoritmusok tesztelésére. Azonban lassú is egyben, ezért célszerű térfelosztó adatszerkezettel együtt használni. Az alkalmazás interaktivitásra törekszik ezért a gyorsan és párhuzamosan építhető LBVH (Linear bounding volume hierarchy) struktúrát használja.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.