|
|
Hi,
as I was very interested in the isosurface intersection code I did a
complete rewrite of it based on the beta source. My new code moves all
the global and thread global structures and variables into classes and I
implemented some optimisations:
- Every isosurface now has a separate cache with multiple entries (speeds
up camera ray tests, shadow ray tests and reflection ray tests)
- Intersection points are interpolated, so much smaller accuracies are
sufficient
- An expensive optimisation that could speed up calculations when using
very slow functions (and slow down when using faster functions...)
- General code cleanup
Mostly due to the bigger cache raw isosurface performance (tested with
Christoph Hormann's SCC3 entry, all rays hit the isosurface, radiosity
off) is now about 25% bigger. The new code makes about 10% less function
VM calls. I did not do long tests but the new code is always faster... I
implemented almost (some statistics code is missing) all features of the
current beta. The results are not identical but the reason is
interpolation which leads to a higher quality!
If anyone is interested in the code I will post it on
povray.binaries.programming.
Regards,
Lukas Winter
Post a reply to this message
|
|