Implementace zobrazovacího systému v jazyce Rust
Implementation of rendering system in Rust
Typ dokumentu
bakalářská prácebachelor thesis
Autor
Eduard Lavuš
Vedoucí práce
Bittner Jiří
Oponent práce
Sloup Jaroslav
Studijní obor
Počítačové hry a grafikaStudijní program
Otevřená informatikaInstituce přidělující hodnost
katedra počítačové grafiky a interakcePráva
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Zobrazit celý záznamAbstrakt
Vulkan je dnes de-facto štandardom pre otvorené mnoho-platformové vykresľovanie grafiky v reálnom čase. Vývojári môžu vďaka Vulkanu naplno využiť silu grafických kariet na mnohých platformách vďaka jeho jednotnému dizajnu. Vulkan naviac prináša mnoho vylepšení v porovnaní so starším OpenGL. Vulkan je však zameraný na omnoho nižší level ako OpenGL a preto vyžaduje viac práce na strane vývojára. Táto práca predkladá knižnicu v jazyku Rust so základnými typmi a vysokoúrovňovým návrhom na vytváranie a spracovávanie objektov Vulkanu bezpečne vo viac vláknovom prostredí a s minimálnym dopadom na rýchlosť. Diskutované sú aj výhody jazyka Rust pre túto konkrétnu úlohu. Naviac je porovnaná rýchlosť a veľkosť kódu voči Rustovej knižnici ash, ktorá poskytuje priame prepojenia do Vulkan API napísaného v jazyku C. Vulkan is today the de-facto standard for open cross-platform real-time graphics rendering. It allows the developers to leverage the performance of GPUs on many platforms thanks to its uniform design and brings many improvements when compared to the older OpenGL API. Contrary to its predecessor, however, Vulkan is much more low-level and requires more work from the developer. This thesis presents a Rust crate (library) with core wrapper types and a high-level API design for creating and managing Vulkan objects safely in concurrent manner, with minimal impact on performance. Advantages of Rust for this specific task are discussed and the performance and verbosity in comparison to the ash crate (library), which provides raw bindings to the C Vulkan API, is evaluated.
Kolekce
- Bakalářské práce - 13139 [435]