3d grafika ar paātrinātājiem un bez tiem
Author
Livšics, Arsenijs
Co-author
Latvijas Universitāte. Fizikas un matemātikas fakultāte
Advisor
Arnicāns, Guntis
Date
2006Metadata
Show full item recordAbstract
Šajā darbā tiek izpētīti datoru 3d grafikas pamati. Gandrīz visas operācijas ar 3d grafiku mūsdienā tiek veiktas izmantojot 3d paātrinātāju, jeb ar jaudīgo grafisko karšu palīdzību. Autors dziļāk interesējās par tiem procesiem, kuri paliek ārpus tipiskās 3d aplikācijas programmētāja redzes loka. Lai tos izpētītu, vispirms tiek apskatīti esošie 3d grafikas renderēšanas līdzekļi un to pamatfunkcijas, izmantojot OpenGL bibliotēkas piemēru. Tālāk tiek aprakstītas šo pamatfunkciju implementācijas, apkopojot tās autora izveidotajā bibliotēkā. Izstrādātā bibliotēka nodrošina 3d attēlu izveidošanu un manipulēšanu pēc OpenGL principiem, atbalsta dažādu tipu primitīvus, apgaismošanu un faktūrkartēšanu. Darbā tiek aprakstīti izmantotie algoritmi un izveidotās algoritmu modifikācijas. Tiek aplūkota izstrādātās programmatūras ātrdarbības optimizācija, kā arī neefektīvo koda fragmentu atrašanas problēma. This paper is a research on the fundamentals of computer 3d graphics. Most of the operations involving 3d graphics nowadays are performed with the help of 3d graphics accelerators. The author finds these processes, which are typically concealed from the programmer, very interesting. To research them, first this paper presents an analysis of existing 3d rendering tools and their basic functions, exemplified by the OpenGL graphics library. Then, in the practical part, this functionality is implemented in a software rendering library. The developed library supports creation and manipulation of 3d images similarly to OpenGL, supports different primitive types, lighting and texture mapping. A description of the used algorithms and algorithm variations is also given. Finally, the problem of performance optimization is examined, as well as the problem of finding inefficiencies in the produced code.