Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'render_povray/templates_pov/isocacti.pov')
-rw-r--r--render_povray/templates_pov/isocacti.pov242
1 files changed, 242 insertions, 0 deletions
diff --git a/render_povray/templates_pov/isocacti.pov b/render_povray/templates_pov/isocacti.pov
new file mode 100644
index 00000000..c0e8cde0
--- /dev/null
+++ b/render_povray/templates_pov/isocacti.pov
@@ -0,0 +1,242 @@
+// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
+// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
+// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
+
+// Persistence Of Vision raytracer sample file.
+// Updated: Feb-2013 for 3.7
+//
+// -w320 -h240
+// -w800 -h600 +a0.3
+
+#version 3.7;
+global_settings { assumed_gamma 1.3 }
+
+#include "stdinc.inc"
+#include "arrays.inc"
+
+
+
+sky_sphere {
+ pigment {gradient y
+ color_map {
+ [0 color Blue*0.6]
+ [1 color White]
+ }
+ }
+}
+
+#default {finish {ambient 0}}
+#declare RS = seed(464786);
+//----------------------------------------
+#declare CamLoc = < 5, 10,-10>;
+camera {
+ location CamLoc
+ right x*image_width/image_height // keep propotions with any aspect ratio
+ angle 45
+ look_at <0, 0, 0>
+}
+
+light_source {<-20, 30, -30>*3 color White*1.5}
+light_source {CamLoc color rgb 0.3}
+//----------------------------------------
+
+#declare Ground =
+isosurface {
+ function {y - f_snoise3d(x/7, 0, z/2)*0.5}
+ threshold 0
+ max_gradient 1.1
+ contained_by {box {<-100,-3,-100>, < 100, 1, 100>}}
+
+/* texture {
+ pigment {color rgb < 1, 0.9, 0.65>}
+ normal {granite bump_size 0.1 scale 0.01}
+ }*/
+ texture{
+ pigment{
+ color rgb <.518, .339, .138>
+ }
+ normal{
+ bumps 5
+ scale 0.05
+ }
+ finish{
+ specular .3
+ roughness .8
+ }
+ }
+
+ texture{
+ pigment{
+ wrinkles
+ scale 0.05
+ color_map{
+ [0.0 color rgbt <1, .847, .644, 0>]
+ [0.2 color rgbt <.658, .456, .270, 1>]
+ [0.4 color rgbt <.270, .191, .067, .25>]
+ [0.6 color rgbt <.947, .723, .468, 0>]
+ [0.8 color rgbt <.356, .250, .047, 1>]
+ [1.0 color rgbt <.171, .136, .1, 1>]
+ }
+ }
+
+ }
+}
+object {Ground}
+
+#declare RockColors = array[5]
+{
+ color rgb < 0.5, 0.4, 0.35>,
+ color rgb < 0.4, 0.5, 0.4>,
+ color rgb < 0.8, 0.75, 0.65>,
+ color rgb 0.8,
+ color rgb 0.5
+}
+
+#declare CtrlPtrn = function {pattern {bozo scale < 7, 1, 2>}}
+#declare L = 0;
+#while(L < 750)
+ #declare Pt = trace(Ground, < rand(RS)*25 - 15, 10, rand(RS)*25 - 10>, -y);
+ #if(rand(RS) > CtrlPtrn(Pt.x, Pt.y, Pt.z))
+// sphere {o, 0.03 + pow(rand(RS), 2)*0.15
+ isosurface {
+ function {f_r(x, y, z) - 1 + f_noise3d(x, y, z)*0.5}
+ threshold 0
+ contained_by {sphere {o, 1}}
+ #if(rand(RS) < 0.5) scale VRand_In_Box(< 1, 0.9, 1>, < 2, 1, 3>, RS) #end
+ rotate y*rand(RS)*360
+ translate -y*0.35
+ scale 0.03 + pow(rand(RS),2)*0.35
+ texture {
+ pigment {Rand_Array_Item(RockColors, RS)*RRand(0.1, 1, RS)}
+ normal {granite bump_size 0.5 scale 0.01}
+ }
+ translate Pt
+ }
+ #declare L = L + 1;
+ #end
+#end
+
+#macro MakeSpineBunch(Pt, Dir, Jitter, Len, BaseRad, Num)
+ #local L = 0;
+ #while(L < Num)
+ #local NewDir = vnormalize(Dir + Jitter*(< rand(RS), rand(RS), rand(RS)>*2 - 1));
+ cone {Pt, BaseRad, Pt + NewDir*Len, 0}
+ #local L = L + 1;
+ #end
+#end
+#macro MakeSpineRows(Body, Stretch, AltJitter, Ridges, Bunches, Spines, SpineJitter, SpineLen, SpineRad)
+ #declare J = 0;
+ #local AltDelta = 180/Bunches;
+ union {
+ #while(J < Ridges)
+ #declare K = 0;
+ #while(K < Bunches)
+ #declare Orig = vrotate(-y*50, x*(K + rand(RS)*AltJitter)*AltDelta);
+ #declare Orig = vrotate(Orig, y*(360*J/Ridges + 360/(Ridges*4)))*Stretch;
+ #declare PtNorm = y;
+ #declare Pt = trace(Body, Orig,-Orig, PtNorm);
+ MakeSpineBunch(Pt, PtNorm, SpineJitter, SpineLen, SpineRad, Spines)
+ #declare K = K + 1;
+ #end
+ #declare J = J + 1;
+ #end
+ }
+#end
+
+#declare sinw = function (x) {(sin(x) + 1)/2}
+
+#declare Ridges = 40;
+#declare RidgeDepth = 0.075;
+
+#declare cactus1Body =
+isosurface {
+ function {sqrt(x*x + pow(y - sqrt((x*x/4) + (z*z/4))*1.5, 2) + z*z) - 1 -
+ (sin(atan2(x, z)*Ridges)*0.5*RidgeDepth)
+ }
+ threshold 0
+ max_gradient 5
+
+ contained_by {sphere {< 0, 0, 0>, 3.1}}
+ texture {
+ pigment {radial
+ color_map {
+ [0.00 color rgb < 0.3, 0.65, 0.4>*0.8]
+ [0.65 color rgb < 0.3, 0.65, 0.4>*0.8]
+ [1.00 color rgb < 0.3, 0.65, 0.4>*0.2]
+ }
+ frequency Ridges sine_wave
+ }
+ normal {dents 0.1 poly_wave 2 scale < 1, 0.15, 1>}
+ }
+}
+#declare Cactus1 =
+union {
+ object {cactus1Body}
+ object {MakeSpineRows(cactus1Body, 1, 0.2, Ridges, 24, 3, 0.5, 1, 0.01)
+ texture {pigment {color rgb < 0.98, 0.98, 0.5>}}
+ }
+ scale < 1, 0.75, 1>
+ translate y*0.35
+}
+
+
+#declare Ridges = 32;
+#declare RidgeDepth = 0.1;
+#declare cactus2Body =
+
+isosurface {
+ function {
+ f_r(x, y*0.35, z) - 1 - sqrt(x*x + z*z)*0.2
+ - (sinw(atan2(x, z)*Ridges)*RidgeDepth)
+ }
+ threshold 0
+ max_gradient 5
+ contained_by {sphere {< 0, 0, 0>, 3.1}}
+ texture {
+ pigment {color rgb < 0.3, 0.65, 0.4>}
+ normal {bozo 0.1 scale < 1, 0.15, 1>}
+ }
+}
+
+#declare Cactus2 =
+union {
+ object {cactus2Body}
+ object {MakeSpineRows(cactus2Body, < 1, 3, 1>, 1, Ridges, 64, 3, 1, 0.5, 0.01)
+ texture {pigment {color rgb < 0.98, 0.98, 0.5>}}
+ }
+ translate y*2
+}
+
+
+
+#declare Ridges = 75;
+#declare RidgeDepth = 0.05;
+#declare cactus3Body =
+
+isosurface {
+ function {
+ sqrt(x*x + pow((y/1.5),2) + z*z) - 1 - sqrt(x*x + z*z)*0.2
+ - (sinw(atan2(x, z)*Ridges)*RidgeDepth)
+ }
+ threshold 0
+ max_gradient 5
+ contained_by {sphere {< 0, 0, 0>, 3.1}}
+ texture {
+ pigment {color rgb < 0.1, 0.5, 0.25>}
+ normal {bozo 0.1 scale 0.15}
+ }
+}
+#declare Cactus3 =
+union {
+ object {cactus3Body}
+ object {MakeSpineRows(cactus3Body, < 1, 1.5, 1>, 1, Ridges, 24, 5, 1, 0.35, 0.01)
+ texture {pigment {color rgb < 0.98, 0.98, 0.85>}}
+ }
+ translate y*1.25
+}
+
+object {Cactus1 translate < 3, 0,-3>}
+object {Cactus2}
+object {Cactus3 translate <-2, 0,-3.5>}
+
+//----------------------------------------