POV-Ray : Newsgroups : povray.general : Problem with multiple f_hetero_mf isosurfaces : Problem with multiple f_hetero_mf isosurfaces Server Time
4 Aug 2024 00:22:02 EDT (-0400)
  Problem with multiple f_hetero_mf isosurfaces  
From: Alun
Date: 10 Sep 2003 10:00:01
Message: <web.3f5f2d3e6dc97f052667dc700@news.povray.org>
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

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