Interesting... I guess it boils down to what Steve said in 6620 about "optimize only where you need to".The change in the kdtree intersection had more to do with avoiding casting doubles to floats (data is stored as a float). The improvement from the whole experiment was from 3.7 fps to 13.5 fps in the final version of the code. There was a 56% improvement from just making sure all operations were done in one type.
Are the triangle intersections still double?Nope, the data is stored in float and all of the traversal/ intersection is in float.
On Thursday 13 October 2005 16:28, you wrote:
James corrected all of the manta code so that we can switch the Real
typedef between float and double and still recompile.
I ran a few benchmarks comparing the code before all of his changes
(r622), with the Real=float and Real=double (r623). There wasn't much of
a difference in the Boeing777 code, however Real=double was faster for
scene0.
Much of the performance critical code in the kdtree is hard coded float.
We did a more limited experiment earlier and found a speedup from making
that switch. (So the only difference in the path1 and path2 tests is in
all of the core manta support code.
Boeing 777:
http://www.sci.utah.edu/~abe/manta_doc/mantatype-bench/path1.html
http://www.sci.utah.edu/~abe/manta_doc/mantatype-bench/path2.html
http://www.sci.utah.edu/~abe/manta_doc/mantatype-bench/path2-720x405.html
Scene 0:
http://www.sci.utah.edu/~abe/manta_doc/mantatype-bench/scene0-720x405.html
Abe
Archive powered by MHonArc 2.6.16.