|
|
Lukas Winter schrieb:
> 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)
I am not sure how this is meant - the existing isosurface cache IIRC
speeds up subsequent rays missing the surface.
> - Intersection points are interpolated, so much smaller accuracies are
> sufficient
This is already in MegaPOV and i thought it also was in 3.7.
> - An expensive optimisation that could speed up calculations when using
> very slow functions (and slow down when using faster functions...)
More details would be required on this.
>
> 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!
Interpolating the intersection point should converge to the same result
as not doing so in all well defined cases.
-- Christoph
Post a reply to this message
|
|