|
|
Hi,
Here's a remake of an old crackle chart, but using isosurfaces. It shows various
results from different forms. The one with white text is the standard form.
The attached image only uses metric 2, but the code can be changed if you want a
different value.
It's not at all exhaustive, but potentially handy for finding a jumping-off
point. (Please ignore the -0.0; it's been a while since using str() and I forgot
how to easily get rid of the minus sign ;P)
/*
CrackleChart.pov
2023 Sam Benge
+fn +f +a0.03 +am2 +r3 +w7000 +h1000
*/
#version 3.7;
global_settings{assumed_gamma 1.0}
#default{ finish{ambient 0} }
camera{
orthographic
right x*7 up y
location <0, 5, -5>
look_at 0
angle 104
}
light_source{
<-1, .5, -.25>*1e5, rgb <1.7, 1.6, 1.4>
shadowless
}
background{rgb <.03, .1, .3>}
union{
#declare N = 3;
#for(Z, -1, 1, 1/N)
#for(Y, -1, 1, 1/N)
#for(X, -1, 1, 1/N)
#local Form = <X, Y, Z>;
#local Metric = 2;
#local Translate = <X + Z*7.7, Y*1.5, 0>;
#local FCrackle =
function{
pattern{
crackle
form Form
metric Metric
scale .75
}
}
isosurface{
function{
y - .5 * FCrackle(x, 0, z) + .5
}
accuracy .001
evaluate 0, 10, .5
scale .3/N
rotate y*25
translate Translate
}
#undef FCrackle
text{
ttf "arialbd"
concat("<", str(Form.x, 1, 1), ", ", str(Form.y, 1, 1), ", ", str(Form.z,
1, 1), ">")
.1, 0
rotate x*45
translate <-4, -7.5, 0>
scale .12/N
translate Translate
// white text for default crackle form, yellow otherwise
#if(Form.x=-1 & Form.y=1 & Form.z=0)
pigment{rgb 1}
#else
pigment{rgb <1, .8, .4>}
#end
finish{emission 1 diffuse 0}
}
#end
#end
#end
translate y*.1
pigment{rgb .75}
}
Sam
Post a reply to this message
Attachments:
Download 'cracklechart.jpg' (1133 KB)
Preview of image 'cracklechart.jpg'
|
|