Waar ik me deze week vooral mee bezig zal houden is het efficiënter herimplementeren van mijn versnellingsstructuur (BVH). Concreet wil dit zeggen:
- Zorgen voor een kleinere memory footprint van mijn BVH nodes. Elke cache miss / memory access is duur.
- Het bannen van virtuele functies en polymorphism omdat je hier ten eerste de overhead hebt van de function call (virtuele functies kan je niet inlinen omdat je pas @runtime weet welke functie je moet aanroepen, duh) en de pointer naar de VTABLE is extra geheugengebruik.
- Bij BVH traversel proberen recursie te vermijden. Dus zelf voor compiler spelen en een eigen stack bijhouden.
Als ik dan alles terug draaiende heb gekregen, na lange uren van frustratie om uit te zoeken waarom alles niet compileert, dan is het tijd om een SAH-based BVH te implementeren.
Verder hebben we beslist om Cal3d integraal te gebruiken in mijn raytracer en als extra bestandsformaat ra2 van bwfirt te gebruiken.
Geen opmerkingen:
Een reactie posten