|
Hårdvaruaccelererade shadow volumes
- och andra algoritmer för skuggor i realtid
Syftet med examensarbetet är att motivera renderingen av skuggor
i virtuella miljöer, analysera existerande algoritmer och,
slutligen, implementera en av dem. Analysdelen skall inrikta sig
på varianter av de klassiska algoritmerna shadow volumes
och shadow maps som är anpassade för modern
grafikhårdvara. Vidare skall även möjligheterna att rendera
övertygande mjuka skuggor i realtid undersökas. Målet är att den
implementation som arbetet skall resultera i skall vara en
implementation av en generell algoritm för mjuka skuggor
anpassad för en scengrafstruktur.
Arbetet utförs på företaget
Coldwood Interactive AB i Umeå. Implementationen skall ske
i C++.
Handledare
Specifikation
|
Examensarbetetsspecifikationen finns tillgänglig för
nedladdning i ett antal olika format nedan
|
DVI
|
För de som tycker om att titta på dokument
i xdvi, YAP, eller något liknande.
|
|
PostScript
|
För de riktigt hårda typerna som tycker om att
läsa PostScript-kod (vaddå Ghostview??
skrivare???).
|
|
PDF
|
Slutligen en version i PDF för de dödliga
Windows-användarna.
|
|
Screenshots
|
Häftiga screenshots från de implementationer som jag
gör.
Först ut är bilder från den implementation av
shadow volumes som jag gjort. Implementationen är
inte direkt anpassad för grafikhårdvara på så sätt att
den inte använder shaders (dock utnyttjas
stencil-bufferten). Notera hur det inte uppstår några
specular highlights inne i skuggan vilket är
helt korrekt. Detta fenomen syns tydligast i bild två.
Vidare används ett mycket avancerad geometri som
mottagare (består av massor av trianglar, Marshall
band-effekten ger en uppfattning om hur avancerad
geometri det är) för att visa att algoritmens prestanda
inte är beroende av detta (syns givetvis bäst om man kör
programmet som genererat bilderna). Antalet trianglar
som sfären som används som blockerare består av är
4900 stycken.
Bilder från en implementation av shadow volumes som
använder en vertex shader för beräkning av
skuggvolymen. Då denna implementation är gjord enbart
för att testa en teori är den gjord direkt i
DirectX 9 (då slipper man alla problem som
scengrafstrukturen faktiskt ställer till med i detta
fall!) och är således inte så värst optimerad vad gäller
utnyttjande av vertex buffrar, state sorting, etc.
Mer bilder. En implementation med texturer(!). På
bilden syns både skuggor från ett point light och
ett directional light. Id och Valve, släng er i
väggen :-)!
|
Rapport
|
|
PDF
|
Rapport godkänd för presentation (alltså mest
troligt inte den totalt slutgiltiga).
|
|
Länkar
|
Nedan finns ett antal länkar till websidor som på
något sätt är relaterade till mitt examensarbete.
|
Senast uppdaterad 2004-01-16 av
David Olsson
|