POV-Ray : Newsgroups : povray.advanced-users : Help on isosurface - distances - other stuff... : Re: Help on isosurface - distances - other stuff... Server Time
29 Jul 2024 16:23:04 EDT (-0400)
  Re: Help on isosurface - distances - other stuff...  
From: Christoph Hormann
Date: 12 Nov 2001 13:15:09
Message: <3BF011A6.74A93A9A@gmx.de>
Jan Walzer wrote:
> 
> Lets assume I have a function f(x,y,z) ...
> 
> this usually describes my isosurface ... The surface is all points, where
> f(x,y,z)=0...
> 
> How can I now describe another function g(x,y,z) that describes for g(...)=0
> all the
> points, that have a distance d to the the surface of f() ?
> I don't have any ideas 'bout the gradient of f() ... it can go from 0 to oo
> (literally)...

I must admit i have no idea what you are talking about here.

> Another Problem I have is the following:
> Lets assume I have a sphere ... (OK, thats easy)
> Lets assume I want to make it spikey (that's not hard)
> Lets assume I want to do something with the bozo-pattern ...
> 
> function {
>     sphere(....)+pattern(bozo transform{some scaling})
>     }
> 
> This gives me two things ...
> 1) The sphere mostly looks like I wanted it ...

Nice. ;-)

> 2) The function also contains some single "drops", that are not connected to
> the sphere
>    Of course, they are mathematically correct, but I want them to disappear.
> I only want
>    to see the parts of the surface that are directly connected to the
> sphere-function...

It's not possible to simply remove this separations, but if you have a
noise function that is constant in radial direction of the sphere, there
will only be one surface, it will look different of course (meaning there
are no 'overhangs' in radial direction either.

The following is just made from a quick glance in the math formulas for
spherical coordinates so probably won't really produce what you want, but
it should give an idea what i mean:

#declare fn_x=function { f_noise3d(x*5, y*5, z*5) }                   
                  
isosurface {
  function { sqrt(x^2 + y^2 + z^2) - 0.1 - fn_x(atan2(x^2 + y^2,z),
atan2(y,x), 0)*3 }
  contained_by { box { -4, 4 } }   
  max_gradient 20
}  

Christoph


-- 
Christoph Hormann <chr### [at] gmxde>
IsoWood include, radiosity tutorial, TransSkin and other 
things on: http://www.schunter.etc.tu-bs.de/~chris/


Post a reply to this message

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