Sugárkövetés GPU-n

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

A szakdolgozat célja egy sugárkövető készítése volt, amely képes a megjelenítendő objektumot fileból beolvasni, azon belül is .obj fileból, amiből az interneten rengeteg már elkészített modell megtalálható. Az objektumból a háromszögek és a materialok kerülnek használatra ebben a megvalósításban.

A sugárkövető tartalmaz úgynevezett acceleration structuret is, ami jelentősen meggyorsíthatja az algoritmus gyorsaságát. Jelenleg ez nem automatikusan történik, így az általam készített programban informáltnak kell lennünk a megjelenítendő objektum felépítésével, majd kézzel testre szabni a beállításokat, ha maximális teljesítményt szeretnénk elérni.

A dolgozat legfontosabb eleme a CUDA platform, ami lehetővé teszi, hogy a program ne csak a központi processzoron legyen végrehajtva, hanem használja a grafikai processzort is, lényegesen meggyorsítva a számolási folyamatot azzal, hogy párhuzamosítható rajta a sugárkövetés legigényesebb művelete, minden pixel egyesével való számolása. Fontos tudni, hogy a CUDA egy Nvidia termék, így csak bizonyos videókártyákon fog ténylegesen működni ez a megvalósítás.

A megjelenítéshez OpenGL-t használtam, és annak segítségével kezeltem a bemeneteket is. Ezen kívül kirajzolt képenként mérem a számolási időt, amit a conzolon lehet figyelemmel kísérni. Az inputok szerepe a megjelenített objektum forgatása, illetve közelítése/távolítása, így figyelemmel kísérhető, hogy milyen szemszögből mennyire számolásigényes a kirajzolás. A változás oka az acceleration structureből adódó gyorsulás elvesztése, vagy megfelelő kihasználása. (ez leginkább a közelítésnél észrevehető)

Letölthető fájlok

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