POV-Ray : Newsgroups : povray.unofficial.patches : Displacement mapping using isosurfaces : Re: Displacement mapping using isosurfaces Server Time
2 Sep 2024 08:16:58 EDT (-0400)
  Re: Displacement mapping using isosurfaces  
From: Chris Huff
Date: 12 Apr 2000 08:19:27
Message: <chrishuff_99-BBDCFC.07220512042000@news.povray.org>
In article <38f40526@news.povray.org>, "Mark Wagner" 
<mar### [at] gtenet> wrote:

> I can't guarentee that this will work on the first try, but it will 
> displace
> the surface of any object using the noise3d function.  To use a different
> object, just replace AnObject with the object you want.

I think you mean:
#declare AnObject = union {
    sphere {<0,0,0>, 1}
    torus {1.3, 0.5}
}

#declare AnObjectFunc = 
function {
    pigment {
        object {AnObject color rgb 0, color rgb 1}
    }
}

isosurface {
    function {AnObjectFunc(x,y,z)
        +noise3d(x,y,z)
    }
    method 2
    max_gradient 100
    contained_by {box {min_extent(AnObject),max_extent(AnObject)}}
    pigment {color rgb <1,1,1>}
}

And the object pattern turns out to not be very good for 
isosurfaces...it has two values separated by a sharp boundary, sort of 
an infinite amount of slope. A boundary can appear anywhere, so the 
isosurface algorithm has trouble finding them. And I don't think you 
could displace the surfaces from within the function... I have a pattern 
blurring feature I have been thinking of which might reduce this 
problem, but I am not sure...
The proximity pattern might be helpful for this, but it is slow. You 
might want to make a script that uses eval_pattern() to write the 
results of proximity to a 3D density file, and use that in the 
isosurface.
If your object is a blob, the blob pattern is useful. I have used it 
before with very good results.

Also, don't forget that when the function goes through a pigment, you 
can use warps like turbulence, black holes, etc to displace it. And with 
function patterns and pigment functions, you can put any function 
through a pigment. :-)

-- 
Christopher James Huff - Personal e-mail: chr### [at] yahoocom
TAG(Technical Assistance Group) e-mail: chr### [at] tagpovrayorg
Personal Web page: http://chrishuff.dhs.org/
TAG Web page: http://tag.povray.org/


Post a reply to this message

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