diff options
author | Maurice Raybaud <mauriceraybaud@hotmail.fr> | 2017-06-11 17:31:00 +0300 |
---|---|---|
committer | Maurice Raybaud <mauriceraybaud@hotmail.fr> | 2017-06-11 17:31:00 +0300 |
commit | eaf47415b2687621fb0e542ba4195476d1e6c7d8 (patch) | |
tree | 2f6e327517e1b82b35d243c17b11ceda48ff89cf | |
parent | 1c3a84f24f31273587d198cc888f11985b1518b3 (diff) |
*Added POV Scene Description Language templates to be used by text editor
-rw-r--r-- | render_povray/templates_pov/abyss.pov | 834 | ||||
-rw-r--r-- | render_povray/templates_pov/biscuit.pov | 370 | ||||
-rw-r--r-- | render_povray/templates_pov/bsp_Tango.pov | 61 | ||||
-rw-r--r-- | render_povray/templates_pov/chess2.pov | 727 | ||||
-rw-r--r-- | render_povray/templates_pov/cornell.pov | 130 | ||||
-rw-r--r-- | render_povray/templates_pov/diffract.pov | 195 | ||||
-rw-r--r-- | render_povray/templates_pov/diffuse_back.pov | 251 | ||||
-rw-r--r-- | render_povray/templates_pov/float5.pov | 81 | ||||
-rw-r--r-- | render_povray/templates_pov/gamma_showcase.pov | 189 | ||||
-rw-r--r-- | render_povray/templates_pov/grenadine.pov | 375 | ||||
-rw-r--r-- | render_povray/templates_pov/isocacti.pov | 242 | ||||
-rw-r--r-- | render_povray/templates_pov/mediasky.pov | 147 | ||||
-rw-r--r-- | render_povray/templates_pov/patio-radio.pov | 292 | ||||
-rw-r--r-- | render_povray/templates_pov/subsurface.pov | 176 | ||||
-rw-r--r-- | render_povray/templates_pov/wallstucco.pov | 186 |
15 files changed, 4256 insertions, 0 deletions
diff --git a/render_povray/templates_pov/abyss.pov b/render_povray/templates_pov/abyss.pov new file mode 100644 index 00000000..6cb39da8 --- /dev/null +++ b/render_povray/templates_pov/abyss.pov @@ -0,0 +1,834 @@ +// 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. +//============================================ +// The field, new improved version October. 2001 +// Copyright Gilles Tran 2001 +// http://www.oyonale.com +//-------------------------------------------- +// Render with a 2.67 ratio such as 320*120, 640*240, 1024*384, 1280*480 +//-------------------------------------------- +// -w320 -h120 +// -w640 -h240 +a0.1 +// -w768 -h288 +a0.1 +// -w1024 -h384 +a0.1 + +// Uncomment AreaOK=true below to turn on the area light +// This will blur the shadow under the submarine +// but the rendering time will extremely slow + +#version 3.6; + +global_settings{ assumed_gamma 1.0 max_trace_level 15 } + +#declare AreaOK=false; +//#declare AreaOK=true; + +#include "colors.inc" +#include "functions.inc" +//============================================ +// General +//============================================ +//-------------------------------------------- +// Camera +//-------------------------------------------- +#declare PdV=<-20, -20, -400>; +camera{ + location PdV + angle 65 // direction z*2 + up y + right x*image_width/image_height // keep propotions with any aspect ratio //right 8*x/3 + look_at <-20, 30, 0> +} + +//-------------------------------------------- +// reorientation macro +//-------------------------------------------- +#macro mOrient(P1,P2) +#local yV1=vnormalize(P2-P1); +#local xV1=vnormalize(vcross(yV1,z)); +#local zV1=vcross(xV1,yV1); + matrix <xV1.x,xV1.y,xV1.z,yV1.x,yV1.y,yV1.z,zV1.x,zV1.y,zV1.z,P1.x,P1.y,P1.z> +#end + +//-------------------------------------------- +// colors +//-------------------------------------------- +#declare colWater1=rgb<0,79,159>/255; +#declare colWater2=rgb<7,146,217>/255; +#declare colWater3=rgb<82,239,238>/255; +#declare colSub=<7/255,146/255,217/255>; + +//-------------------------------------------- +// lights +//-------------------------------------------- +light_source {<-10, 1000, -10> color colWater2*10 +#if (AreaOK) + area_light x*200,z*200, 3,3 adaptive 1 jitter orient +#end + +} +light_source {<-200, -1000, -300> color colWater2*2 shadowless media_interaction off} +light_source {PdV color colWater2*2 shadowless media_interaction off} + +//-------------------------------------------- +// mine textures +//-------------------------------------------- +#declare txtMine=texture { + pigment{color colWater3*0.1} + finish{ambient 0 diffuse 0.4 specular 0.03 roughness 0.2 reflection 0.05} +} +#declare txtCable=texture { + pigment{color colWater3*0.1} + finish{ambient 0 diffuse 0.1 specular 0.02 roughness 0.2} +} + +//-------------------------------------------- +// sub textures +//-------------------------------------------- +#declare txtSkin=texture{ + pigment{ + function{min(1,max(0,y))} + turbulence 0.01 omega 1.5 lambda 5 poly_wave 1.5 + color_map{[0 Clear][0.25 rgbt<0,0,0,0.7>] [0.4 rgbt<0,0,0,0.3>]} + scale 38 translate -y*17 + } + + finish{ambient 0 diffuse 0.6 specular 0.1 roughness 1/10} +} +#declare trb=0.0001; +#declare pigLettre=pigment{bozo color_map{[0 White*1.3][1 White*0.5]}} +#declare txtLettre=texture{ // submarine name + pigment { + object { + text{ttf "cyrvetic.ttf" "PERSISTENCE" 10, 0.3*x + translate -z*0.5 scale <1,1,10> + } + pigment{color Clear}, pigment{pigLettre} + } + rotate y*90 + scale 1.5 translate <-10,-1,-25> + } + + finish{ambient 0 diffuse 0.4} + +} + +#declare txtSub0=texture { + pigment{rgb colSub*0.2} + finish {ambient 0 diffuse 0.3 specular 0.05 roughness 0.1} +} +// Thanks to Bob H. for the help regarding these textures +#declare txtSubBase=texture { + pigment { + + cells + color_map { + [.45 rgb <colSub.x*0.1,colSub.y*0.1,colSub.z*0.1>] + [.55 rgb <colSub.x,colSub.y,colSub.z>*0.8] + } + scale <100,.125,1> + } + + scale 3 + finish {ambient 0 diffuse 0.3 specular 0.05 roughness 0.1} +} + +#declare txtSubTop= + + texture{txtSubBase} + texture { + pigment { + cells + color_map { + [.25 rgbf <colSub.x*0.1,colSub.y*0.1,colSub.z*0.1,0>] + [.75 rgbf <colSub.x,colSub.y,colSub.z,1>] + } + scale <100,0.75,1> + } + scale 3.5 + finish {ambient 0 diffuse 0.3 specular 0.05 roughness 0.1} + } + + texture { + pigment { + cells + color_map { + [.25 rgbf <colSub.x*0.4,colSub.y*0.4,colSub.z*0.4,0>] + [.75 rgbf <colSub.x,colSub.y,colSub.z,1>] + } + scale <100,0.45,1> + } + scale 2.5 + finish {ambient 0 diffuse 0.3 specular 0.05 roughness 0.1} + } + + texture{txtSkin} + +#declare txtSubBottom= + + texture{txtSubBase} + + texture { + pigment { + cells + color_map { + [.25 rgbf <colSub.x*0.5,colSub.y*0.5,colSub.z*0.5,0>] + [.75 rgbf <colSub.x,colSub.y,colSub.z,1>] + } + scale <100,.75,1> + } + scale 5 + finish {ambient 0 diffuse 0.3 specular 0.05 roughness 0.1} + } + + texture { + pigment { + cells + color_map { + [0 rgbf <colSub.x*0.5,colSub.y*0.5,colSub.z*0.5,.5>] + [1 rgbf <colSub.x,colSub.y,colSub.z,1>] + } + scale <100,0.25,1> + } + scale 5 + translate 1 + finish {ambient 0 diffuse 0.3 specular 0.05 roughness 0.1} + } + + texture{txtLettre} + texture{txtSkin} + + +//============================================ +// Mine +//============================================ +//-------------------------------------------- +// Spikes +//-------------------------------------------- + +#declare Spike = union{ + #declare rSpike1=0.08; + #declare rSpike2=rSpike1*0.3; + #declare ySpike=0.4; + cone{0,rSpike1,y*ySpike,rSpike2} + sphere{0,rSpike2 translate y*ySpike} + sphere{0,rSpike1*1.5 scale <1,0.3,1>} + #declare i=0;#while (i<360) sphere{0,0.015 scale <2,1,2> translate <rSpike1*2.8,-0.04,0> rotate y*i} #declare i=i+30;#end + translate y +} + + + + + +//-------------------------------------------- +// Mine body +//-------------------------------------------- +#declare rd=seed(0); +#declare MineBody=union { + isosurface { + function{x*x+y*y+z*z-1 +f_noise3d(x*10,y*10,z*10)*0.05} + max_gradient 2.492 + contained_by{sphere{0,1}} + } + + #declare i=0; + #while (i<360) + #declare j=0; + #while (j<180) + object{Spike rotate z*(i+rand(rd)*2) rotate y*(j+rand(rd)*2)} + #declare j=j+45; + #end + #declare i=i+45; + #end + + object{Spike rotate 90*y} + object{Spike rotate -90*y} + rotate 360*rand(rd) + +} + +//-------------------------------------------- +// Mine cable and decorative collar +//-------------------------------------------- +#declare rFil=0.03; +#declare yFil=100; +#declare MineCable=isosurface{ + function{f_helix1(x,y,z,3,35,0.35*rFil,0.55*rFil,2,1,0)} + contained_by {box {<-rFil,0,-rFil>,<rFil,yFil,rFil>}} + max_gradient 2.552 + scale <1,-1,1>*3 translate -y +} + + +#declare MineCollar=lathe{ + cubic_spline + 15, + <0.058,0.003>,<0.081,0.000>,<0.101,0.055>,<0.099,0.085>,<0.104,0.132>,<0.066,0.152>, + <0.095,0.169>,<0.089,0.194>,<0.144,0.227>,<0.143,0.281>,<0.145,0.307>,<0.109,0.325>, + <0.067,0.353>,<0.031,0.362>,<0.030,0.363> + translate -y*0.363 +} + +//-------------------------------------------- +// Mine +//-------------------------------------------- +#declare Mine=union{ + object{MineBody} + sphere{0,1 scale <0.4,0.14,0.4> translate -y*0.91} + #declare i=0;#while (i<360) cylinder{0,-y*0.1,0.02 translate <0.35,-0.91,0> rotate y*i} #declare i=i+30;#end + object{MineCollar scale <1.2,2,1.2> translate -y*0.92} + object{MineCollar translate -y*2} + object{MineCable} + texture{txtMine} +} + + + +//============================================ +// Submarine +//============================================ +#declare Sc=3; // general scaling parameter +#declare SX=6*Sc; // x scaling +#declare SYbot=10*Sc;// y scaling for the bottom +#declare SYtop=2*Sc; // y scaling for the top +#declare SZfront=20*Sc; // z scaling for the front +#declare SZrear=100*Sc;// z scaling for the rear + +//-------------------------------------------- +// Main parts +//-------------------------------------------- +#declare Part1=blob{ // bottom front + threshold 0.6 + sphere{0,1,1} + cylinder{-z*2,z,0.04,-1 translate <-0.2,-0.3,1> pigment{Black}} + cylinder{-z*2,z,0.04,-1 translate <-0.17,-0.18,1> pigment{Black}} + sphere{0,1,1 scale <0.1,0.45,1.05>} + sphere{0,1,1 scale <0.3,0.45,0.8>} +} +#declare Part2=blob{ // top front + threshold 0.6 + sphere{0,1,1} + sphere{0,1,1 scale <0.3,0.45,0.8>} + sphere{0,1,1 scale <0.2,1.2,1.05>} +} +#declare Part3=blob{ // bottom rear + threshold 0.6 + sphere{0,1,1} + cylinder{-x,0,1,1 scale <0.5,0.03,0.02> translate <0,-0.05,0.45>} + cylinder{-y,0,1,1 scale <0.03,0.2,0.02> translate <0,-0.05,0.45>} +} +#declare Part4=blob{ // top rear + threshold 0.6 + sphere{0,1,1} + cylinder{-y,y,2,2 scale <0.03,0.3,0.012> translate <0,0.5,0.45>} + sphere{0,1,1 scale <0.2,1.2,0.4>} + + cylinder{-x,0,1,1 scale <0.2,0.2,0.04> rotate x*-10 translate <0,1.5,0.2>} + cylinder{0,y,0.2,2 scale <0.6,2.5,0.4>*0.7 translate <0,-0.05,0.16>} + cylinder{0,y,0.2,2 scale <0.4,2.5,0.4>*0.7 translate <0,-0.05,0.165>} + cylinder{0,y,0.2,2 scale <0.2,2.5,0.4>*0.7 translate <0,-0.05,0.17>} +} + + +//-------------------------------------------- +// Top +//-------------------------------------------- +#declare HalfSubTop=union{ + difference{ + object{Part2} // top front + plane{y,0} + plane{z,0 inverse} + plane{x,0 inverse} + scale <SX,SYtop,SZfront> + } + difference{ + object{Part4} // top rear + plane{y,0} + plane{z,0} + plane{x,0 inverse} + scale <SX,SYtop,SZrear> + } +} +#declare SubTop=union{ + object{HalfSubTop} + object{HalfSubTop scale <-1,1,1>} + texture{txtSubTop} +} +//-------------------------------------------- +// Bottom +//-------------------------------------------- +#declare HalfSubBottom=union{ + difference{ + object{Part1} // bottom front + plane{y,0 inverse} + plane{z,0 inverse} + plane{x,0 inverse} + scale <SX,SYbot,SZfront> + } + difference{ + object{Part3} // bottom rear + plane{y,0 inverse} + plane{z,0} + plane{x,0 inverse} + scale <SX,SYbot,SZrear> + } +} + +#declare SubBottom=union{ + object{HalfSubBottom} + object{HalfSubBottom scale <-1,1,1>} + texture{txtSubBottom} +} +//-------------------------------------------- +// Decorative elements +//-------------------------------------------- +#declare Balustrade=union{ + #declare rB1=0.02; + #declare rB2=0.04; + #declare yB=1; + #declare rB3=yB*6; + #declare rB4=3; + #declare zB=20; + #declare zB2=8; + #declare i=0; + #while (i<zB) + cylinder{0,y*yB,rB1 translate z*i} + #declare i=i+zB/12; + #end + cylinder{0,z*zB,rB2 translate y*yB} + cylinder{0,z*zB,rB2 translate y*yB*0.3} + cylinder{0,z*zB,rB2 translate y*yB*0.6} + union{ + difference{torus{rB3,rB2 rotate z*90} plane{y,0} plane{z,0 inverse} plane{z,0 rotate x*-45}} + cylinder{0,-z*zB*0.1,rB2 translate y*rB3 rotate x*-45} + translate y*(yB-rB3) + } + union{ + difference{torus{rB4,rB2} plane{x,0 inverse} translate <0,yB,0>} + difference{torus{rB4,rB1} plane{x,0 inverse} translate <0,yB*0.5,0>} + #while (i<180) + cylinder{0,y*yB,rB1 translate -z*rB4 rotate y*i} + #declare i=i+180/14; + #end + scale <0.4,1,1> + translate z*(rB4+zB) + } + union{ + difference{torus{rB3,rB2 rotate z*90} plane{y,0} plane{z,0 inverse} plane{z,0 rotate x*-65}} + cylinder{0,-z*zB*0.1,rB2 translate y*rB3 rotate x*-65} + translate y*(yB-rB3) + scale <1,1,-1> + translate z*(zB+rB4*2) + } + +} + + + +//-------------------------------------------- +// guns +//-------------------------------------------- +#declare Guns0=union{ + superellipsoid{<0.3,0.3> translate z scale <0.8,1,4>} + union{ + cone{0,0.4,z*12,0.3} + union{ + cone{0,0.3,z*1.5,0.5} + difference{ + sphere{0,0.5} + cylinder{-z,z,0.3} + translate z*1.5 + } + translate z*12 + } + translate z*8 + } + translate -z*3 +} + +#declare Wheel=blob{ + threshold 0.6 + sphere{0,1.3,1 scale <1,1.2,1>} + cylinder{0,-y*3,0.8,1} + #declare Teta=0; + #while (Teta<360) + cylinder{0,x*3.4,0.4,1 rotate y*Teta} + cylinder{0,y,0.4,1 translate x*3 rotate y*Teta} + sphere{0,0.6,1 translate x*3 rotate y*Teta} + sphere{0,0.4,1 translate x*3 rotate y*(Teta+6)} + sphere{0,0.4,1 translate x*3 rotate y*(Teta+12)} + sphere{0,0.4,1 translate x*3 rotate y*(Teta+18)} + sphere{0,0.4,1 translate x*3 rotate y*(Teta+24)} + sphere{0,0.4,1 translate x*3 rotate y*(Teta+30)} + sphere{0,0.4,1 translate x*3 rotate y*(Teta+36)} + sphere{0,0.4,1 translate x*3 rotate y*(Teta+42)} + sphere{0,0.4,1 translate x*3 rotate y*(Teta+48)} + sphere{0,0.4,1 translate x*3 rotate y*(Teta+54)} + sphere{0,0.5,1 translate x*3 rotate y*(Teta+60)} + sphere{0,0.5,1 translate x*3 rotate y*(Teta+66)} + #declare Teta=Teta+72; + #end +} +#declare Guns1=union{ + object{Guns0} + object{Wheel rotate y*10 scale 0.7 rotate z*90 translate -x*1.5} + +} +#declare Eye=union{ + torus{4.5,0.5} + difference{ + sphere{0,4.3} + box{-5,5 scale <1,1,0.05>} + box{-5,5 scale <1,1,0.05> translate z} + box{-5,5 scale <1,1,0.05> translate z*2} + box{-5,5 scale <1,1,0.05> translate z*3} + box{-5,5 scale <1,1,0.05> translate z*4} + box{-5,5 scale <1,1,0.05> translate -z} + box{-5,5 scale <1,1,0.05> translate -z*2} + box{-5,5 scale <1,1,0.05> translate -z*3} + box{-5,5 scale <1,1,0.05> translate -z*4} + scale <1,0.7,1> + } +} +#declare Ring1=union{ + cylinder{-0.2*x,0.2*x,1.2} + torus{1.1,0.1 rotate z*90 scale <2,1,1> translate -x*0.2} + torus{1.1,0.1 rotate z*90 scale <2,1,1> translate x*0.2} +} +#declare Elbow1=intersection{torus{2,1} plane{z,0 inverse} plane{x,0 inverse} } + + +#declare Thingie=union{ + torus{1.5,0.3 rotate z*90 translate -x} + cylinder{-x,x,1.5} + superellipsoid{<0.2,0.2> scale <1.5,2,2.5> translate x*2.5} + object{Eye scale 1.5/7 rotate -x*90 translate <2.5,0,-2.5>} + object{Eye scale 1.5/7 rotate -x*90 translate <2.5,0,-2.5> scale <1,1,-1>} + sphere{0,1.5 scale <0.5,1,1> translate x*4} + sphere{0,1.5 scale <0.5,1,1> translate x*16} + cylinder{x*4,x*16,1.2} + torus{1.9,0.1 rotate z*90 translate x*16.5} + cylinder{x*16.5,x*17.5,2} + torus{1.9,0.1 rotate z*90 translate x*17.5} + cylinder{x*17.5,x*23,1.5} + union{ + torus{0.5,0.1} + intersection{torus{2.5,0.5 rotate x*90} plane{y,0 inverse} plane{x,0} translate x*2.5} + torus{0.5,0.1 translate -x*2.5 rotate z*-30 translate x*2.5 } + torus{0.5,0.1 translate -x*2.5 rotate z*-60 translate x*2.5 } + torus{0.5,0.1 translate -x*2.5 rotate z*-90 translate x*2.5 } + union{ + cylinder{0,9*x,0.5} + cylinder{2*x,5*x,0.7} + torus{0.5,0.2 rotate z*90 translate x*2} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*2.3} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*2.6} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*2.9} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*3.2} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*3.5} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*3.8} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*4.1} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*4.4} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*4.7} + torus{0.5,0.2 rotate z*90 translate x*5} + torus{0.5,0.3 rotate z*90 translate x*8} + cone{0,0.7,x,0.9 translate x*8} + torus{0.9,0.2 rotate z*90 translate x*9} + translate <2.5,2.5,0> + } + translate <2.5,2,1.7> + } + union{ + torus{0.5,0.1} + intersection{torus{2.5,0.5 rotate x*90} plane{y,0 inverse} plane{x,0} translate x*2.5} + torus{0.5,0.1 translate -x*2.5 rotate z*-30 translate x*2.5 } + torus{0.5,0.1 translate -x*2.5 rotate z*-60 translate x*2.5 } + torus{0.5,0.1 translate -x*2.5 rotate z*-90 translate x*2.5 } + union{ + cylinder{0,9*x,0.5} + cylinder{3*x,6*x,0.7} + torus{0.5,0.2 rotate z*90 translate x*3} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*3.3} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*3.6} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*3.9} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*4.2} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*4.5} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*4.8} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*5.1} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*5.4} + torus{0.7,0.2 scale <0.2,1,1> rotate z*90 translate x*5.7} + torus{0.5,0.2 rotate z*90 translate x*6} + torus{0.5,0.3 rotate z*90 translate x*8} + cone{0,0.7,x,0.9 translate x*8} + torus{0.9,0.2 rotate z*90 translate x*9} + translate <2.5,2.5,0> + } + translate <2.5,2,-1.7> + } + union{ + superellipsoid{<0.2,0.2> scale <1,1.3,2.6>} + object{Eye scale 1/7 rotate -x*90 translate z*-2.6} + object{Eye scale 1/7 rotate -x*90 translate z*2.6} + object{Eye scale 1/7 rotate y*90 translate <0,1.3,1.7>} + object{Eye scale 1/7 rotate y*90 translate <0,1.3,-1.7>} + cylinder{x,x*3,1} + torus{1,0.2 rotate z*90 translate x*3} + intersection{torus{4.5,1 rotate x*90} plane{y,0 inverse} plane{x,0 inverse} scale <0.5,1,1> translate <3,-4.5,0>} + torus{1,0.3 scale <0.5,4,1> translate <3+2.25,-3,0>} + translate <15,4.5,0> + } + #declare Teta=0; + #while (Teta<360) + union{ + box{<0,-0.1,-0.05>,<12,0.1,0.05> translate <4,1.2,0>} + cylinder{-x,2*x,0.1 translate y*1.5} + sphere{0,0.2 translate <20,1.5,0>} + sphere{0,0.1 translate <16.8,2,0>} + sphere{0,0.1 translate <17.2,2,0> rotate x*10} + cylinder{x*20,x*23,0.18 translate y*1.5} + rotate x*Teta + } + #declare Teta=Teta+20; + #end + + translate x +} +#declare GunSupport=union{ + superellipsoid{<0.6,0.6> translate y scale <0.3,3,1> translate -z*2} + union{ + union{ + superellipsoid{<0.7,0.7> translate y scale <1.5,3.8,1>} + #declare i=0; + #while (i<6) + sphere{0,0.2 translate <-1,i+0.5,0.8>} + sphere{0,0.2 translate <0,i+0.1,1>} + sphere{0,0.2 translate <1,i+0.5,0.8>} + #declare i=i+0.7; + #end + rotate -x*10 translate z*0.6 + } + + cylinder{y*4,y*9,0.6} + sphere{0,1 scale <4,1,4>} + } +} +#declare Guns=union{ + union{ + object{Thingie rotate y*180 scale 0.5 rotate y*-90 rotate z*45 translate <0,4,5>} + superellipsoid{<0.6,0.6> translate -z scale <0.6,1,3> translate -x*0.5} + object{Guns1 translate -x*1.7} + object{Guns1 translate -x*1.7 scale <-1,1,1>} + rotate x*-20 + translate y*10 + } + object{GunSupport} +} + +#declare GunsBack=union{ + union{ + object{Thingie rotate y*180 scale 0.5 rotate y*-90 rotate z*45 translate <0,4,5>} + superellipsoid{<0.6,0.6> translate -z scale <0.6,1,3> translate -x*0.5} + object{Guns1 translate -x*1.7} + object{Guns1 translate -x*1.7 scale <-1,1,1>} + rotate x*-5 + translate y*10 + } + object{GunSupport} +} + +//-------------------------------------------- +// snorkels and vertical thingies +//-------------------------------------------- +#declare Snorkel1=union{ + cone{0,0.3,y*2,0.25} + cone{y*2,0.25,y*3,0.1} + union{ + difference{sphere{0,1 scale<0.3,0.2,0.3>}plane{y,0 inverse}} + difference{sphere{0,1 scale<0.3,0.6,0.3>}plane{y,0}} + translate y*3 + } + scale <0.8,1,0.8> +} +#declare Snorkel2=blob{ + threshold 0.6 + cylinder{-y,y*4,0.2,1} + sphere{0,0.4,1 scale <1,1,2> translate y*3.5} + sphere{0,0.3,1 scale <3,1,1> translate y*2.5} + scale <0.8,1,0.8> + } +#declare Snorkel3=union{ + blob{ + threshold 0.6 + cylinder{0,y*3.4,0.25,1 scale <1,1,3>} + cylinder{0,y*5,0.03,1 translate <0,0,-0.5>} + + } + union{ + cylinder{0,y*4,0.03} + sphere{0,0.1 translate y*4} + translate <-0.1,0,0.5> + } + scale <0.8,1,0.8> +} + +//-------------------------------------------- +// lots of decorative stuff +//-------------------------------------------- +#declare nDeco=13; +#declare Deco=array[nDeco] +#declare Deco[0]=union{ + cylinder{0,y*2,0.2} + torus{1,0.2 rotate x*90 translate y*3} + scale 0.5 +} +#declare Deco[1]=cone{-y*0.5,0.2,y*4,0.1} +#declare Deco[2]=blob{ + threshold 0.6 + cylinder{-x,x,0.25,1 scale <1,1,2>} + cylinder{0,-y,0.21,1 translate -x*0.8} + cylinder{0,-y,0.21,1 translate x*0.8} + translate y*0.7 + scale 1 +} +#declare Deco[3]=object{Deco[2] rotate y*90} +#declare Deco[4]=torus{1,0.2 rotate z*90} +#declare Deco[5]=object{Deco[3] rotate y*90 scale <1,1.4,1>} +#declare Deco[6]=union{ + cylinder{0,y*0.4,0.1} + sphere{0,1 scale <0.1,0.1,0.5> translate y*0.4} +} +#declare Deco[7]=difference{sphere{0,1} cylinder{-z,0,0.8} scale <2,0.5,2>translate -y*0.2} +#declare Deco[8]=difference{sphere{0,1} cylinder{-z,0,0.9} scale <2,0.5,4>translate -y*0.2} +#declare Deco[9]=cone{0,0.08,y*2,0.03 scale <1,1,2>} +#declare Deco[10]=sphere{0,1 scale <0.2,0.1,0.4>} +#declare Deco[11]=object{Deco[4] scale 1.2} +#declare Deco[12]=object{Deco[5] scale 1.3} +#declare Ladder=union{ + #declare i=0; + #while (i<9) + object{Deco[3] scale 0.8 rotate z*90 translate y*i*0.8} + #declare i=i+1; + #end +} + +#declare Decos=union{ + #declare rd=seed(4); + #declare Start0=-40; + #declare End0=40; + #declare nstep=200; + #declare i=0; + #declare k=0; + #while (i<1) + #declare j=i; + #declare Start=<-rand(rd)*5*(mod(k,2)*2-1),1,(1-j)*Start0+j*End0>; + #declare Dir=y; + #declare Norm1=<0,0,0>; + #declare Inter=trace( SubTop, Start, Dir, Norm1); + #if (vlength(Norm1)!=0) + #if (vlength(vcross(Norm1,y))<0.9) + #declare n=int(rand(rd)*nDeco); + object{Deco[n] scale 0.4 mOrient(Inter,Inter+Norm1)} + #end + #end + #declare k=k+1; + #declare i=i+1/nstep; + #end +} + + +#declare Submarine=union{ + union{ + object{SubTop} + object{Decos texture{txtSubTop}} + object{Ladder translate <-1.5,4,40>} + object{Ladder translate <1.5,4,40>} + object{Guns rotate y*180 scale 0.3 translate <0,4,30>} + object{GunsBack scale 0.3 translate <0,4,70>} + union{ + object{Snorkel1 translate z*3} + object{Snorkel2} + object{Snorkel3 translate -z*2} + scale 2*<1,1.1,1> + translate <0,10,50> + } + object{Balustrade scale 2.5 translate <-4,2,5>} + object{Balustrade scale 2.5 translate <-4,2,5> scale <-1,1,1>} + union{ + object{Balustrade scale 2 translate <-3,2,5>} + object{Balustrade scale 2 translate <-3,2,5> scale <-1,1,1>} + rotate y*180 + translate z*100 + } + texture{txtSub0} + scale <1,1.3,1> + } + object{SubBottom} +} + + + +//============================================ +// Final +//============================================ +#declare posSub=<19,5,0>; +#declare rotSub=-15; + +//-------------------------------------------- +// mines +//-------------------------------------------- +union{ + light_group{ + object{Mine rotate y*80 scale 14 } + light_source{<-10,-20,-40> color rgb -4 shadowless} // negative light !!! + translate <-110, 41, -205> + global_lights on + } + light_group{ + object{Mine rotate -y*10 scale 8 } + light_source{<-10,-20,-40> color rgb -2 shadowless} + translate <-75, 25, -165> + global_lights on + } + object{Mine rotate y*125 scale 5 translate <105, -5, -155>} + translate y*-8 +} +union{ + #declare rd=seed(0); + #declare i=0; + #while (i<20) + + object{Mine rotate y*125 scale 3 translate <50+rand(rd)*(200+i*10),(0.5-rand(rd))*60,i*30>} + object{Mine rotate y*150 scale 3 translate <-50-rand(rd)*(200+i*10),(0.5-rand(rd))*60,i*30>} + + object{Mine rotate y*10 scale 3 translate <50+rand(rd)*(200+i*10),(0.5-rand(rd))*140+50+i*10,i*30>} + object{Mine rotate y*37 scale 3 translate <-50-rand(rd)*(200+i*10),(0.5-rand(rd))*140+50+i*10,i*30>} + #declare i=i+1; + #end + rotate y*rotSub translate posSub + translate -z*150 + translate x*30 +} +//-------------------------------------------- +// submarine and media +//-------------------------------------------- +union{ + object{Submarine scale 3/4 translate z*-10 translate y*10} + sphere{0,1 scale 410 hollow + texture{pigment{Clear}finish{ambient 0 diffuse 0}} + interior{ + media{ + scattering {5,0.00034 eccentricity 0.7 extinction 0.8} + absorption <255-23,255-171,255-239>*0.0005/255 + intervals 3 + method 3 + } + } + } + + scale 4 + rotate y*rotSub translate posSub +} diff --git a/render_povray/templates_pov/biscuit.pov b/render_povray/templates_pov/biscuit.pov new file mode 100644 index 00000000..aab90fab --- /dev/null +++ b/render_povray/templates_pov/biscuit.pov @@ -0,0 +1,370 @@ +// 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. + +//oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo// +// // +// Windows users: to start rendering this image, press Alt+G or the 'Run' // +// button on the toobar. // +// // +// Experienced windows users: try right-clicking on the line below ... // +// // +// +w320 +h240 +// +w800 +h600 +a0.3 +am2 +// // +// See the docs for full explanations of new features such as the above. // +// // +//oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo// + +// Persistence Of Vision raytracer sample file. +// Copyright 2001 Fabien Mosen +// +// Updated: 2013/02/15 for 3.7 +// +#version 3.6; +global_settings{ assumed_gamma 1.3 max_trace_level 5} + +#include "colors.inc" +#include "functions.inc" +#include "logo.inc" + + +camera{ location <20,40,28> + angle 40 // direction 2*z + right x*image_width/image_height // keep propotions with any aspect ratio + look_at <0,2,0> + } + +light_source {<-140,200, 300> rgb <1.0, 1.0, 0.95>*1.5} +light_source {< 140,200,-300> rgb <0.9, 0.9, 1.00>*0.9 shadowless} + +#declare r1 = seed(0); + +//----------------------- THE TABLE +#declare Pig_1 = +pigment { + gradient z + color_map { + [0.00, rgb <0.01, 0.59, 0.81>] + [0.70, rgb <0.01, 0.59, 0.81>] + [0.70, rgb <0.98, 0.98, 0.87>] + [1.00, rgb <0.98, 0.98, 0.87>] + } + frequency 4 +} +#declare Pig_2 = +pigment { + bozo + color_map { + [0.00, rgb <0.35, 0.58, 0.88>*1.0] + [0.25, rgb <0.35, 0.58, 0.88>*1.1] + [0.50, rgb <0.35, 0.58, 0.88>*0.9] + [0.75, rgb <0.35, 0.58, 0.88>*1.0] + [1.00, rgb <0.35, 0.58, 0.88>*0.8] + } + scale 0.1 +} + +#declare Nappe = +cylinder {0,y*-1,50 + texture { + pigment { + gradient x + pigment_map { + [0.0, Pig_1] + [0.5, Pig_1] + [0.5, Pig_2] + [1.0, Pig_2] + } + warp {turbulence .05 octaves 2} + } + normal {quilted 0.6 scale 0.025 warp {turbulence 0.05 octaves 2}} + scale 5 + translate 10 + } +} + +object {Nappe} + +//----------------------- BISCUITS +#declare Tex_Biscuit = +texture { + pigment {color rgb <0.98, 0.83, 0.58>} + normal {dents 1.2 scale 0.01} + finish {phong 0 brilliance 0.7} +} + +#declare Base_Biscuit = +union { + blob { + threshold 0.7 + #declare I = 0; + #while (I < 359) + sphere {<4,0,0>, 1+rand(r1)*0.1, 1 rotate y*I} + #declare I = I+(360/28); + #end + } + cylinder {<0,0,0>, <0,0.5,0>, 4} + texture {Tex_Biscuit} +} + +#declare Chocolate = +union { + difference { + cone {<0,0,0>, 4.2, <0,0.4,0>, 4} + cone {<0,0.1,0>, 3.6, <0,0.401,0>, 3.75} + } + torus { + 3.55, 0.1 + translate y*0.2 + clipped_by {torus {3.55+0.1, 0.1 translate y*0.1}} + } + union { + #declare I = -4; + #while (I < 4) + cylinder {<-4,0.1,I>,<4,0.1,I>, 0.05} + #declare I = I+0.5; + #end + clipped_by {cone {<0,0,0>, 4.2, <0,0.4,0>, 4}} + } + torus {3.96, 0.04 translate y*0.4} + torus {3.79, 0.04 translate y*0.4} +} + +#declare LogoFun = +object{Povray_Logo_Prism rotate x*90 scale 2.2 translate -0.3*z} + +#declare ProjLogo = +blob { + threshold 0.6 + #declare I = 0; + #while (I < 1) + #declare Pos = <-2+rand(r1)*4, 0, -2+rand(r1)*4>; + #if (inside(LogoFun,Pos)) + sphere {Pos, 0.08, 1} + #end + #declare I = I+0.0002; + #end +} + +#declare Black_Chocolate = +texture { + pigment {color rgb <0.24, 0.10, 0.03>} + normal {wrinkles 0.2} + finish {specular 0.3} + } +#declare Milk_Chocolate = +texture { + pigment {color rgb <0.48, 0.26, 0.13>} + normal {wrinkles 0.2} + finish {specular 0.2} +} +#declare White_Chocolate = +texture { + pigment {color rgb <0.96, 0.95, 0.75>} + normal {wrinkles 0.2} + finish {ambient 0.3 specular 0.01} +} + +#declare Icing = texture { + pigment {rgbf <0.95, 0.95, 1.00, 0.1>*1.2} + normal {bumps 0.1} +} + +#declare Biscuit_1 = +union { + object {Base_Biscuit} + object {Chocolate translate y*0.5 texture {Black_Chocolate}} + disc { + <0,0.101,0>, y, 3.6 + translate y*0.5 + texture {Black_Chocolate} normal {bumps 0.3 scale 0.05} + } + object {ProjLogo scale 1.5 rotate y*-90 translate <-0.4,0.6,0.5> texture {Icing}} + translate y*0.5 +} +#declare Biscuit_2 = +union { + object {Base_Biscuit} + object {Chocolate translate y*0.5 texture {Milk_Chocolate}} + disc { + <0,0.101,0>, y, 3.6 + translate y*0.5 + texture {Milk_Chocolate} normal {bumps 0.3 scale 0.05} + } + object {ProjLogo scale 1.5 rotate y*-90 translate <-0.4,0.6,0.5> texture {White_Chocolate}} + translate y*0.5 +} +#declare Biscuit_3 = +union { + object {Base_Biscuit} + object {Chocolate translate y*0.5 texture {White_Chocolate}} + disc { + <0,0.101,0>, y, 3.6 + translate y*0.5 + texture {White_Chocolate} normal {bumps 0.3 scale 0.05} + } + object {ProjLogo scale 1.5 rotate y*-90 translate <-0.4,0.6,0.5> texture {Milk_Chocolate}} + translate y*0.5 +} + +object {Biscuit_2 rotate y*-80 translate <-3.5,0,2>} +object {Biscuit_1 rotate y*-120 translate <3.5,0,-4>} +object {Biscuit_3 rotate x*-4 translate <8.5,0.9,0>} + +#macro SevenBiscuits (Bisc,Num) + union { + #declare I = 0; + #while (I < Num) + object {Bisc translate x*9 rotate y*60*I} + #declare I = I+1; + #end + object {Bisc} + } +#end + +//----------------------- CRUMBS +#declare Fun_Sphere = function {x*x + y*y +z*z} + +#declare Crumb = +isosurface { + function {Fun_Sphere(x,y,z) + f_noise3d(x*2,y*2,z*2)*1} + threshold 1 + max_gradient 3.9 + //max_gradient 15 + accuracy 0.01 + contained_by {box {-1,1}} + scale 0.5 +} + +#declare r1 = seed(0); + +#declare I = 0; +#while (I < 1) + object { + Crumb + rotate rand(r1)*360 + scale 0.2+rand(r1)*0.3 + translate <rand(r1)*10,0,rand(r1)*10> + texture {Tex_Biscuit} + } + object { + Crumb + rotate rand(r1)*360 + scale 0.1+rand(r1)*0.15 + translate <rand(r1)*10,0,rand(r1)*10> + texture {Tex_Biscuit} + } + #declare I = I+0.03; +#end + +//----------------------- METAL BOX +#declare Pig3 = +pigment { + gradient y + color_map { + [0, rgb <0.1, 0.5, 0.7>] + [1, rgb <0.7, 0.6, 0.4>] + } + scale 0.5 +} + +#declare Pig4 = +pigment { + crackle + color_map { + [0, rgb <1.0, 0.5, 0.6>] + [1, rgb <0.0, 0.0, 0.0>] + } + scale 0.2 +} + +#declare MetalBoxPig = +pigment { + radial frequency 60 + pigment_map { + [0.0, Pig3] + [0.5, Pig3] + [0.5, Pig4] + [1.0, Pig4] + } +} + +#declare BiscuitBox = +union { + difference { + cylinder {<0,0,0>, <0,5,0>, 14} + cylinder {<0,0.1,0>, <0,5.1,0>, 13.9} + } + torus {14, 0.1 translate y*5} + torus {14, 0.1 translate y*0.1} + torus {14, 0.1 scale <1,2,1> translate y*4} + cylinder { + <0,0.3,0>,<0,3.5,0>, 14.01 open + pigment {MetalBoxPig} + finish {phong 0.8 reflection {0.01, 0.15}} + } + pigment {Gray60} + finish {phong 0.8 metallic reflection {0.5, 0.7}} +} + +union { + object {BiscuitBox} + object {SevenBiscuits (Biscuit_1,6)} + object {SevenBiscuits (Biscuit_3,6) rotate y*30 translate y*1} + object {SevenBiscuits (Biscuit_2,5) rotate y*0 translate y*2} + rotate y*-75 translate <-18,0,-12> +} + +//-----------------------CUP OF TEA +#declare TeaCup = +union { + difference { + cylinder {<0,1.2,0>, <0,6,0>, 4.2} + cylinder {<0,1,0>, <0,6.2,0>, 3.8} + } + + difference { + cylinder {<0,0.2,0>, <0,2.5,0>, 4} + torus {2.8, 1 translate y*2.5} + torus {4, 1 translate y*0} + cylinder {<0,1.5,0>, <0,2.6,0>, 2.8} + } + + difference { + #declare LiquidLevel = 5; + cylinder {<0,1.4,0>, <0,LiquidLevel,0>, 4} + torus {3.6, 0.2 translate y*LiquidLevel} + cylinder {<0,LiquidLevel-0.2,0>,<0,LiquidLevel+0.3,0>,3.6} + pigment {Orange*0.8 filter 0.6} + finish {phong 0.7 reflection 0.15} + normal {bumps 0.05 scale 1} + } + + torus {4.0, 0.2 translate y*6.0} + torus {4.0, 0.2 translate y*1.2} + torus {2.8, 0.2 translate y*0.2} + + union { + difference { + cylinder {<0.2,0,0>,<-0.2,0,0>,0.5} + torus {0.5, 0.2 rotate z*90 translate x*0.2} + translate y*1.25 + } + difference { + cylinder {<0.2,0,0>,<-0.2,0,0>,0.5} + torus {0.5, 0.2 rotate z*90 translate x*0.2} + translate y*-1.25 + } + torus {1.25, 0.3 rotate x*90 clipped_by {plane {x,0 inverse}} translate x*0.8} + cylinder {<0,-1.25,0>,<0.8,-1.25,0>,0.3} + cylinder {<0,1.25,0>,<0.8,1.25,0>,0.3} + scale <1,1,1.5> translate <4.2,4,0> rotate y*-90 + } + + pigment {White} + normal {bumps 0.05 scale 3} + finish {phong 0.8 reflection 0.1} +} + +object {TeaCup rotate y*50 translate <4,0,-14>} diff --git a/render_povray/templates_pov/bsp_Tango.pov b/render_povray/templates_pov/bsp_Tango.pov new file mode 100644 index 00000000..da5c0945 --- /dev/null +++ b/render_povray/templates_pov/bsp_Tango.pov @@ -0,0 +1,61 @@ +// 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. +// BSP test scene by Lance Birch - thezone.firewave.com.au +// Render with +BM2 to enable BSP tree bounding (POV-Ray v3.7 beta 12 or later). + +/*************************************************************** + * $File: //depot/povray/smp/distribution/scenes/bsp/Tango.pov $ + * $Revision: #1 $ + * $Change: 5418 $ + * $DateTime: 2011/03/06 09:25:00 $ + * $Author: jholsenback $ + **************************************************************/ + +#version 3.7; + +global_settings {assumed_gamma 1.0} +#default {texture {finish {ambient 0.03}} pigment {rgb 1}} +background {rgb 1} + +camera {ultra_wide_angle location <0,0,-55> look_at <0,0,0> angle 100 rotate <0,32,45> translate <-25,-25,0>} +light_source {0*x color rgb 2.9 area_light <8,0,0> <0,0,8> 8, 8 adaptive 2 jitter circular orient translate <100,0,-100>} + +#declare StrandCorner = difference { + cylinder {<0,0,0> <0,0,.1> 1} + cylinder {<0,0,-0.1> <0,0,.2> .25} + box {<-1.1,1.1,-0.1> <1.1,0,.2>} + box {<-1.1,1.1,-0.1> <0,-1.1,.2>} +}; + +#declare S = seed(12); +#declare CStrand = 1; +#declare CDir = 1; + +#while (CStrand <= 300) + #declare StartOffset = (rand(S)*30)-15; + #declare CHeight = <70-StartOffset,70+StartOffset,-CStrand/10>; + + #while ((CHeight.y > -45) & (CHeight.x > -45)) + #declare CDir = -CDir; + #declare StrandSegLength = floor(rand(S)*12)+1; + #if (CDir = 1) + box {CHeight+<-0.375,0,0> CHeight+<0.375,-StrandSegLength,.1>} + #declare CHeight = CHeight + <-0.625,-(StrandSegLength+0.625),0>; + object {StrandCorner translate CHeight+<0,0.625,0>} + #else + box {CHeight+<0,-0.375,0> CHeight+<-StrandSegLength,0.375,.1>} + #declare CHeight = CHeight + <-(StrandSegLength+0.625),-0.625,0>; + object {StrandCorner rotate <0,0,180> translate CHeight+<0.625,0,0>} + #end + #end + #if (CDir = 1) + object {StrandCorner rotate <0,0,270> translate CHeight+<0,0.625,0>} + #else + object {StrandCorner rotate <0,0,270> translate CHeight+<0.625,0,0>} + #end + + #declare CStrand = CStrand + 1; +#end diff --git a/render_povray/templates_pov/chess2.pov b/render_povray/templates_pov/chess2.pov new file mode 100644 index 00000000..b52070d6 --- /dev/null +++ b/render_povray/templates_pov/chess2.pov @@ -0,0 +1,727 @@ +// This work is licensed under the POV-Ray v3.7 distribution license. +// To view a copy of this license, visit http://www.povray.org/licences/v3.7/. + +// Persistence Of Vision raytracer sample file. +// POV-Ray scene description for chess board. +// By Ville Saari +// Copyright (c) 1991 Ferry Island Pixelboys +// +// This scene has 430 primitives in objects and 41 in bounding shapes and +// it takes over 40 hours to render by standard amiga. +// +// If you do some nice modifications or additions to this file, please send +// me a copy. My Internet address is: vsaari@niksula.hut.fi +// +// -w320 -h240 +// -w800 -h600 +a0.3 + +// Note : CHESS2.POV was created from Ville Saari's chess.pov +// -- Dan Farmer 1996 +// - Cchanged textures +// - Added camera blur and changed focal length +// - Use sky sphere +// - Modularized the code +// - Added felt pads to bottom of pieces + +// remaining manual bounding commented out by Bob Hughes, August 31, 2001 + +#version 3.6; + +global_settings { + assumed_gamma 2.2 + } + +#include "shapes.inc" +#include "colors.inc" +#include "textures.inc" +#include "skies.inc" +#include "metals.inc" +#include "woods.inc" + +#declare FB_Quality_Off = 0; +#declare FB_Quality_Fast = 1; +#declare FB_Quality_Default = 2; +#declare FB_Quality_High = 3; + +#declare FB_Quality= FB_Quality_High; + +camera { + location <59, 20, -55> + direction <0, 0, 2> + up <0, 1, 0> + right x*image_width/image_height // keep propotions with any aspect ratio + look_at <0, -1, 1> + +#if(FB_Quality != FB_Quality_Off) + aperture 2.25 + focal_point <0, 0, 0> +#end + +#switch(FB_Quality) +#case(FB_Quality_Off) + aperture 0 + #debug "\nNo focal blur used...\n" +#break +#case (FB_Quality_Fast) + blur_samples 7 + confidence 0.5 // default is 0.9 + variance 1/64 // default is 1/128 (0.0078125) + #debug "\nFast focal blur used...\n" +#break +#case(FB_Quality_Default) + blur_samples 19 + confidence 0.90 // default is 0.9 + variance 1/128 // default is 1/128 (0.0078125) + #debug "\nDefault focal blur used...\n" +#break +#case(FB_Quality_High) + blur_samples 37 + confidence 0.975 // default is 0.9 + variance 1/255 // default is 1/128 (0.0078125) + #debug "\nHigh Quality focal blur used...\n" +#break +#else + #debug "\nNo focal blur used...\n" +#end +} + +light_source { <800, 600, -200> colour White } + +#declare PawnBase = +union { + intersection { + sphere { <0, 0, 0>, 2.5 } + plane { -y, 0 } + } + cylinder { 0, y*0.35, 2.5 pigment { green 0.65 } } +} + +#declare PieceBase = +union { + intersection { + sphere { <0, 0, 0>, 3 } + plane { -y, 0 } + } + cylinder { 0, y*0.35, 3.0 pigment { green 0.65 } } +} + +#declare Pawn = union { + sphere { <0, 7, 0>, 1.5 } + + sphere { <0, 0, 0>, 1 + scale <1.2, 0.3, 1.2> + translate 5.5*y + } + + intersection { + plane { y, 5.5 } + object { + Hyperboloid_Y + translate 5*y + scale <0.5, 1, 0.5> + } + plane { -y, -2.5 } + } + + sphere { <0, 0, 0>, 1 + scale <2, 0.5, 2> + translate <0, 2.3, 0> + } + object { PawnBase } +} + + +#declare Rook = union { + intersection { + union { + plane { +x, -0.5 } + plane { -x, -0.5 } + plane { y, 9 } + } + + union { + plane { +z, -0.5 } + plane { -z, -0.5 } + plane { y, 9 } + } + + plane { y, 10 } + object { Cylinder_Y scale <2, 1, 2> } + object { Cylinder_Y scale <1.2, 1, 1.2> inverse } + plane { -y, -8 } + } + + intersection { + plane { y, 8 } + object { Hyperboloid_Y + scale <1, 1.5, 1> + translate 5.401924*y + } + plane { -y, -3 } + } + + sphere { <0, 0, 0>, 1 + scale <2.5, 0.5, 2.5> + translate 2.8*y + } + + object { PieceBase } +} + +#declare Knight = union { + intersection { + object { Cylinder_Z + scale <17.875, 17.875, 1> + translate <-18.625, 7, 0> + inverse + } + + object { Cylinder_Z + scale <17.875, 17.875, 1> + translate <18.625, 7, 0> + inverse + } + + object { Cylinder_X + scale <1, 5.1, 5.1> + translate <0, 11.2, -5> + inverse + } + + union { + plane { y, 0 + rotate 30*x + translate 9.15*y + } + plane { z, 0 + rotate -20*x + translate 10*y + } + } + + union { + plane { -y, 0 + rotate 30*x + translate 7.15*y + } + plane { y, 0 + rotate 60*x + translate 7.3*y + } + } + + union { + plane { y, 0 + rotate -45*z + } + plane { y, 0 + rotate 45*z + } + translate 9*y + } + + object { Cylinder_Y scale <2, 1, 2> } + sphere { <0, 7, 0>, 4 } + } + + sphere { <0, 0, 0>, 1 + scale <2.5, 0.5, 2.5> + translate <0, 2.8, 0> + } + + object { PieceBase } +} + +#declare Bishop = union { + sphere { <0, 10.8, 0>, 0.4 } + + intersection { + union { + plane { -z, -0.25 } + plane { +z, -0.25 } + plane { y, 0 } + rotate 30*x + translate 8.5*y + } + + sphere { <0, 0, 0>, 1 + scale <1.4, 2.1, 1.4> + translate 8.4*y + } + + plane { -y, -7 } + } + + sphere { <0, 0, 0>, 1 + scale <1.5, 0.4, 1.5> + translate 7*y + } + + intersection { + plane { y, 7 } + object { + Hyperboloid_Y + scale <0.6, 1.4, 0.6> + translate 7*y + } + plane { -y, -3 } + } + + sphere { <0, 0, 0>, 1 + scale <2.5, 0.5, 2.5> + translate 2.8*y + } + + object { PieceBase } +} + +#declare QueenAndKing = union { + sphere { <0, 10.5, 0>, 1.5 } + + intersection { + union { + sphere { <1.75, 12, 0>, 0.9 rotate 150*y } + sphere { <1.75, 12, 0>, 0.9 rotate 120*y } + sphere { <1.75, 12, 0>, 0.9 rotate 90*y } + sphere { <1.75, 12, 0>, 0.9 rotate 60*y } + sphere { <1.75, 12, 0>, 0.9 rotate 30*y } + sphere { <1.75, 12, 0>, 0.9 } + sphere { <1.75, 12, 0>, 0.9 rotate -30*y } + sphere { <1.75, 12, 0>, 0.9 rotate -60*y } + sphere { <1.75, 12, 0>, 0.9 rotate -90*y } + sphere { <1.75, 12, 0>, 0.9 rotate -120*y } + sphere { <1.75, 12, 0>, 0.9 rotate -150*y } + sphere { <1.75, 12, 0>, 0.9 rotate 180*y } + inverse + } + + plane { y, 11.5 } + + object { QCone_Y + scale <1, 3, 1> + translate 5*y + } + + plane { -y, -8 } + } + + sphere { <0, 0, 0>, 1 + scale <1.8, 0.4, 1.8> + translate 8*y + } + + intersection { + plane { y, 8 } + object { Hyperboloid_Y + scale <0.7, 1.6, 0.7> + translate 7*y + } + plane { -y, -3 } + } + + sphere { <0, 0, 0>, 1 + scale <2.5, 0.5, 2.5> + translate 2.8*y + } + + object { PieceBase } +} + +#declare Queen = union { + sphere { <0, 12.3, 0>, 0.4 } + object { QueenAndKing } +} + +#declare King = union { + intersection { + union { + intersection { + plane { y, 13 } + plane { -y, -12.5 } + } + + intersection { + plane { +x, 0.25 } + plane { -x, 0.25 } + } + } + + plane { +z, 0.25 } + plane { -z, 0.25 } + plane { +x, 0.75 } + plane { -x, 0.75 } + plane { +y, 13.5 } + plane { -y, -11.5 } + } + + object { QueenAndKing } +} + +#declare WWood = texture { + T_Silver_3B +} + +#declare BWood = texture { + T_Gold_3C +} + +#declare WPawn = object { + Pawn + + // bounded_by { sphere { <0, 4, 0>, 4.72 } } + + texture { + WWood + pigment { quick_color red 0.95 green 0.62 } + } +} + +#declare BPawn = object { + Pawn + + // bounded_by { sphere { <0, 4, 0>, 4.72 } } + + texture { + BWood + pigment { quick_color red 0.4 green 0.2 } + } +} + +#declare WRook = object { + Rook + + // bounded_by { sphere { <0, 5, 0>, 5.831 } } + + texture { + WWood + pigment { quick_color red 0.95 green 0.62 } + } +} + +#declare BRook = object { + Rook + + // bounded_by { sphere { <0, 5, 0>, 5.831 } } + + texture { + BWood + pigment { quick_color red 0.4 green 0.2 } + } +} + +#declare WKnight = object { + Knight + + // bounded_by { sphere { <0, 5, 0>, 5.831 } } + + texture { + WWood + pigment { quick_color red 0.95 green 0.62 } + } +} + +#declare BKnight = object { + Knight + rotate 180*y + + // bounded_by { sphere { <0, 5, 0>, 5.831 } } + + texture { + BWood + pigment { quick_color red 0.4 green 0.2 } + } +} + +#declare WBishop = object { + Bishop + + // bounded_by { sphere { <0, 5.5, 0>, 6.265 } } + + texture { + WWood + pigment { quick_color red 0.95 green 0.62 } + } +} + +#declare BBishop = object { + Bishop + rotate 180*y + + // bounded_by { sphere { <0, 5.5 ,0>, 6.265 } } + + texture { + BWood + pigment { quick_color red 0.4 green 0.2 } + } +} + +#declare WQueen = object { + Queen +/* + bounded_by { + intersection { + sphere { <0, 6, 0>, 6.71 } + object { Cylinder_Y scale <3, 1, 3> } + } + } +*/ + texture { + WWood + pigment { quick_color red 0.95 green 0.62 } + } +} + +#declare BQueen = object { + Queen +/* + bounded_by { + intersection { + sphere { <0, 6, 0>, 6.71 } + object { Cylinder_Y scale <3, 1, 3> } + } + } +*/ + texture { + BWood + pigment { quick_color red 0.4 green 0.2 } + } +} + +#declare WKing = object { + King +/* + bounded_by { + intersection { + sphere { <0, 6.5, 0>, 7.16 } + object { Cylinder_Y scale <3, 1, 3> } + } + } +*/ + texture { + WWood + pigment { quick_color red 0.95 green 0.62 } + } +} + +#declare BKing = object { + King +/* + bounded_by { + intersection { + sphere { <0, 6.5, 0>, 7.16 } + object { Cylinder_Y scale <3, 1, 3> } + } + } +*/ + texture { + BWood + pigment { quick_color red 0.4 green 0.2 } + } +} + +/* Sky */ +#declare SkySphere = sky_sphere { S_Cloud1 } + +/* Ground */ +#declare Ground = +plane { y, -80 + pigment { green 0.65 } + finish { + ambient 0.25 + diffuse 0.5 + } +} + +#declare FarSide = +union { + object { BPawn translate <-28, 0, 20> } + object { BPawn translate <-20, 0, 20> } + object { BPawn translate <-12, 0, 20> } + object { BPawn translate < -4, 0, 20> } + object { BPawn translate < 4, 0, 20> } + object { BPawn translate < 12, 0, 20> } + object { BPawn translate < 20, 0, 20> } + object { BPawn translate < 28, 0, 20> } + + object { BRook translate <-28, 0, 28> } + object { BKnight translate <-20, 0, 28> } + object { BBishop translate <-12, 0, 28> } + object { BQueen translate < -4, 0, 28> } + object { BKing translate < 4, 0, 28> } + object { BBishop translate < 12, 0, 28> } + object { BKnight translate < 20, 0, 28> } + object { BRook translate < 28, 0, 28> } +/* + bounded_by { + object { + Cylinder_X + scale <1, 9.56, 9.56> + translate <0, 6.5, 24> + } + } +*/ +} + +#declare NearSide = +union { + object { WPawn translate <-28, 0, -20> } + object { WPawn translate <-20, 0, -20> } + object { WPawn translate <-12, 0, -20> } + object { WPawn translate < -4, 0, -20> } + object { WPawn translate < 4, 0, -20> } + object { WPawn translate < 12, 0, -20> } + object { WPawn translate < 20, 0, -20> } + object { WPawn translate < 28, 0, -20> } + + object { WRook translate <-28, 0, -28> } + object { WKnight translate <-20, 0, -28> } + object { WBishop translate <-12, 0, -28> } + object { WQueen translate < -4, 0, -28> } + object { WKing translate < 4, 0, -28> } + object { WBishop translate < 12, 0, -28> } + object { WKnight translate < 20, 0, -28> } + object { WRook translate < 28, 0, -28> } + + +} + +#declare Pieces = +union { + object { NearSide } + object { FarSide } +/* + bounded_by { + intersection { + plane { y, 13.5 } + sphere { -30*y, 63 } + } + } +*/ +} + +#declare FramePiece = +intersection { + plane { +y, -0.15 } + plane { -y, 3 } + plane { -z, 35 } + plane { <-1, 0, 1>, 0 } // 45 degree bevel + plane { < 1, 0, 1>, 0 } // 45 degree bevel +} + +#declare Frame = +union { + union { + object { FramePiece } + object { FramePiece rotate 180*y } + texture { + T_Wood20 + scale 2 + rotate y*87 + translate x*1 + finish { + specular 1 + roughness 0.02 + ambient 0.35 + } + } + } + + union { + object { FramePiece rotate -90*y } + object { FramePiece rotate 90*y } + texture { + T_Wood20 + scale 2 + rotate y*2 + finish { + specular 1 + roughness 0.02 + ambient 0.35 + } + } + } +} +#declare Board = + box { <-32, -1, -32> <32, 0, 32> + texture { + tiles { + texture { + pigment { + //marble + wrinkles + turbulence 1.0 + colour_map { + [0.0 0.7 colour White + colour White] + [0.7 0.9 colour White + colour red 0.8 green 0.8 blue 0.8] + [0.9 1.0 colour red 0.8 green 0.8 blue 0.8 + colour red 0.5 green 0.5 blue 0.5] + } + scale <0.6, 1, 0.6> + rotate -30*y + } + finish { + specular 1 + roughness 0.02 + reflection 0.25 + } + } // texture + tile2 + texture { + pigment { + granite + scale <0.3, 1, 0.3> + colour_map { + [0 1 colour Black + colour red 0.5 green 0.5 blue 0.5] + } + } + finish { + specular 1 + roughness 0.02 + reflection 0.25 + } + } + } // texture + scale <8, 1, 8> + } //texture + } // intersection + + + +/* Table */ +#declare Table = +union { + intersection { + plane { +y, -3 } + plane { -y, 8 } + sphere { <0, -5.5, 0>, 55 } + } + + intersection { + plane { y, -8 } + object { + Hyperboloid_Y + scale <10, 20, 10> + translate -20*y + } + } + + pigment { + granite + scale 6 + } + finish { + specular 1 + roughness 0.02 + reflection 0.3 + } +} + +object { Pieces } +object { Board } +object { Frame } +object { Ground } +object { Table } +sky_sphere { SkySphere } diff --git a/render_povray/templates_pov/cornell.pov b/render_povray/templates_pov/cornell.pov new file mode 100644 index 00000000..e4b34cd6 --- /dev/null +++ b/render_povray/templates_pov/cornell.pov @@ -0,0 +1,130 @@ +// This work is licensed under the Creative Commons Attribution 3.0 Unported License. +// To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/ +// or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, +// California, 94041, USA. + +// Persistence Of Vision Ray Tracer Scene Description File +// File: cornell.pov +// Desc: Radiosity demo scene. See also http://www.Graphics.Cornell.EDU/online/box/ +// Date: August 2001 +// Auth: Kari Kivisalo + +// +w300 +h300 + +#version 3.7; +global_settings { + assumed_gamma 1.0 + radiosity{ + pretrace_start 0.04 + pretrace_end 0.01 + count 200 + recursion_limit 3 + nearest_count 10 + error_bound 0.5 + } +} + +#declare Finish=finish{diffuse 0.75 ambient 0} + +#declare White=texture{pigment{rgb<1,1,1>} finish{Finish}} +#declare Red=texture{pigment{rgb<0.57,0.025,0.025>} finish{Finish}} +#declare Green=texture{pigment{rgb<0.025,0.236,0.025>} finish{Finish}} + +#declare LightColor=<1,0.67,0.21>; + +#declare N=3; // Divisions per side +#declare DX=13/N; // Dimensions of sub patches +#declare DZ=10.5/N; + +#declare SubPatch= + light_source{ + <27.8,54.88,27.95> + color LightColor*7 + area_light DX*x, DZ*z, 4, 4 jitter adaptive 0 + spotlight radius -90 falloff 90 tightness 1 point_at <27.8,0,27.95> // for cosine falloff + fade_power 2 fade_distance (DX+DZ)/2 + } + +#declare i=0;#while (i<N) + #declare j=0;#while (j<N) + light_source{SubPatch translate<i*DX-(13-DX)/2,0,j*DZ-(10.5-DZ)/2>} + #declare j=j+1;#end +#declare i=i+1;#end + + + + +camera{ + location <27.8, 27.3,-80.0> + direction <0, 0, 1> + up <0, 1, 0> + right <-1, 0, 0> + angle 39.5 +} + + +// ------------------------ OBJECTS ---------------------------- + +// Light Patch + +box{ + <21.3,54.87,33.2><34.3,54.88,22.7> no_shadow + pigment{rgb<1,1,1>} finish{ambient 0.78 diffuse 0} +} + +union{ + // Floor + triangle{<55.28, 0.0, 0.0>,<0.0, 0.0, 0.0>,<0.0, 0.0, 55.92>} + triangle{<55.28, 0.0, 0.0>,<0.0, 0.0, 55.92>,<54.96, 0.0, 55.92>} + // Ceiling + triangle{<55.60, 54.88, 0.0>,<55.60, 54.88, 55.92>,<0.0, 54.88, 55.92>} + triangle{<55.60, 54.88, 0.0>,<0.0, 54.88, 55.92>,<0.0, 54.88, 0.0>} + // Back wall + triangle{<0.0, 54.88, 55.92>,<55.60, 54.88, 55.92>,<54.96, 0.0, 55.92>} + triangle{<0.0, 54.88, 55.92>,<54.96, 0.0, 55.92>,<0.0, 0.0, 55.92>} + texture {White} +} + +union { + // Right wall + triangle{<0.0, 54.88, 0.0>,<0.0, 54.88, 55.92>,<0.0, 0.0, 55.92>} + triangle{<0.0, 54.88, 0.0>,<0.0, 0.0, 55.92>,<0.0, 0.0, 0.0>} + texture {Green} +} + +union { + // Left wall + triangle{<55.28, 0.0, 0.0>,<54.96, 0.0, 55.92>,<55.60, 54.88, 55.92>} + triangle{<55.28, 0.0, 0.0>,<55.60, 54.88, 55.92>,<55.60, 54.88, 0.0>} + texture {Red} +} + +union { + // Short block + triangle{<13.00, 16.50, 6.50>,<8.20, 16.50, 22.50>,<24.00, 16.50, 27.20>} + triangle{<13.00, 16.50, 6.50>,<24.00, 16.50, 27.20>,<29.00, 16.50, 11.40>} + triangle{<29.00, 0.0, 11.40>,<29.00, 16.50, 11.40>,<24.00, 16.50, 27.20>} + triangle{<29.00, 0.0, 11.40>,<24.00, 16.50, 27.20>,<24.00, 0.0, 27.20>} + triangle{<13.00, 0.0, 6.50>,<13.00, 16.50, 6.50>,<29.00, 16.50, 11.40>} + triangle{<13.00, 0.0, 6.50>,<29.00, 16.50, 11.40>,<29.00, 0.0, 11.40>} + triangle{<8.20, 0.0, 22.50>,<8.20, 16.50, 22.50>,<13.00, 16.50, 6.50>} + triangle{<8.20, 0.0, 22.50>,<13.00, 16.50, 6.50>,<13.00, 0.0, 6.50>} + triangle{<24.00, 0.0, 27.20>,<24.00, 16.50, 27.20>,<8.20, 16.50, 22.50>} + triangle{<24.00, 0.0, 27.20>,<8.20, 16.50, 22.50>,<8.20, 0.0, 22.50>} + texture { White } +} + +union { + // Tall block + triangle{<42.30, 33.00, 24.70>,<26.50, 33.00, 29.60>,<31.40, 33.00, 45.60>} + triangle{<42.30, 33.00, 24.70>,<31.40, 33.00, 45.60>,<47.20 33.00 40.60>} + triangle{<42.30, 0.0, 24.70>,<42.30, 33.00, 24.70>,<47.20, 33.00, 40.60>} + triangle{<42.30, 0.0, 24.70>,<47.20, 33.00, 40.60>,<47.20, 0.0, 40.60>} + triangle{<47.20, 0.0, 40.60>,<47.20, 33.00, 40.60>,<31.40, 33.00, 45.60>} + triangle{<47.20, 0.0, 40.60>,<31.40, 33.00, 45.60>,<31.40, 0.0 45.60>} + triangle{<31.40, 0.0, 45.60>,<31.40, 33.00, 45.60>,<26.50, 33.00, 29.60>} + triangle{<31.40, 0.0, 45.60>,<26.50, 33.00, 29.60>,<26.50, 0.0, 29.60>} + triangle{<26.50, 0.0, 29.60>,<26.50, 33.00, 29.60>,<42.30, 33.00, 24.70>} + triangle{<26.50, 0.0, 29.60>,<42.30, 33.00, 24.70>,<42.30, 0.0, 24.70>} + texture {White} +} diff --git a/render_povray/templates_pov/diffract.pov b/render_povray/templates_pov/diffract.pov new file mode 100644 index 00000000..0c7a0228 --- /dev/null +++ b/render_povray/templates_pov/diffract.pov @@ -0,0 +1,195 @@ +// 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. +// +// -w320 -h240 +// -w800 -h600 +a0.3 + +#version 3.6; +global_settings{ assumed_gamma 1.0 max_trace_level 5 } + +#include "colors.inc" +#include "woods.inc" + + +#declare IOR = 1.45; +#declare Fade_Distance = 2; +#declare Fade_Power = 3; + +#declare Texture01 = texture { + pigment { + color rgbf <1, 1, 1, 1> + } + finish { + diffuse 0.000001 + metallic on + ambient 0 + reflection 0.05 + specular 1 + roughness 0.001 + irid { + 0.65 // contribution to overall color + thickness 0.8 // affects frequency, or "busy-ness" + turbulence 0.1 // Variance in film thickness + } + } +} + +#declare Interior01 = + interior { + fade_distance Fade_Distance + fade_power Fade_Power + ior IOR + caustics 1.0 + } + + +#declare Texture02a = texture { + T_Wood1 + scale 2 + rotate x*90 + translate x*5 + finish { + ambient 0.4 + } +} +#declare Texture02 = texture { + pigment { + color rgb<0.800, 0.800, 0.800> + } + finish { + brilliance 0.5 + metallic on + diffuse 0.200 + ambient 0.000 + specular 0.300 + roughness 0.02 + } + +} + +#declare Texture03 = texture { Texture01 } + +//---------------------------------------------------------------------- +// This scene uses a non-standard camera set-up. +// (See CAMERA in the included documentation for details.) +// If you are new to POV-Ray, you might want to try a different demo scene. +//---------------------------------------------------------------------- +camera { // Camera StdCam + angle 45 + location <3.50, -15.00, 3.00> + direction <0.0, 0.0, 1.6542> + sky <0.0, 0.0, 1.0> // Use right handed-system! + up <0.0, 0.0, 1.0> // Where Z is up + right x*image_width/image_height // keep propotions with any aspect ratio + look_at <0.000, 0.000, -2.7500> +} + +#declare Intensity = 20; +#declare L_Fade_Distance = 20; +#declare L_Fade_Power = 2; +#declare ALL = 8; +#declare ALW = 8; +#declare ALR = 6; + +#declare Area_Light=off; + +light_source { // Light1 + <-0.2, 100, 65> + color Cyan * Intensity +#if(Area_Light) + area_light x*ALL, z*ALW, ALR, ALR + adaptive 1 + jitter +#end + fade_distance L_Fade_Distance + fade_power L_Fade_Power +} + +light_source { // Light1 + <0, 95, 65> + color Yellow * Intensity +#if(Area_Light) + area_light x*ALL, z*ALW, ALR, ALR + adaptive 1 + jitter +#end + fade_distance L_Fade_Distance + fade_power L_Fade_Power +} + +light_source { // Light1 + <0.2, 90, 65> + color Magenta * Intensity +#if(Area_Light) + area_light x*ALL, z*ALW, ALR, ALR + adaptive 1 +#end + jitter + fade_distance L_Fade_Distance + fade_power L_Fade_Power +} + +sky_sphere { + pigment { + gradient y + color_map { + [0.0 color Gray10] + [1.0 color Gray30] + } + } +} + +union { + cylinder { <-3,0,0>, <3,0,0>, 0.3 } + torus { 1.0, 0.25 + rotate z*90 + } + texture {Texture01} + interior {Interior01} + translate <0.0, -4.0, -0.5> +} + +box { <-1, -1, -1>, <1, 1, 1> + texture {Texture01} + interior {Interior01} + + scale <3.0, 0.5, 0.5> + translate -1.75*z + rotate x*45 + translate -1.5*y +} + +sphere { <0,0,0>,1 + texture {Texture03} + interior {Interior01} + translate <3, 3, -1> +} +sphere { <0,0,0>,1 + texture {Texture03} + interior {Interior01} + + translate <0,3.0, -0.5> +} +sphere { <0,0,0>,1 + texture {Texture03} + interior {Interior01} + translate <-3.0, 3.0, -1> +} +cone { 0, 1, -2*z, 0 + texture {Texture03} + interior {Interior01} + translate <-4.0, 0.3, 0> +} +cone { 0, 1, -2*z, 0 + texture {Texture03} + interior {Interior01} + translate <4.0, 0.3, 0> +} + +plane { z, -2 + hollow on + pigment { Gray60 } +} diff --git a/render_povray/templates_pov/diffuse_back.pov b/render_povray/templates_pov/diffuse_back.pov new file mode 100644 index 00000000..4aa70aef --- /dev/null +++ b/render_povray/templates_pov/diffuse_back.pov @@ -0,0 +1,251 @@ +// 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 Scene Description File +// File: diffuse_back.pov +// Author: Christoph Lipka +// Description: Demonstrates diffuse backside illumination +// +// -w640 -h480 +// -w800 -h600 +a0.3 +// +// Warning: this will take time! + +#version 3.7; + +#declare Photons=on; +#declare Radiosity=on; + +global_settings { + max_trace_level 25 + assumed_gamma 2.2 + #if (Photons) + photons { + count 100000 + } + #end + #if (Radiosity) + radiosity { + pretrace_start 0.04 + pretrace_end 0.005 + count 1000 + nearest_count 10 + error_bound 0.5 + recursion_limit 2 + low_error_factor .25 + gray_threshold 0.0 + minimum_reuse 0.002 + brightness 1 + adc_bailout 0.01/2 + always_sample off + } + #end +} + +#if (Radiosity) + default { + finish { ambient 0 } + } +#else + default { + finish { ambient 0.2 } + } +#end + +// ---------------------------------------- + +#declare OverallBrightness = 8; +#declare OverallScale = 100; + +camera { + right x*image_width/image_height // keep propotions with any aspect ratio + location < 1,1.6,-2.5>*OverallScale + look_at <-2.0,1.2,0>*OverallScale +} + +light_source { + vnormalize(<-500,200,-250>)*1000*OverallScale + color rgb 1.3 * OverallBrightness + area_light x*10*OverallScale,y*10*OverallScale, 9,9 adaptive 1 jitter circular orient + photons { + refraction on + reflection on + } +} + +sky_sphere { + pigment { + gradient y + color_map { + [0.0 rgb <0.6,0.7,1.0>*OverallBrightness*0.5] + [0.7 rgb <0.0,0.1,0.8>*OverallBrightness*0.5] + } + } +} + + +// ---------------------------------------- + +plane { y, -10 + texture { + pigment { color rgb <1.0, 0.8, 0.6> } + finish { diffuse 0.5 } + } +} + +#declare M_SolidWhite= material { + texture { + pigment { rgb 1 } + finish { ambient 0 diffuse 0.8 specular 0.2 reflection { 0.2 } } + } +} + +// Room + +difference { + box { <-3.1,-1,-4>, <3.1,3.5,4> } // solid block + box { <-3,-0.2,-3>, <3,2.5,3> } // main room cutout + box { <-3.2,0.3,-2>, <2.9,2,2> } // window cutout + texture { + pigment { color rgb <0.9, 0.9, 0.9> } + finish { diffuse 1.0 } + } + scale OverallScale +} + +// Window Bars + +union { + cylinder { <-3.05,0, 1>, <-3.05,2, 1>, 0.05 } + cylinder { <-3.05,0,-1>, <-3.05,2,-1>, 0.05 } + material { M_SolidWhite } + scale OverallScale +} + +// Baseboards + +#declare Baseboard = union { + cylinder { <-3,0.1,0>, <3,0.1,0>, 0.025 } + box { <-3,0,0>, <3,0.1,-0.025> } + material { M_SolidWhite } + translate z*3 +} + +union { + object { Baseboard } + object { Baseboard rotate y*90 } + object { Baseboard rotate y*180 } + object { Baseboard rotate y*270 } + scale OverallScale +} + + +box { <-3,0,-3>, <3,-0.1,3> + pigment { color rgb <1.0, 0.8, 0.6> } + scale OverallScale +} + + +// Curtains + +#declare M_Curtains= material { + texture { + pigment { rgb <1.0,0.8,0.6> } + finish { + ambient 0 + diffuse 0.7,0.2 + } + } +} + +#declare Curtain= union { + polygon{ 5, <0,0.1,2.0>, <0,0.1,0.1>, <0,2.45,0.1>, <0,2.45,2.0>, <0,0.1,2.0> material { M_Curtains } } + cylinder { <0,0.1,2.025>, <0,0.1,0.075>, 0.025 material { M_SolidWhite } } + cylinder { <0,2.45,2.025>, <0,2.45,0.075>, 0.025 material { M_SolidWhite } } + translate <-2.8,0,0> + material { M_Curtains } +} + +union { + object { Curtain } + object { Curtain scale <1,1,-1> } + scale OverallScale +} + +// Screen + +#declare M_Screen= material { + texture { + pigment { rgbt <1,1,1, 0.01> } + finish { + ambient 0 + diffuse 0.55,0.45 + specular 0.2 + reflection { 0.2 } + } + } +} + +#declare Screen = cylinder { <0,0,0>, <0,1.0,0>, 0.5 + open + clipped_by { plane { x, 0.1 } } + material { M_Screen } +} + +union { + object { Screen rotate y*45 translate <-2.25,0,2> } + object { Screen rotate y*0 translate <-2.25,0,-1.0> } + scale OverallScale +} + +// Glass Objects + +#declare M_Glass= material { + texture { + pigment {rgbt 1} + finish { + ambient 0.0 + diffuse 0.05 + specular 0.6 + roughness 0.005 + reflection { + 0.1, 1.0 + fresnel on + } + conserve_energy + } + } + interior { + ior 1.5 + fade_power 1001 + fade_distance 0.9 * 10 + fade_color <0.5,0.8,0.6> + } +} + +sphere { + <0,1,0>, 1 + scale 0.2 + translate <-1.8,0,0.5> + material { M_Glass } + photons { // photon block for an object + target 1.0 + refraction on + reflection on + } + scale OverallScale +} + +cylinder { + <0,0.01,0>, <0,2.5,0>, 1 + scale 0.2 + translate <-3.05,0.3,0.4> + material { M_Glass } + photons { // photon block for an object + target 1.0 + refraction on + reflection on + } + scale OverallScale +} diff --git a/render_povray/templates_pov/float5.pov b/render_povray/templates_pov/float5.pov new file mode 100644 index 00000000..2d865cb4 --- /dev/null +++ b/render_povray/templates_pov/float5.pov @@ -0,0 +1,81 @@ +// 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 Scene Description File +// File: float5.pov +// Description: Demonstrates various new float math functions and #while loop +// Modified for 3.5: changed "log()" to "ln()". +// +// -w320 -h240 +// -w800 -h600 +a0.3 + +#version 3.6; + +global_settings { + assumed_gamma 1.0 + } + +#include "colors.inc" + +#declare Rad=1/8; +#declare Font="cyrvetic.ttf" + +#declare Xval=-6.0; + +#while (Xval <= 6.0) + sphere{<Xval,exp(Xval),0>,Rad pigment{color rgb<1,0.2,0>}} + + #if (Xval != 0.0) + sphere{<Xval,pow(Xval,-1),0>,Rad pigment{color rgb<0.2,0.7,0>}} + #end + + sphere{<Xval,pow(Xval,2),0>,Rad pigment{Blue}} + sphere{<Xval,pow(Xval,3),0>,Rad pigment{Cyan}} + + #if (Xval > 0.0) + sphere{<Xval,ln(Xval),0>,Rad pigment{Magenta}} + #end + + #declare Xval=Xval+0.02; +#end + + text{ttf Font "Y=exp(X)",0.1,0 translate <-6.5, 0.5,0> pigment{color rgb<1,0.2,0>}} + text{ttf Font "Y=pow(X,-1)",0.1,0 translate <-6.5,-1.5,0> pigment{color rgb<0.2,0.7,0>}} + text{ttf Font "Y=pow(X,2)",0.1,0 translate <-6.5, 3,0> pigment{Blue}} + text{ttf Font "Y=pow(X,3)",0.1,0 translate <-6.5,-4,0> pigment{Cyan}} + text{ttf Font "Y=ln(X)",0.1,0 translate < 2.5, 2,0> pigment{Magenta}} + +camera { + location <0, 0, -120> + angle 7 // direction <0, 0, 12> + right x*image_width/image_height + look_at <0, 0, 0> +} + +light_source { <5000, 10000, -20000> color White} +light_source { <-500, -1000, 2000> color White} +plane { -z, -Rad pigment {checker color rgb <1,1,1>*1.2 color rgb <1,1,.8>} } + +union{ // X-axis + cylinder{-x*5.5,x*5.5,.1} + cone{-x*6.5,0,-x*5.5,.2} + cone{ x*6.5,0, x*5.5,.2} + translate z*Rad + pigment{rgb<1,.8,1>} +} + +union{ // Y-axis + cylinder{-y*4,y*4,.1} + cone{-y*5,0,-y*4,.2} + cone{ y*5,0, y*4,.2} + translate z*Rad + pigment{rgb<.8,1,1>} +} + +union{ // Axes labels + text{ttf Font "X",0.1,0 translate <5.5,-1,0>} + text{ttf Font "Y",0.1,0 translate <-.75,4,0>} + pigment{rgb<1,.4,0>} +} + diff --git a/render_povray/templates_pov/gamma_showcase.pov b/render_povray/templates_pov/gamma_showcase.pov new file mode 100644 index 00000000..d601868f --- /dev/null +++ b/render_povray/templates_pov/gamma_showcase.pov @@ -0,0 +1,189 @@ +// 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 Ray Tracer Scene Description File +// File: gamma_showcase.pov +// Vers: 3.7 +// Desc: Gamma Handling Test Scene - An arrangement of spheres on a marble plane +// Date: 2010-12-21 +// Auth: Christoph Lipka +// MORE INFORMATION: http://wiki.povray.org/content/Documentation:Tutorial_Section_3.3#Gamma_Handling +// + +// +w640 +h480 +a0.3 +am1 +fN -d File_Gamma=sRGB Output_File_Name=gamma_showcase.png +// +w640 +h480 +a0.3 +am1 +fN -d File_Gamma=1.0 Output_File_Name=gamma_showcase_linear.png +// +w320 +h240 +a0.3 +am1 +fN -d File_Gamma=sRGB Output_File_Name=gamma_showcase_ref0.png Declare=Stripes=off +// +w320 +h240 +a0.3 +am1 +fN -d File_Gamma=sRGB Output_File_Name=gamma_showcase_ref1.png Declare=Stripes=off Declare=Gamma=1.2 +// +w320 +h240 +a0.3 +am1 +fN -d File_Gamma=sRGB Output_File_Name=gamma_showcase_ref2.png Declare=Stripes=off Declare=Gamma=0.8 +// +w640 +h480 +a0.3 +am1 -f +d + +#version 3.7; + +#include "colors.inc" +#include "stones.inc" + +#ifndef (Stripes) + #declare Stripes = on; +#end +#ifndef (Gamma) + #declare Gamma = 1.0; +#end + +global_settings { + max_trace_level 5 + assumed_gamma 1.0 + radiosity { + pretrace_start 0.08 + pretrace_end 0.01 + count 35 + nearest_count 5 + error_bound 1.8 + recursion_limit 2 + low_error_factor .5 + gray_threshold 0.0 + minimum_reuse 0.015 + brightness 1 + adc_bailout 0.01/2 + } +} + +#default { + texture { + pigment {rgb 1} + finish { + ambient 0.0 + diffuse 0.6 + specular 0.6 roughness 0.001 + reflection { 0.0 1.0 fresnel on } + conserve_energy + } + } +} + +// ---------------------------------------- + +#local TestRed = rgb <0.5,0.1,0.1>; +#local TestGreen = rgb <0.1,0.5,0.1>; +#local TestBlue = rgb <0.1,0.1,0.5>; + +#local CameraFocus = <0,0.5,0>; +#local CameraDist = 8; +#local CameraDepth = 1.8; +#local CameraTilt = 20; + +camera { + location <0,0,0> + direction z*CameraDepth + right x*image_width/image_height + up y + translate <0,0,-CameraDist> + rotate x*CameraTilt + translate CameraFocus +} + +#macro LightSource(Pos,Color) + light_source { + Pos + color Color + spotlight + point_at <0,0,0> + radius 175/vlength(Pos) + falloff 200/vlength(Pos) + area_light x*vlength(Pos)/10, y*vlength(Pos)/10, 9,9 adaptive 1 jitter circular orient + } + +#end + +LightSource(<-500,500,-500>,TestRed + <0.2,0.2,0.2>) +LightSource(< 0,500,-500>,TestGreen + <0.2,0.2,0.2>) +LightSource(< 500,500,-500>,TestBlue + <0.2,0.2,0.2>) + +// ---------------------------------------- + +#macro DarkStripeBW(TargetBrightness) + #if (TargetBrightness < 0.5) + (0.0) + #else + (TargetBrightness*2 - 1.0) + #end +#end + +#macro BrightStripeBW(TargetBrightness) + #if (TargetBrightness < 0.5) + (TargetBrightness*2) + #else + (1.0) + #end +#end + +#macro DarkStripeRGB(TargetColor) + <DarkStripeBW(TargetColor.red),DarkStripeBW(TargetColor.green),DarkStripeBW(TargetColor.blue)> +#end + +#macro BrightStripeRGB(TargetColor) + <BrightStripeBW(TargetColor.red),BrightStripeBW(TargetColor.green),BrightStripeBW(TargetColor.blue)> +#end + +#macro StripedPigment(TargetColor) + #if (Stripes) + function { abs(mod(abs(image_height*CameraDepth*y/z+0.5),2.0)-1.0) } + color_map { + [0.5 color rgb DarkStripeRGB(TargetColor) ] + [0.5 color rgb BrightStripeRGB(TargetColor) ] + } + translate <0,0,-CameraDist> + rotate x*CameraTilt + translate CameraFocus + #else + color TargetColor + #end +#end + + +plane { + y, 0 + texture { T_Stone11 } + interior { ior 1.5 } +} + +#macro GammaAdjust(C,G) + #local C2 = color rgbft <pow(C.red,G),pow(C.green,G),pow(C.blue,G),pow(C.filter,G),pow(C.transmit,G)>; + (C2) +#end + +#macro TestSphere(Pos,Radius,TargetColor,Split) + sphere { + Pos + y*Radius, Radius + texture { pigment { color GammaAdjust(TargetColor,Gamma) } } + interior { ior 1.5 } + } + #if (Split) + sphere { + Pos + y*Radius + x*0.001, Radius + texture { pigment { StripedPigment(TargetColor) } } + interior { ior 1.5 } + } + #end +#end + +TestSphere(<-2,0,1>, 1, TestRed, true) +TestSphere(< 0,0,1>, 1, TestGreen, true) +TestSphere(< 2,0,1>, 1, TestBlue, true) + +#local Steps = 6; +#for(I,0,1,1/Steps) + #if (I < 0.5) + #local Color2 = TestRed; + #else + #local Color2 = TestBlue; + #end + #local P = abs(I-0.5)*2; + TestSphere(<I*4-2,0,-0.5>, 2/Steps, (1-P)*TestGreen + P*Color2, true) +#end + +#local Steps = 8; +#for(I,0,1,1/Steps) + TestSphere(<I*4-2,0,-1.5>, 2/Steps, rgb I, true) + TestSphere(<I*4-2,0,-2.0>, 2/Steps, GammaAdjust(rgb I, 2.2*Gamma), false) +#end diff --git a/render_povray/templates_pov/grenadine.pov b/render_povray/templates_pov/grenadine.pov new file mode 100644 index 00000000..1c409b13 --- /dev/null +++ b/render_povray/templates_pov/grenadine.pov @@ -0,0 +1,375 @@ +// 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 Ray Tracer Scene Description File +// File: grenadine.pov +// Desc: Glass with liquid +// Date: 1999/06/04 +// Auth: Ingo Janssen +// Updated: 2013/02/15 for 3.7 +// +// -w320 -h240 +// -w800 -h600 +a0.3 + +#version 3.7; + +#include "glass.inc" + + +global_settings { + assumed_gamma 1.0 + max_trace_level 5 + photons { + spacing 0.01 // higher value 'lower' quality, faster parsing. + autostop 0 + jitter 0.5 + max_trace_level 15 + } +} + +light_source { + <500, 550, -100> + rgb <1, 1, 1> + spotlight + radius 1 + falloff 1.1 + tightness 1 + point_at <-19,-4,7> +} + +camera { + location <-0.5, 2.5, -7.0> + right x*image_width/image_height // keep propotions with any aspect ratio + look_at <-0.5, 0.5, 0.0> +} + +sky_sphere { + pigment { + gradient y + color_map { [0.0 rgb <0.2,0,1>] [1.0 color rgb 1] } + } +} + +union { //plane & background + difference { + box {<-20,-1,0>,<20,13,13>} + cylinder{<-21,13,0>,<21,13,0>,13} + } + plane {y, 0} + translate <0,-1.9999,7> + pigment {rgb .5} + finish {diffuse .5 ambient 0} +} + +//====== The Lemon ====== +#declare SS=seed(7); +#declare R_uit= 3; +#declare R_in=2.9; + +#declare Ring = difference { + cylinder {< 0 , 0, 0>, <1 , 0, 0>, R_uit} + cylinder {<-0.1, 0, 0>, <1.1, 0, 0>, R_in} +} + +#declare R2_uit= 0.8; +#declare R2_in=0.7; + +#declare Ring2 = difference { + cylinder {< 0 , 0, 0>, < 1 , 0, 0>, R2_uit} + cylinder {<-0.1, 0, 0>, < 1.1, 0, 0>, R2_in} +} + +#declare LemonOut= intersection { + merge { + difference { + merge { + object {Ring translate < 0.01, 0, (R_uit+R_in)/2>} + object {Ring translate <-1.01, 0,-(R_uit+R_in)/2>} + } + box {<-1.1, 0.1,-1>, <1.1, 2, 1>} + } + difference { + box {<-1, 0,-(R_uit-R_in)/2>, < 1, 1.1, (R_uit-R_in)/2>} + box { + <-2.5, 0,-1>, <2.5, 2, 1> + translate <0, 0.5, 0> + rotate <0, 0,-20> + } + } + difference{ + object { + Ring2 + translate <-0.5, 0, 0> + scale <2.2, 1, 1> + translate < 0, 0, (R2_uit+R2_in)/2> + } + box {<-2.1, 0,-1>,<2.1,-3, 1>} + translate <0, 0.499999, 0> + rotate <0, 0,-20> + } + } + merge { + cylinder {<0, 0,-0.5>, <0, 0, 0.5>, 0.8} + torus {0.8, 0.2 scale <1, 1.1, 1> rotate <90, 0, 0>} + } +} + +#declare BS1= array[24] { + < 24.8, 49.8>, < 13.0, 31.4>, < 4.0, 8.8>, < 0.1, 9.4> + < 0.1, 9.4>, <- 7.4, 10.7>, <-12.5, 30.4>, <-21.1, 49.8> + <-21.1, 49.8>, <-33.3, 76.9>, <-39.8, 87.0>, <-29.2, 91.4> + <-29.2, 91.4>, <-20.0, 95.3>, <-10.0, 95.9>, < 0.0, 95.9> + < 0.0, 95.9>, < 10.0, 95.9>, < 21.3, 95.8>, < 30.0, 90.7> + < 30.0, 90.7>, < 41.3, 84.0>, < 45.1, 86.5>, < 24.8, 49.8> +} + +#declare BS2= array[24] { + < 24.8, 55.8>, < 13.0, 31.4>, < 4.0, 8.8>, < 0.1, 15.0> + < 0.1, 15.0>, <- 7.4, 10.7>, <-12.5, 30.4>, <-21.1, 49.8> + <-21.1, 49.8>, <-33.3, 76.9>, <-39.8, 87.0>, <-29.2, 91.4> + <-29.2, 91.4>, <-20.0, 95.3>, <-10.0, 95.9>, < 0.0, 95.9> + < 0.0, 95.9>, < 10.0, 95.9>, < 21.3, 95.8>, < 30.0, 90.7> + < 30.0, 90.7>, < 41.3, 84.0>, < 45.1, 86.5>, < 24.8, 55.8> +} + + +#declare BS3= array[24] { + < 23.0, 49.8>, < 13.0, 31.4>, < 4.0, 8.8>, < 0.1, 6.0> + < 0.1, 6.0>, <- 7.4, 10.7>, <-12.5, 30.4>, <-21.1, 49.8> + <-21.1, 49.8>, <-33.3, 76.9>, <-39.8, 87.0>, <-29.2, 91.4> + <-29.2, 91.4>, <-20.0, 95.3>, <-10.0, 95.9>, < 0.0, 95.9> + < 0.0, 95.9>, < 10.0, 95.9>, < 21.3, 95.8>, < 30.0, 90.7> + < 30.0, 90.7>, < 41.3, 84.0>, < 45.1, 85.0>, < 23.0, 49.8> +} + + +#declare BS4= array[24] { + < 24.8, 49.8>, < 13.0, 31.4>, < 4.0, 11.8>, < 0.1, 9.0> + < 0.1, 9.0>, <- 7.4, 13.7>, <-12.5, 30.4>, <-21.1, 49.8> + <-21.1, 49.8>, <-33.3, 76.9>, <-39.8, 87.0>, <-21.2, 91.4> + <-21.2, 91.4>, <-20.0, 95.3>, <-10.0, 95.9>, < 0.0, 95.9> + < 0.0, 95.9>, < 10.0, 95.9>, < 21.3, 95.8>, < 30.0, 90.7> + < 30.0, 90.7>, < 41.3, 84.0>, < 45.1, 86.5>, < 24.8, 49.8> +} + +#declare J=0; +#declare Part1= prism { + bezier_spline + -0.5, 0.5, 24, + #while (J<24) + #declare P= BS1[J]; + P + #declare J=J+1; + #end + scale < 0.0095, 1, 0.0095> +} + +#declare J=0; +#declare Part2= prism { + bezier_spline + -0.5, 0.5, 24, + #while (J<24) + #declare P= BS2[J]; + P + #declare J=J+1; + #end + scale < 0.0095, 1, 0.0095> +} + +#declare J=0; +#declare Part3= prism { + bezier_spline + -0.5, 0.5, 24, + #while (J<24) + #declare P= BS3[J]; + P + #declare J=J+1; + #end + scale < 0.0095, 1, 0.0095> +} + +#declare J=0; +#declare Part4= prism { + bezier_spline + -0.5, 0.5, 24, + #while (J<24) + #declare P= BS4[J]; + P + #declare J=J+1; + #end + scale < 0.0095, 1, 0.0095> +} + +#declare LemonTex= texture { + pigment { + granite + scale <0.2,5,1> + colour_map { + [0.4 rgbf <1,0.65,0,0.4>] + [0.6 rgbf <1,0.8,0,0.4>] + [0.7 rgbf <1,0.9,0,0.6>] + [0.9 rgb <1,0.7,0>*1.5 ] + } + } + normal {granite -0.1 turbulence 0.3 scale <0.2,5,1>} + finish { + specular .9 + roughness 0.01 + } +} + +#declare Parts= union { + object {Part1 } + object {Part2 rotate <0, 360/7 ,0>} + object {Part3 rotate <0,2*(360/7),0>} + object {Part4 rotate <0,3*(360/7),0>} + object {Part1 rotate <0,4*(360/7),0>} + object {Part2 rotate <0,5*(360/7),0>} + object {Part3 rotate <0,6*(360/7),0>} + rotate <90,0,0> +} + +#declare LemonSlice = union { + intersection { + object {LemonOut} + object {Part1 rotate <90,0,0>} + texture {LemonTex rotate <90,0,0> translate rand(SS)*5} + } + intersection { + object {LemonOut} + object {Part2 rotate <0,360/7,0> rotate <90,0,0>} + texture {LemonTex rotate <0,360/7,0> rotate <90,0,0> translate rand(SS)*5} + } + intersection { + object {LemonOut} + object {Part3 rotate <0,2*(360/7),0> rotate <90,0,0>} + texture {LemonTex rotate <0,2*(360/7),0> rotate <90,0,0> translate rand(SS)*5} + } + intersection { + object {LemonOut} + object {Part4 rotate <0,3*(360/7),0> rotate <90,0,0>} + texture {LemonTex rotate <0,3*(360/7),0> rotate <90,0,0> translate rand(SS)*5} + } + intersection { + object {LemonOut} + object {Part1 rotate <0,4*(360/7),0> rotate <90,0,0>} + texture {LemonTex rotate <0,4*(360/7),0> rotate <90,0,0> translate rand(SS)*5} + } + intersection { + object {LemonOut} + object {Part2 rotate <0,5*(360/7),0> rotate <90,0,0>} + texture {LemonTex rotate <0,5*(360/7),0> rotate <90,0,0> translate rand(SS)*5} + } + intersection { + object {LemonOut} + object {Part3 rotate <0,6*(360/7),0> rotate <90,0,0>} + texture {LemonTex rotate <0,6*(360/7),0> rotate <90,0,0> translate rand(SS)*5} + } + + difference { //outside + object {LemonOut} + object {Parts} + texture { + cylindrical + rotate <90,0,0> + texture_map { + [0.05, pigment {rgb <1,0.8,0>} + normal {granite .1 scale 0.1} + finish {phong 0.8 phong_size 20} + ] + [0.06, pigment {rgb <1,0.9,0.7>} + normal {granite .07 scale 0.5} + ] + } + } + } +} + +//====== The Glass ====== + +#declare Ri=0.95; + +#declare Glass= merge { + difference { + cylinder { -y*2,y*2,1 } + sphere {-y*0.8,Ri} + cylinder { -y*0.8,y*2.01,Ri} + sphere {-y*1.9,0.1} + } + torus {0.975, 0.026 translate <0,2,0>} + // texture {T_Glass1} + // interior {ior 1.5} + // converted to material 26Sep2008 (jh) + material { + texture { + pigment {color rgbf<1.0, 1.0, 1.0, 0.7>} + finish {F_Glass1} + } + interior {ior 1.5} + } +} + + +//====== The bubbles and the juce ====== + +#declare Bubble= difference { + sphere {0,0.1} + sphere {0,0.09999999} +} + +#declare S= seed(7); +#declare I=0; +#declare Bubbles= intersection { + union { + #while (I<60) + object { + Bubble + scale rand(S) + scale <1,0.7,1> + translate <1,0.6,0> + rotate <0,360*rand(S),0> + } + object { + Bubble + scale rand(S)*0.5 + translate <rand(S),0.58,0> + rotate <0,360*rand(S),0> + } + #declare I=I+1; + #end //while + } + cylinder{y*0.5,y*0.85,Ri+0.00000001} +} + +#declare Liquid= merge { + sphere {-y*0.8,Ri+0.00000001} + cylinder {-y*0.8,y*0.6,Ri+0.00000001} + object {Bubbles} + pigment {rgbf <0.9, 0.1, 0.2, 0.95>} + finish {reflection 0.3} + interior{ior 1.2} +} + +//====== The glass and juice ===== +union { + object {Glass} + object {Liquid} + photons { + target + refraction on + reflection on + collect off + } +} + +object { + LemonSlice + scale <0.8,0.8,1> + translate <-0.99,0,0> + rotate <0,-30,0> + translate <0,2,0> + photons { + pass_through + } +}
\ No newline at end of file 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>} + +//---------------------------------------- diff --git a/render_povray/templates_pov/mediasky.pov b/render_povray/templates_pov/mediasky.pov new file mode 100644 index 00000000..9347424e --- /dev/null +++ b/render_povray/templates_pov/mediasky.pov @@ -0,0 +1,147 @@ +// 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 Scene Description File +// File: mediasky.pov +// Author: Chris Huff +// Description: This file demonstrates the use of scattering media +// to create a sky with clouds. It attempts to simulate an actual +// atmosphere: there is an outer shell of media that scatters blue +// light, and an inner cloud shell that scatters white. The scattered +// light from the outer shell makes the sky appear blue, and the light +// that passes through is tinted orange by its passage, giving the +// clouds an orange color. +// +// Updated: 2013/02/15 for 3.7 +// +// -w320 -h180 +// +w640 +h360 +a0.3 +// use 16:9 aspect ratio +// +//******************************************* + +#version 3.7; + +#include "colors.inc" + +global_settings { + assumed_gamma 1.0 + max_trace_level 5 +} + +#declare CamPos = <-5, 1,-25>; + +camera { + location CamPos + up y + right x*image_width/image_height // keep propotions with any aspect ratio + look_at < 0, 7.5, 0> + angle 90 +} + +light_source {CamPos, color Gray30 media_interaction off} +//light_source {vrotate(z, <-1, 8, 0>)*500000, color rgb < 1, 0.8, 0.65>} + +#declare SunPos = vrotate(z, <-12, 8, 0>)*1000000; +light_source {SunPos, color White*2} +sphere {SunPos, 75000 + texture { + pigment {color White} + finish {ambient 10 diffuse 0} + } + no_shadow +} + + +#declare PlanetSize = 50000; + +//the ocean +sphere {< 0, 0, 0>, 1 + scale PlanetSize + translate -y*PlanetSize + hollow + texture { +// pigment {color rgb < 1, 1, 1>} + pigment {color rgbf < 1, 1, 1, 1>} + finish { + ambient 0 diffuse 0.7 + reflection {0.5, 1 + fresnel//use the fresnel form of angle-dependant reflection + metallic//use metallic reflection + } + conserve_energy + metallic//use metallic highlights + } + normal {bumps bump_size 0.075 scale < 4, 1, 1>*0.025} + } + interior { + ior 1.33//required for fresnel reflection + media { + method 3 + samples 2 intervals 1 + absorption color rgb < 0.75, 0.5, 0.25>*0.005 + } + } +} +//the ocean floor +sphere {< 0, 0, 0>, 1 + scale PlanetSize - 100 + translate -y*PlanetSize + texture { + pigment {color rgb 1} + } +} + +#macro SkyShell(minAlt, maxAlt, Int) + difference { + sphere {< 0, 0, 0>, 1 scale (PlanetSize + maxAlt)} + sphere {< 0, 0, 0>, 1 scale (PlanetSize + minAlt)} + hollow + texture {pigment {color rgbf 1}} + translate -y*PlanetSize + interior {Int} + } +#end + +//A much more realistic sky could be done using multiple layers +//of clouds to simulate clouds of different densities and with +//different altitudes. Of course, this would render a lot slower... + +//the "cloud shell", creates clouds. +SkyShell(1000, 1300, + interior { + media { + method 3 aa_threshold 0.1 aa_level 3 + samples 4 intervals 1 + scattering {2, color White*0.0075 extinction 1} + density {wrinkles + scale < 5, 2, 2>*200 + warp {turbulence 2} + color_map { + [0 color rgb 1] + [0.5 color rgb 0.85] + [0.55 color rgb 0.035] + [1 color rgb 0.035] + } + } + } +/* media { + method 3 + samples 2 intervals 1 + scattering {2, color White*0.0075*0.015 extinction 1} + }*/ + } +) + +//the "atmosphere shell", creates the blue sky and orange light. +SkyShell(1001, 2200, + interior { + media { + method 3 + samples 2 intervals 1 + scattering {4, color rgb < 0.25, 0.6, 0.9>*0.00075 extinction 1} + } + } +) + diff --git a/render_povray/templates_pov/patio-radio.pov b/render_povray/templates_pov/patio-radio.pov new file mode 100644 index 00000000..a5a0a0ca --- /dev/null +++ b/render_povray/templates_pov/patio-radio.pov @@ -0,0 +1,292 @@ +// This work is licensed under the Creative Commons Attribution 3.0 Unported License. +// To view a copy of this license, visit http://creativecommons.org/licenses/by/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. +// +// -w320 -h240 +// -w800 -h600 +a0.3 + +//===================== RENAISSANCE PATIO ===================================== + +//===================== RADIANCE AND ENVIRONMENT SETTINGS ===================== +#version 3.7; +#declare Rad_Quality = 2; + +global_settings { + assumed_gamma 1.0 + +#switch (Rad_Quality) + #case (1) + radiosity { // --- Settings 1 (fast) --- + pretrace_start 0.08 + pretrace_end 0.02 + count 50 + error_bound 0.5 + recursion_limit 1 + } + #break + #case (2) + radiosity { // --- Settings 2 (medium quality) --- + pretrace_start 0.08 + pretrace_end 0.01 + count 120 + error_bound 0.25 + recursion_limit 1 + } + #break + #case (3) + radiosity { // --- Settings 3 (high quality) --- + pretrace_start 0.08 + pretrace_end 0.005 + count 400 + error_bound 0.1 + recursion_limit 1 + } + #break + #case (4) + radiosity { // --- Settings 4 (medium quality, recursion_limit 2) --- + pretrace_start 0.08 + pretrace_end 0.005 + count 350 + error_bound 0.15 + recursion_limit 2 + } + #break + #end + +} + +fog { + fog_type 2 + fog_alt 1.3 + fog_offset 0 + color rgb <0.7, 0.8, 0.9> + distance 800 +} + +light_source {<1000, 10000, -15000> color rgb <1.0, 0.9, 0.78>*2.3} + +sphere { // --- Sky --- + <0, 0, 0>, 1 + texture { + pigment { + gradient y + color_map { + [0.0 color rgb < 1.0, 1.0, 1.0 >] + [0.3 color rgb < 0.5, 0.6, 1.0 >] + } + } + finish { diffuse 0 #if (version < 3.7) ambient 1 #else emission 1 #end } + } + scale 10000 + hollow on + no_shadow +} + +//===================== THE SCENERY ITSELF ==================================== + +#include "colors.inc" + +camera { location <500,150,0> + angle 65 // direction z + right x*image_width/image_height + look_at <0,150,320> + } + +plane {y,0 pigment {color rgb <0.776,0.706,0.706>}} + +#declare Arch_01 = +union { + difference { + cylinder {<-20,0,0>,<20,0,0>,140} + cylinder {<-21,0,0>,<21,0,0>,130} + torus {130 2 rotate z*90 translate x*20} + torus {130 2 rotate z*90 translate x*-20} + } + difference { + cylinder {<-18,0,0>,<18,0,0>,130} + cylinder {<-21,0,0>,<21,0,0>,125} + } + torus {139 1 rotate z*90 translate x*20} + torus {136 1 rotate z*90 translate x*20} + torus {139 1 rotate z*90 translate x*-20} + torus {136 1 rotate z*90 translate x*-20} +clipped_by {plane {y,0 inverse}} +} + +#macro SphereBox (Radius) + #local SpRad = sqrt (Radius*Radius + Radius*Radius); + intersection { + sphere {0,SpRad} + box {<-Radius,0,-Radius>,<Radius,Radius,Radius>} + } +#end + +#declare Column_01 = union { + box {<-40,0,-40>,<40,50,40>} + box {<-35,50,-35>,<35,60,35>} + cylinder {<0,60,0>,<0,66,0>,28} + torus {28 3 translate y*63} + difference { + cylinder {<0,66,0>,<0,70,0>,25} + torus {25 2 translate y*68} + } + cylinder {<0,70,0>,<0,74,0>,25} + torus {25 2 translate y*72} + cylinder {<0,74,0>,<0,76,0>,25} + sphere {<0,0,0>,23 scale <1,15,1> translate y*76 clipped_by {cylinder {<0,76,0>,<0,265,0>,30}}} + torus {20 2 translate y*255} + torus {19 2 translate y*258} + object {SphereBox (20) rotate z*180 translate y*(260+22)} + box {<-25,282,-25>,<25,285,25>} + box {<-20,285,-22>,<20,295,22>} + difference { + cylinder {<-22,290,0>,<22,290,0>,5} + cylinder {<-23,290,0>,<23,290,0>,3} + } + box {<-23,295,-23>,<23,298,23>} + box {<-28,298,-28>,<28,300,28>} +} + +#declare Vault_01 = +difference { + box {<-160,0,-160>,<160,250,160>} + cylinder {<-170,0,0>,<170,0,0>,130} + cylinder {<-170,0,0>,<170,0,0>,130 rotate y*90} +} + +#declare Vault_02 = //(vault de coin) +difference { + union { + box {<-180,0,-160>,<180,250,160>} + box {<-160,0,-180>,<160,250,180>} + } + cylinder {<-190,0,0>,<190,0,0>,130} + cylinder {<-190,0,0>,<190,0,0>,130 rotate y*90} +} + +#declare Spindle_01 = +lathe{ + cubic_spline + 12, + <0.017005,-0.005668>, + <0.117619,-0.004251>, + <0.123287,0.072272>, + <0.068020,0.124704>, + <0.076523,0.195559>, + <0.141709,0.444967>, + <0.075106,0.524324>, + <0.138875,0.616435>, + <0.055267,0.916859>, + <0.137458,0.973543>, + <0.161549,1.000468>, + <0.204061,0.991965> +} + +#declare Band_01 = +union { + box {<0,0,-25>,<-1,60,25>} + box {<0,0,-25>,<5,2,25>} + box {<0,8,-25>,<3,2,25>} + box {<0,8,-25>,<6,15,25>} + box {<0,8,-10>,<6,15,-8>} + box {<0,8,10>,<6,15,8>} + box {<0,20,-25>,<3,19,25>} + box {<0,50,-25>,<5,60,25>} + box {<0,50,-25>,<3,55,25>} + box {<0,20,-2>,<3,40,-4>} + box {<0,20,-6>,<3,40,-8>} + box {<0,20,2>,<3,40,4>} + box {<0,20,6>,<3,40,8>} + box {<0,42,-25>,<6,40,25>} + box {<0,0,-2>,<7,8,-4>} + box {<0,0,-6>,<7,8,-8>} + box {<0,0,2>,<7,8,4>} + box {<0,0,6>,<7,8,8>} +} + +#declare Balcony_01 = union { + box {<-10,0,-.5>,<10,10,.5>} + cylinder {<-10,5,-.5>,<-10,5,.5>,4} + cylinder {<10,5,-.5>,<10,5,.5>,4} +} + +#declare Group1 = union { + object {Arch_01 translate <-490,300,0>} + object {Arch_01 translate <-490,300,300>} + object {Arch_01 translate <-490,300,-300>} + + object {Column_01 translate <-490,0,150>} + object {Column_01 translate <-490,0,-150>} + object {Column_01 translate <-490,0,-450>} + object {Column_01 translate <-490,0,450>} + + object {Column_01 translate <-790,0,150>} + object {Column_01 translate <-790,0,-150>} + object {Column_01 translate <-790,0,-450>} + object {Column_01 translate <-790,0,450>} + object {Column_01 translate <-790,0,-450-40>} + object {Column_01 translate <-790,0,450+40>} + + object {Arch_01 rotate y*90 translate <-490-150,300,150>} + object {Arch_01 rotate y*90 translate <-490-150,300,-150>} + object {Arch_01 rotate y*90 translate <-490-150,300,450>} + object {Arch_01 rotate y*90 translate <-490-150,300,-450>} + object {Arch_01 rotate y*90 translate <-490-150,300,450+40>}//doubleaux + object {Arch_01 rotate y*90 translate <-490-150,300,-450-40>} + + object {Vault_01 translate <-640,300,0>} + object {Vault_01 translate <-640,300,300>} + object {Vault_01 translate <-640,300,-300>} + object {Vault_02 translate <-640,300,640>}//coin + + #declare I=0; + #while (I < 1000) + object {Band_01 translate <-480,500,(-470 + I)>} + #declare I=I+50; + #end + + #declare I=0; + #while (I < 1000) + object {Spindle_01 scale <60,60,60> translate <-500,550,(-500 + I)>} + #declare I=I+40; + #end + + object {Balcony_01 scale <1,1,1020> translate <-500,610,0>} + object {Balcony_01 scale <1,1,1020> translate <-500,610,0> rotate y*90} + object {Balcony_01 scale <1,1,1020> translate <-500,610,0> rotate y*180} + object {Balcony_01 scale <1,1,1020> translate <-500,610,0> rotate y*270} + + box {<-790,0,-810>,<-810,450,810>} + +} + +#declare PatioComplete = union { + object {Group1} + object {Group1 rotate y*90} + object {Group1 rotate y*180} + object {Group1 rotate y*270} +} + +object {PatioComplete + pigment {Wheat} + finish {ambient 0.0 diffuse 0.6} +} + +#declare Paving_01 = +union { + box {<-40,0,-490>,<40,.1,490> translate x*150} + box {<-40,0,-490>,<40,.1,490> translate x*-150} + box {<-40,0,-490>,<40,.1,490> translate x*490} + box {<-40,0,-490>,<40,.1,490> translate x*-480} + + texture { + pigment {color rgb <0.706,0.714,0.776>*.8} + finish {ambient 0.0 diffuse 0.6} + } +} + +object {Paving_01 translate <-10,0,0>} +object {Paving_01 rotate y*90 translate <-10,0,0>} diff --git a/render_povray/templates_pov/subsurface.pov b/render_povray/templates_pov/subsurface.pov new file mode 100644 index 00000000..088ba102 --- /dev/null +++ b/render_povray/templates_pov/subsurface.pov @@ -0,0 +1,176 @@ +// This work is licensed under the Creative Commons Attribution 3.0 Unported License. +// To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/ +// or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, +// California, 94041, USA. + +// Persistence of Vision Ray Tracer Scene Description File +// File: subsurface.pov +// Vers: 3.7 +// Desc: Subsurface Scattering Demo - Candle on a Checkered Plane +// Date: 2011-02-25 +// Auth: Christoph Lipka +// +// Recommended settings: +// +W640 +H480 +A0.3 +// Rendering time: +// ~4 min on a 2.3GHz AMD Phenom X4 9650 QuadCore + +#version 3.7; + +#include "colors.inc" + +global_settings { + assumed_gamma 1.0 + mm_per_unit 40 + subsurface { samples 400, 40 } + ambient_light 0.3 +} + +// ---------------------------------------- + +camera { + location <0.0, 2.5, -4.0> + angle 50 // direction 1.5*z + right x*image_width/image_height + look_at <0.5, 1.0, 0.0> +} + +sky_sphere { + pigment { + gradient y + color_map { + [0.0 rgb <0.6,0.7,1.0>] + [0.7 rgb <0.0,0.1,0.8>] + } + } +} + +light_source { + <-30, 30, -30> + color rgb <1,1,1> +} + +// ---------------------------------------- + +// a checkered white/"black" marble plane +plane { + y, -0.01 + texture { + checker + texture { + // marble parameters derived from Jensen et al. "A Practical Model for Subsurface Light Transport", Siggraph 2001 + pigment { + crackle + turbulence 0.7 + color_map { + [0.5 color rgb <0.83,0.79,0.75>*1.0] + [0.9 color rgb <0.83,0.79,0.75>*0.8] + [1.0 color rgb <1.00,0.75,0.70>*0.5] + } + scale 0.3 + } + normal { + agate 0.085 + turbulence 2 + } + finish{ + diffuse 0.8 + specular 0.6 + reflection { 0.2 fresnel } + conserve_energy + subsurface { translucency <0.4562, 0.3811,0.3325> } + } + } + texture { + pigment{ crackle turbulence 0.25 + form <-1,1,0.05> + color_map { [0.00 color rgb<1,1,1>] + [0.025 color rgb<0.252,0.482,0.372>] + [0.05 color rgb<0.082,0.092,0.072>] + [0.15 color rgb<0.05,0.09,0.06>] + [0.52 color rgb<0.008,0.019,0.012>] + [0.65 color rgb<0.0025,0.0029,0.0014>] + [0.75 color rgb<0.0060,0.0084,0.0065>] + [1.00 color rgb<0.008,0.012,0.012>] + } + } + normal { + agate 0.085 + turbulence 2 + } + finish{ + diffuse 0.8 + specular 0.6 + reflection { 0.2 fresnel } + conserve_energy + subsurface { translucency <0.4562, 0.3811,0.3325> } + } + } + scale 4 + translate <0.7,0,1> + } + interior { ior 1.5 } +} + +// the classic chrome sphere +sphere { <1.5,0.7,1>, 0.7 + pigment { color rgb 1 } + finish { + ambient 0 diffuse 0 + specular 0.7 roughness 0.01 + conserve_energy + reflection { 0.7 metallic } + } +} + +// a candle... +blob { + threshold 0.5 + cylinder { <0.0, 0.0, 0.0>, + <0.0, 2.0, 0.0>, 1.0, 1.0 } // candle "body" + sphere { <0.0, 2.5, 0.0>, 0.8, -2.0 } // (used to shape the candle top) + sphere { <0.0,-0.52, 0.0>, 0.8, -2.0 } // (used to shape the candle bottom) + sphere { <0.0, 2.0, -0.5>, 0.1, -0.2 } // the "notch" where wax runs over + cylinder { <0.0, 1.88,-0.52>, + <0.0, 1.5, -0.52>, 0.05, 0.2 } // a streak of wax running over + sphere { <0.0, 1.5, -0.55>, 0.07, 0.2 } // a drop of of wax running over + texture { + // bees' wax + pigment { color rgb <0.8,0.50,0.01> } + finish{ + diffuse 0.6 specular 0.6 roughness 0.1 + subsurface { translucency <5,3,1>*0.5 } + } + } + interior { ior 1.45 } + rotate -y*45 +} + +// ... and the wick +intersection { + box { <-1,-1,-1>, <0,1,1> } + torus { 0.15, 0.03 } + rotate x*90 + translate <0.15, 1.95, 0.0> + pigment { color rgb 0 } + finish { ambient 0 diffuse 1 specular 0 } + no_shadow +} + +// a classic-textured slab for comparison +superellipsoid { + <0.1,0.1> + texture { + pigment { color rgb <0.9,0.6,0.6> } + finish{ + diffuse 1.0 + specular 0.6 + reflection { 0.2 fresnel } + conserve_energy + } + } + interior { ior 1.45 } + scale <0.25,0.05,0.25> + rotate y*30 + translate <1.2,0.05,0.25> +} diff --git a/render_povray/templates_pov/wallstucco.pov b/render_povray/templates_pov/wallstucco.pov new file mode 100644 index 00000000..b6231266 --- /dev/null +++ b/render_povray/templates_pov/wallstucco.pov @@ -0,0 +1,186 @@ +// 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 Ray Tracer Scene Description File +// Desc: Brick wall & Stucco +// Date: 2000/03/14 +// Updated: 2001/07/26 +// Auth: Ingo Janssen +// Updated: 2013/02/15 for 3.7 +// +// -w320 -h240 +// -w800 -h600 +a0.3 +// + +#version 3.7; +global_settings { assumed_gamma 1.0 + noise_generator 1 } // change to 2 or 3. + +light_source { + < 500, 500,500> + rgb 1 +} + +camera { + location <0.2, 0.0,-25.0> + look_at <0.0, 0.0, 0.0> + right x*image_width/image_height // keep propotions with any aspect ratio + angle 65 +} + +//====== Doing the Stucco ====== + +#declare L2=0.55; //clock; //Set amount of decay of stucco, higher value is more decay. animate +#declare PWrink= pigment { //Mortar + wrinkles + scale 0.25 + colour_map { + [0, rgb 0.5] + [L2, rgb 0.96] + } +} +#declare Stucco= pigment { //Stucco + granite + scale 0.05 + colour_map { + [0, rgb 0.96] + [1, rgb 1] + } +} + +#declare StuMor= pigment { //Stucco & Mortar + pigment_pattern{ + wrinkles + scale 0.25 + } + pigment_map { + [L2, PWrink] + [L2, Stucco] + } +} + +#declare HF_Stucco=height_field { //Turn it into a hightfield + function 500, 500{ //500,500 for test higher is better, but watch the memory + pigment{StuMor } + } + translate -0.5 + rotate -90*x + scale <20,20,2> + pigment { //Use the mortar to colour up the stucco + pigment_pattern { + wrinkles + scale 0.25 + } + color_map { + [L2, rgb 0.5] + [L2, rgb <1,1,0.95>] + } + warp {planar z, 0} + translate <-0.5, -0.5, 0> + rotate <180,0,0> + scale <20,20,2> + } +} + +//====== Lay some Bricks ====== + +//Size : dimension of the brick in a vector x, y, z +//Mortar : width of the joint. +//Turbulence etc : control the stone deformation. +#macro BrickWall(Size, Mortar, Turbulence, Octaves, Lambda, Omega) + + #local Brick= pigment { + boxed // one single brick ... + scale <Size.x/2,Size.y/2,Size.z/2> + translate <Size.x/2+Mortar,Size.y/2+Mortar,0> + warp {repeat x*(Size.x+Mortar)} // ... repeated over and over again. + warp {repeat y*(2*(Size.y+Mortar))} + } + + #declare FBrickWall= function { + pigment { + pigment_pattern { + gradient y + warp {repeat y} + scale <1,2*(Size.y+Mortar),1> + } + pigment_map { + [0.5, Brick + warp { // deforming the bricks ... + turbulence Turbulence + octaves Octaves + lambda Lambda + omega Omega + } + translate <0,-(Mortar/2),0> + ] + [0.5, Brick // ... row by row. + warp { + turbulence Turbulence + octaves Octaves + lambda Lambda + omega Omega + } + translate <(Size.x/2)+Mortar,(Size.y+(Mortar/2)),0> + ] + } + } + } +#end + +#declare Wall=pigment { + BrickWall(<4,1,1>,0.2,<0.05,0.1,0>,6,0.5,0.5) + function{FBrickWall(x,y,z).gray} + pigment_map { // give some stucture to the joint ... + [0, granite + scale 0.1 + colour_map { + [0, rgb 0][1, rgb 0.3] + } + ] + [0.05, crackle // ... and the bricks. + scale <3,1,1> + turbulence 0.5 + colour_map { + [0, rgb 0.34][1, rgb 0.5] + } + ] + } + scale 0.04 +} + +#declare HF_Wall=height_field { // Build the wall + function 500, 500 { //500,500, for test, higher is better & slower. Watch the memory use. + pigment{Wall} + } + smooth + translate -0.5 + rotate <-90,0,0> + scale <33,33,1> + pigment { + Wall + pigment_map { + [0, rgb 0.6] + [0.05, wrinkles + turbulence 0.3 + scale <2,0.3,1> + colour_map { + [0.0, rgb <0.5,0.3,0.25>] + [0.15, rgb <0.5,0.3,0.25>/1.3] + [0.3, rgb <0.5,0.3,0.25>] + [0.6, rgb <0.6,0.3,0.25>/1.6] + [0.8, rgb <0.5,0.3,0.25>] + [1.0, rgb <0.5,0.3,0.35>/2] + } + ] + } + translate <-0.5, -0.5, 0> + rotate -90*x + warp {planar y, 0} + scale <33,33,1> + } +} + +object {HF_Stucco} +object {HF_Wall translate <0,0,-0.8>} |