|
|
I'm creating a scene with two isosurface objects that use similar
f_hetero_mf functions - one for a jagged looking mountain range
in the distance, and one for some smoother rolling hills in the
foreground.
I'm happy with the function for the mountains, so I copy it to use
as the basis for the hills. At this point I've got a scene with 2
identical isosurfaces.
So far so good :-)
To make the hills smoother than the mountains, I change the number
of octaves in the f_hetero_mf function in the hills isosurface,
and re-render...
This is where it all goes wrong :-(
The hills isosurface changes correctly, but the mountains one also
changes - and not always in the same way, for some hills_octaves
values it changes to a copy of the hills, for others it fills its
container volume, and for others it doesn't change at all.
I know this sounds like I'm doing something daft, but I've
simplified the scene right down, and I can't see anything wrong
with it.
Could someone out there have a look at this and let me know if I
am doing something daft ?
Here's my cut down scene:
---------------
#version 3.5;
#include "functions.inc"
//
---------------------------------------------------------------------------------------
#declare mountain_octaves=12;
#declare hills_octaves=12; // Try changing this to 4 ...
//
---------------------------------------------------------------------------------------
camera {
right x*image_width/image_height
location -10*z
look_at -y/2
angle 30
}
light_source { 2*y-z rgb 1 }
//
---------------------------------------------------------------------------------------
isosurface {
function { 2+y - f_hetero_mf(0.2+x,0,z, 0.9, 1.7, mountain_octaves, 0.5,
0.9, 3 ) }
contained_by { sphere {0 1} }
evaluate 5, 1.2, 0.95
pigment { rgb <0.7,0.8,0.9> }
translate x*1.2
}
//
---------------------------------------------------------------------------------------
isosurface {
function { 2+y - f_hetero_mf(0.2+x,0,z, 0.9, 1.7, hills_octaves, 0.5, 0.9,
3 ) }
contained_by { sphere {0 1} }
evaluate 5, 1.2, 0.95
pigment { rgb <0.5,0.8,0.6> }
translate -x*1.2
}
//
---------------------------------------------------------------------------------------
Post a reply to this message
|
|