[Bf-committers] BIH progress update

Yves Poissant ypoissant2 at videotron.ca
Thu Mar 20 05:48:12 CET 2008


This is a head-up to give a status report about the BIH implementation I'm 
working on.

I just spent the last 5 days working on BIH. Not much progress 
unfortunately. On some file, I get spectacular improvement, up to 4 times 
faster render times than octree. But on some other files, I can get 
humongous render times. On average, there is very little gain. I tried all 
the optimizing tricks I know, including caching the quad data, but that 
gained very little too. I rewrote the tree building algorithm to allow me to 
test different partitioning heuristics but I have not started on that yet. 
I've added code to cut out empty space but that deepens the tree and 
lengthens the total render time. As I added code to cut off empty space, the 
partitioning process looked more and more like a defered BVH so I'm begining 
to think that I should try a SAH BVH just to get a comparison point. I 
haven't touched on the ray-triangle intersection aspect yet because the 
partitioning complexity is way too high right now and that needs to be 
optimized first. I need get data out of the partitioning and traversal for 
the scenes that takes huge render times to figure what makes those scenes 
behave that bad.

I thought of giving this head-up because I will now have to return to my 
regular work for a while but I will be back on the BIH later. I'm sure the 
back burner will keep the issue warm in my head though.

What is the policy about using SSE ? Someone posted an SSE function on ompf 
forum that computes intersections between one ray and 4 triangles in 
parallel and at some point I'd like to try that. Since quads are 2 triangles 
and I currently store 2 quads per leaves, that would fit very well. SSE 
could also be used efficiently when doing bounding boxes operations.

Yves 



More information about the Bf-committers mailing list