|
|
This is very simple, but it just worked so well. It will render by itself,
showing it's parameters, or you can #include it into your scene.
Pass in any real number to use as a random seed.
---
#include "functions.inc"
#macro IsoRoid(s)
#declare R=seed(s);
#declare SmallAmplitude=rand(R)/10+.1;
#declare SmallFrequency=rand(R)*5+4;
#declare BigAmplitude=rand(R)/3+0.5;
#declare BigFrequency=rand(R)+1;
union{
isosurface{
function {
f_sphere(x, y, z, 1.6)
- f_noise3d(x * SmallFrequency, y * SmallFrequency, z * SmallFrequency)
* SmallAmplitude
+ f_noise3d(x * BigFrequency, y * BigFrequency, z * BigFrequency) *
BigAmplitude
}
max_gradient 10
contained_by { box { -3, 3 } }
pigment{color rgb 1}
scale rand(R)+.4
}
#ifndef(White)
text{ttf "Arial.ttf" concat("Small F",str(SmallFrequency,8,3),"
A",str(SmallAmplitude,8,3)) 0.01,0
scale .4
translate <-2,-3,0>
pigment{color rgb<0,1,0>}
finish{ambient 1}
}
text{ttf "Arial.ttf" concat("Big F",str(BigFrequency,8,3),"
A",str(BigAmplitude,8,3)) 0.01,0
scale .4
translate <-2,-3.5,0>
pigment{color rgb<1,0,0>}
finish{ambient 1}
}
#end
}
#end
#ifndef(White)
#declare A=-3;
#declare Ast=seed(1);
#while (A<=3)
#declare Place=<A*6,7,0>;
object{IsoRoid(A) translate Place}
#declare Place=<A*6,0,0>;
object{IsoRoid(A+10) translate Place}
#declare Place=<A*6,-7,0>;
object{IsoRoid(A+20) translate Place}
#declare A=A+1;
#end
light_source{<-1,1,-1>*100 color rgb 1}
camera{
location<0,0,-30> look_at<0,0,0>
up y*.9
right x*1.6
}
#end
Post a reply to this message
|
|