David Olsson (don@cs.umu.se)


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

Christopher Holmberg Extern handledare. CEO på Coldwood Interactive AB.
Anders Backman Intern handledare. Advanced consultant på VRLab.

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.

Coldwood Interactive AB Företaget på vilket jag utför mitt examensarbete.
Citeseer Mycket bra sökmotor för alla som vill hitta vetenskapliga artiklar.


Senast uppdaterad 2004-01-16 av David Olsson