|
![](/i/fill.gif) |
The function abs(y) with a threshold of 0 gives me a wafer-thin mint* -
however if I add any complexity to the iso (e.g. noise3d), it thickens up. I
can get around this by translating another copy of the iso y*0.01 and
differencing the two, but is there another way to easily keep just a surface
skin of an iso?
The example below demonstrates this and, when rendered, raises another
problem - why is the shadow of this iso-surface incomplete?
* source this quote.
#version unofficial MegaPov 0.5;
#include "colors.inc"
light_source{<0,0,0> color rgb<1,1,0.96>*0.75 translate <-30, 30, -30>}
camera{location <2.0, 3.0, -2.0> look_at <0,0,0>}
plane{y, -1 pigment{White}}
#declare isoLayer =
isosurface{
#declare f1 = function {"ridgedMF" <1,2,5,0.5,10>}
#declare f2 = function{pigment{wrinkles}}
function{abs(y) + f1(x*5, y*5, z*5)/5 + f2 - 1}
max_gradient 3
eval
threshold 0
sign 1
accuracy .001
contained_by{sphere{0,1}}
scale<1,1,1>
}
intersection{
difference{
object{isoLayer}
object{isoLayer translate y*-0.01}
}
cylinder{0, 0.9*y, 0.9}
pigment{Green}
}
Post a reply to this message
|
![](/i/fill.gif) |