POV-Ray : Newsgroups : povray.newusers : isosurface perturbation : Re: isosurface perturbation Server Time
31 May 2025 04:19:39 EDT (-0400)
  Re: isosurface perturbation  
From: Alain Martel
Date: 26 May 2025 23:05:58
Message: <68352c16$1@news.povray.org>
Le 2025-05-26 à 13:40, kurtz le pirate a écrit :
> 
> Hello,
> 
> Suppose we have a define a block with an isosurface whose surface is 
> perturbed by a pigment function like that in a macro :
> 
> 
> #macro CarvedRocks(xDim, yDim, zDim, Rad)
> isosurface {
>   function {
>    f_rounded_box(x, y, z, Rad, xDim, yDim, zDim)
>    -f_agate(x,y,z)
>    }
> #end
> 
> 
> I can carve multiple stones :
> #declare block1 = CarvedRocks(x1, y1, z1, Rad)
> #declare block2 = CarvedRocks(x1, y1, z2, Rad)
> ...
> 
> 
> The problem is that the disturbance is the same for all blocks.
> This is not illogical, since the agate function always returns the same 
> values.
> 
> 
> Hence my question: how to obtain different blocks with the same agate 
> (or other) function ?
> 
> 
> Traditionally, by applying pigment before translations, box appear 
> different. But for an isosurface, I don't see how this can be done.
> 
> 
> 
> Any ideas ?
> THanks
> 
> 
You can feed the function some disturbed coordinates.

isosurface{f_leopar(x+f_granite(x,y,z), y+f_granite(x,y,z), 
y+f_granite(x,y,z)), contained_by{box{<-1000, -1.2, -1000><1000, 1.2, 
1000>}} <OtherIsodusfaceParameters>}


Post a reply to this message

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