RapidRaycast

13
RapidRaycast Trimesteroverschrijdend Project Bjorn Schobben Domien Nowicki

description

Trimesteroverschrijdend Project Bjorn Schobben Domien Nowicki. RapidRaycast. Overzicht. Wat Is Raycasting? Project Doel Project Structuur Project Algoritmen Demo Vragen?. Wat Is Raycasting?. Snelle techniek om 3D beeld te genereren uit 2D map (plattegrond) Sneller dan ray tracing - PowerPoint PPT Presentation

Transcript of RapidRaycast

Page 1: RapidRaycast

RapidRaycastTrimesteroverschrijdend Project

Bjorn SchobbenDomien Nowicki

Page 2: RapidRaycast

Overzicht

• Wat Is Raycasting?

• Project Doel

• Project Structuur

• Project Algoritmen

• Demo

• Vragen?

Page 3: RapidRaycast

Wat Is Raycasting?• Snelle techniek om 3D beeld te

genereren uit 2D map (plattegrond)

• Sneller dan raytracing−Niet alle rays berekenen, slechts 1 per

vertikale streep van scherm

• Pseudo-3D beeld−Niet perspectief correct−Geen echte lichtinval−Altijd gebruik van simpele objecten

(bv. muren)

Page 4: RapidRaycast

Wat Is Raycasting?

• Bekend voorbeeld: Wolfenstein 3D

Page 5: RapidRaycast

Project Doel

• Raycast engine bouwen

• Met modeler−Eigen map kunnen maken

Page 6: RapidRaycast

Project Structuur• Texturelijst

• Map− 2D array van cellen

• Ray− Zoeken van dichtsbijzijnde muren

• Slice− Renderen van een vertikale scherm-streep

• Raycaster− Heel het beeld renderen, via slice

• Keuze tussen vectoren en hoeken− Met vectoren: makkelijker en

nauwkeuriger

Page 7: RapidRaycast

Project Algoritmen: Raycasting

• Position vector−Positie van het oog

• Direction vector (eenheids vector)−Richting waar het oog naar kijkt

• Camera plane vector (eenheids vector)−Richting van het cameravlak

Page 8: RapidRaycast

Project Algoritmen: Raycasting

• Voor elke vertikale streep,“cast” een ray

• DW = afstand totdichtsbijzijnde muur

• DC = afstand tot camera = 1 (eenheidsvector)

• WH = eigenlijke muur hoogte

• PH = geprojecteerde muur hoogte = ?

Page 9: RapidRaycast

Project Algoritmen: Raycasting

• PH/DC = WH/DW (driehoeksverhouding)

• PH = WH / DW * DC

Page 10: RapidRaycast

Project Algoritmen: Raycasting

• PH = Wall slice hoogte

• SH = Scherm hoogte

• Wall slice is gecentreerd over het scherm−Positie van wall slice = (SH/2) – (PH/2)

• Teken nu wall slice voor elke vertikale streep, klaar!

Page 11: RapidRaycast

Project Algoritmen: Ray

• DDA algoritme: Iteratief elke cel, die ray snijdt, controleren op aanwezigheid muur:−Bereken afstand tot volgende horizontale

en verticale intersectie−Als de horizontale korter: beschouw

bovenbuur−Als verticale korter: Beschouw

rechterbuur−Analoog voor rays in andere richtingen

• Afstand tot muur en intersectiepunt met muur onthouden

Page 12: RapidRaycast

Demo

Page 13: RapidRaycast

Vragen?