|
![](/i/fill.gif) |
Well, it may be too early to call it the final word, but I think it's the
final word. It gives all of the flexibility of the mythical 3.5 patch, with
mostly the same speed, and without making any changes to the code. I think
it even works in 3.1. The only limitation is the limit on size in a map, but
even that can be worked around with nested maps. This is totally awesome.
Maybe I should go without sleep and/or caffeine more often...
Here's some scene code. Go ahead; render it. It won't bite. Don't bother
with the antialiasing. (I'd post a picture, but y'all have already seen one.)
If your computer has more horsepower than mine, please make that 10 bigger to
get more realistic results. My render stats on a K6-2/350, 320x240, with no AA:
8 minutes 36 seconds.
Have fun, y'all. Make sure you do lots of stuff I wouldn't do.
cylinder {<0,-5,15> <0,5,15> 4
texture {
average texture_map {
#declare I=0;
#declare S=seed(12465);
#while (I<10) // use any value you want here; the higher the better.
#declare I=I+1;
[1
pigment {color rgb 0}
finish {diffuse 0 specular 0 ambient 0 reflection .8}
normal {bumps .1 scale <.001,.001,.001>
translate <.002*rand(S),.002*rand(S),.002*rand(S)>}
]
#end
}
}
}
light_source {-10*x red 1}
light_source { 0 green 1}
light_source { 10*x blue 1}
plane {z, -1 pigment {color rgbf 1} finish {specular 1 roughness .1 diffuse 0}}
plane {y,-5
pigment {checker color rgb 1, color rgb 0}
rotate 30*y
finish {ambient .5}}
sphere {0 20 inverse
pigment {agate color_map {[0 rgb <.5,.5,1>][1 rgb 1]} scale 3}
finish {diffuse 0 specular 0 ambient 1}
}
--
#macro R(L P)sphere{L __}cylinder{L P __}#end#macro P(_1)union{R(z+_ z)R(-z _-z)
R(_-z*3_+z)torus{1__ clipped_by{plane{_ 0}}}translate z+_1}#end#macro S(_)9-(_1-
_)*(_1-_)#end#macro Z(_1 _ __)union{P(_)P(-_)R(y-z-1_)translate.1*_1-y*8pigment{
rgb<S(7)S(5)S(3)>}}#if(_1)Z(_1-__,_,__)#end#end Z(10x*-2,.2)camera{rotate x*90}
Post a reply to this message
|
![](/i/fill.gif) |