Het is me gelukt om mijn bounding volume hierarchy te bouwen met de surface area heuristic (SAH) zoals beschreven in de paper van Wald. Mijn code compileert maar daar is helaas alles mee gezegd. De rendertijden zijn geen verbetering t.o.v. de bvh met median split. Waarschijnlijk door een implementatiefout. Rijden met een Ferrari maar altijd voorbijgestoken worden door 2 pk'tjes.
Om de implementaties te kunnen vergelijken zijn 2 statistieken bijghouden in mijn bvh code: het aantal boundingbox/straal intersecties en het aantal driehoek/straal intersecties. Dit heb ik gedaan voor de 3 verschillende scenes. Het doel van een bvh is om het aantal driehoek/straal intersecties te verminderen ten koste van meer boundingbox straal intersecties omdat boundingbox/straal intersecties een pak goedkoper zijn dan driehoek/straal intersecties. Hoeveel "een pak" wil zeggen in mijn code moet ik nog uitzoeken.
Uit deze 2 statistieken heb ik het aantal het boundingbox intersecties per straal(#bbi/ray) en het aantal driehoek intersecties per straal (#tri/ray) berekend. Tussen equal partitioning en median partitioning zijn de verschillen groot, dit valt ook te merken in de snelheidswinst. Het verschil tussen SAH en median partitioning is veel kleiner, het aantal boundingbox intersecties daalt hier sterk maar het aantal driehoek intersecties blijft gelijk. Spijtig genoeg is dat het getal dat de performantie bepaalt (Ook de daling van het aantal boundingbox intersecties heeft een invloed maar minder uitgesproken).
Waarom ik nog niets merk van de snelheidswinst moet ik deze week nog uitzoeken, hopelijk voor mijn presentatie van donderdag :)
Abonneren op:
Reacties posten (Atom)
Geen opmerkingen:
Een reactie posten