POV-Ray : Newsgroups : povray.general : ISO optimization : Re: ISO optimization Server Time
6 Aug 2024 00:15:48 EDT (-0400)
  Re: ISO optimization  
From: Christopher James Huff
Date: 5 Aug 2002 18:35:54
Message: <chrishuff-DD2967.17254705082002@netplex.aussie.org>
In article <Xns### [at] 204213191226>,
 "Rafal 'Raf256' Maj" <raf### [at] raf256com> wrote:

> > You still have to find the correct voxels and get their value. It is 
> > very obvious that this will have more overhead than simply using a 
> > single value.
> 
> we will see...

It is pretty obvious. In fact, it is so blindingly obvious I don't see 
how you could possibly think otherwise. Here is the code for accessing 
the max gradient now:

ISOSRF->max_gradient

Now think about the code for grabbing the max gradient from a voxel 
field. Even if you do it the wrong way, and check a single voxel from a 
3D array, you would end up with something like:

ISOSRF->gradientField
[floor(ISOSRF->gfXRes*(Point[X] - ISOSRF->gfMin[X])/ISOSRF->gfSize[X])]
[floor(ISOSRF->gfYRes*(Point[Y] - ISOSRF->gfMin[Y])/ISOSRF->gfSize[Y])]
[floor(ISOSRF->gfZRes*(Point[Z] - ISOSRF->gfMin[Z])/ISOSRF->gfSize[Z])]

gradientField is a 3D array of floats, gfXRes, gfYRes, and gfZRes are 
the integer xyz resolutions of the voxel field, gfMin is the minimum 
extent of the field, gfSize is the size of the field. No safety checking 
to make sure it stays in the array bounds.

That gets you the gradient at a single voxel assuming the simplest kind 
of voxel structure you can have. What you actually need is the maximum 
gradient of all the voxels the current interval passes through. The best 
way to do this would probably be to get all of the voxels the entire ray 
passes through and put them in a sorted list, and go through sections of 
this list for each interval. That would be much, much more overhead than 
a simple struct member access. It might speed up some isosurfaces which 
have a few areas with very high gradients, but it would slow down others.

-- 
Christopher James Huff <chr### [at] maccom>
POV-Ray TAG e-mail: chr### [at] tagpovrayorg
TAG web site: http://tag.povray.org/


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.