Het ondersteunen van transformaties (herschaling, translatie en rotatie). Dit heb ik getest op een kubus en ziet er (op het eerste zicht) visueel correct uit. Wel waarom dan geen plaatjes, ik zou zeggen lees even verder.
Na het bekijken van mijn mesh klasse vond ik het toch allemaal wat inefficiënt om dat ik volledige driehoeken bewaar in plaats vertices. Dus dacht ik laat ik dit eens snel optimaliseren door een lijst vertices bij te houden en indices per driehoek. Allemaal goed en wel tot ik tot de vaststelling kwam dat sommige modellen zoals de kubus 3 normalen hebben per vertex. Veel geklooi, slechte code, frustratie en tijdverlies om tot een elegante oplossing te komen. Uitendelijk zal ik toch maar gewoon volledige driehoeken bijhouden tot ik hier eens een goeie paper over heb gelezen. Het nadeel is dat we dan vertices meermaals bijhouden, het voordeel is minder frustratie en een betere gemoedsrust. Vanaf nu ga ik me niet meer laten vangen en werken volgens de "Is een waarheid als een koe" vuistregel:
- Make it work
- Make it right
- Make it fast
Strikt militaristisch in die volgorde!
Na het ontvangen van de C++ sessie modeloplossing heb ik mijn code aangepast zodat het meer lijkt op de code van een pro en niet meer op die van een C++ wannabee Java coder. Concreet het ik mijn include guards allemaal van het prefix RT_ voorzien (van ray tracer, duh). Alles in een namespace gezet en geprobeerd om alles te herschrijven naar template classes. Alles gelukt hier behalve het omzetten naar template classes. Als meshes me frustreren dan brengen template klassen me in een toestand van waanzin :). Dus ik ga alleen nieuwe code nog parametriseren en afblijven van de dingen die werken.
Simple shading toegevoegd, werkt niet correct maar dit komt door het eerder genoemde probleem met mijn mesh en mijn normalen.
Als al die problemen van de baan zijn dan heb ik een basic raytracer in deftige C++ code (eigen mening) om het echte, interessante werk mee aan te vatten. Hopelijk kan ik dan volgende week een plaatje schieten van Cally.
Dit weekend geen programmeren maar het lezen van de vooropgestelde papers.
Hoewel het lijkt alsof ik deze week (dinsdagnamiddag tot nu) veel heb gewerkt kom ik bij telling aan slechts 17u, amper de helft van wat ik zou moeten gewerkt hebben.
Geen opmerkingen:
Een reactie posten