Import_3ds: Improved distance cue node setup
[blender-addons.git] / render_povray / templates_pov / grenadine.pov
blobc61d13d8dec76b9633186ff11c7a38372bb83653
1 // This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
2 // To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
3 // letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
5 // Persistence of Vision Ray Tracer Scene Description File
6 // File: grenadine.pov
7 // Desc: Glass with liquid
8 // Date: 1999/06/04
9 // Auth: Ingo Janssen
10 // Updated: 2013/02/15 for 3.7
12 // -w320 -h240
13 // -w800 -h600 +a0.3
15 #version 3.7;
17 #include "glass.inc"
20 global_settings {
21 assumed_gamma 1.0
22 max_trace_level 5
23 photons {
24 spacing 0.01 // higher value 'lower' quality, faster parsing.
25 autostop 0
26 jitter 0.5
27 max_trace_level 15
31 light_source {
32 <500, 550, -100>
33 rgb <1, 1, 1>
34 spotlight
35 radius 1
36 falloff 1.1
37 tightness 1
38 point_at <-19,-4,7>
41 camera {
42 location <-0.5, 2.5, -7.0>
43 right x*image_width/image_height // keep proportions with any aspect ratio
44 look_at <-0.5, 0.5, 0.0>
47 sky_sphere {
48 pigment {
49 gradient y
50 color_map { [0.0 rgb <0.2,0,1>] [1.0 color rgb 1] }
54 union { //plane & background
55 difference {
56 box {<-20,-1,0>,<20,13,13>}
57 cylinder{<-21,13,0>,<21,13,0>,13}
59 plane {y, 0}
60 translate <0,-1.9999,7>
61 pigment {rgb .5}
62 finish {diffuse .5 ambient 0}
65 //====== The Lemon ======
66 #declare SS=seed(7);
67 #declare R_uit= 3;
68 #declare R_in=2.9;
70 #declare Ring = difference {
71 cylinder {< 0 , 0, 0>, <1 , 0, 0>, R_uit}
72 cylinder {<-0.1, 0, 0>, <1.1, 0, 0>, R_in}
75 #declare R2_uit= 0.8;
76 #declare R2_in=0.7;
78 #declare Ring2 = difference {
79 cylinder {< 0 , 0, 0>, < 1 , 0, 0>, R2_uit}
80 cylinder {<-0.1, 0, 0>, < 1.1, 0, 0>, R2_in}
83 #declare LemonOut= intersection {
84 merge {
85 difference {
86 merge {
87 object {Ring translate < 0.01, 0, (R_uit+R_in)/2>}
88 object {Ring translate <-1.01, 0,-(R_uit+R_in)/2>}
90 box {<-1.1, 0.1,-1>, <1.1, 2, 1>}
92 difference {
93 box {<-1, 0,-(R_uit-R_in)/2>, < 1, 1.1, (R_uit-R_in)/2>}
94 box {
95 <-2.5, 0,-1>, <2.5, 2, 1>
96 translate <0, 0.5, 0>
97 rotate <0, 0,-20>
100 difference{
101 object {
102 Ring2
103 translate <-0.5, 0, 0>
104 scale <2.2, 1, 1>
105 translate < 0, 0, (R2_uit+R2_in)/2>
107 box {<-2.1, 0,-1>,<2.1,-3, 1>}
108 translate <0, 0.499999, 0>
109 rotate <0, 0,-20>
112 merge {
113 cylinder {<0, 0,-0.5>, <0, 0, 0.5>, 0.8}
114 torus {0.8, 0.2 scale <1, 1.1, 1> rotate <90, 0, 0>}
118 #declare BS1= array[24] {
119 < 24.8, 49.8>, < 13.0, 31.4>, < 4.0, 8.8>, < 0.1, 9.4>
120 < 0.1, 9.4>, <- 7.4, 10.7>, <-12.5, 30.4>, <-21.1, 49.8>
121 <-21.1, 49.8>, <-33.3, 76.9>, <-39.8, 87.0>, <-29.2, 91.4>
122 <-29.2, 91.4>, <-20.0, 95.3>, <-10.0, 95.9>, < 0.0, 95.9>
123 < 0.0, 95.9>, < 10.0, 95.9>, < 21.3, 95.8>, < 30.0, 90.7>
124 < 30.0, 90.7>, < 41.3, 84.0>, < 45.1, 86.5>, < 24.8, 49.8>
127 #declare BS2= array[24] {
128 < 24.8, 55.8>, < 13.0, 31.4>, < 4.0, 8.8>, < 0.1, 15.0>
129 < 0.1, 15.0>, <- 7.4, 10.7>, <-12.5, 30.4>, <-21.1, 49.8>
130 <-21.1, 49.8>, <-33.3, 76.9>, <-39.8, 87.0>, <-29.2, 91.4>
131 <-29.2, 91.4>, <-20.0, 95.3>, <-10.0, 95.9>, < 0.0, 95.9>
132 < 0.0, 95.9>, < 10.0, 95.9>, < 21.3, 95.8>, < 30.0, 90.7>
133 < 30.0, 90.7>, < 41.3, 84.0>, < 45.1, 86.5>, < 24.8, 55.8>
137 #declare BS3= array[24] {
138 < 23.0, 49.8>, < 13.0, 31.4>, < 4.0, 8.8>, < 0.1, 6.0>
139 < 0.1, 6.0>, <- 7.4, 10.7>, <-12.5, 30.4>, <-21.1, 49.8>
140 <-21.1, 49.8>, <-33.3, 76.9>, <-39.8, 87.0>, <-29.2, 91.4>
141 <-29.2, 91.4>, <-20.0, 95.3>, <-10.0, 95.9>, < 0.0, 95.9>
142 < 0.0, 95.9>, < 10.0, 95.9>, < 21.3, 95.8>, < 30.0, 90.7>
143 < 30.0, 90.7>, < 41.3, 84.0>, < 45.1, 85.0>, < 23.0, 49.8>
147 #declare BS4= array[24] {
148 < 24.8, 49.8>, < 13.0, 31.4>, < 4.0, 11.8>, < 0.1, 9.0>
149 < 0.1, 9.0>, <- 7.4, 13.7>, <-12.5, 30.4>, <-21.1, 49.8>
150 <-21.1, 49.8>, <-33.3, 76.9>, <-39.8, 87.0>, <-21.2, 91.4>
151 <-21.2, 91.4>, <-20.0, 95.3>, <-10.0, 95.9>, < 0.0, 95.9>
152 < 0.0, 95.9>, < 10.0, 95.9>, < 21.3, 95.8>, < 30.0, 90.7>
153 < 30.0, 90.7>, < 41.3, 84.0>, < 45.1, 86.5>, < 24.8, 49.8>
156 #declare J=0;
157 #declare Part1= prism {
158 bezier_spline
159 -0.5, 0.5, 24,
160 #while (J<24)
161 #declare P= BS1[J];
163 #declare J=J+1;
164 #end
165 scale < 0.0095, 1, 0.0095>
168 #declare J=0;
169 #declare Part2= prism {
170 bezier_spline
171 -0.5, 0.5, 24,
172 #while (J<24)
173 #declare P= BS2[J];
175 #declare J=J+1;
176 #end
177 scale < 0.0095, 1, 0.0095>
180 #declare J=0;
181 #declare Part3= prism {
182 bezier_spline
183 -0.5, 0.5, 24,
184 #while (J<24)
185 #declare P= BS3[J];
187 #declare J=J+1;
188 #end
189 scale < 0.0095, 1, 0.0095>
192 #declare J=0;
193 #declare Part4= prism {
194 bezier_spline
195 -0.5, 0.5, 24,
196 #while (J<24)
197 #declare P= BS4[J];
199 #declare J=J+1;
200 #end
201 scale < 0.0095, 1, 0.0095>
204 #declare LemonTex= texture {
205 pigment {
206 granite
207 scale <0.2,5,1>
208 colour_map {
209 [0.4 rgbf <1,0.65,0,0.4>]
210 [0.6 rgbf <1,0.8,0,0.4>]
211 [0.7 rgbf <1,0.9,0,0.6>]
212 [0.9 rgb <1,0.7,0>*1.5 ]
215 normal {granite -0.1 turbulence 0.3 scale <0.2,5,1>}
216 finish {
217 specular .9
218 roughness 0.01
222 #declare Parts= union {
223 object {Part1 }
224 object {Part2 rotate <0, 360/7 ,0>}
225 object {Part3 rotate <0,2*(360/7),0>}
226 object {Part4 rotate <0,3*(360/7),0>}
227 object {Part1 rotate <0,4*(360/7),0>}
228 object {Part2 rotate <0,5*(360/7),0>}
229 object {Part3 rotate <0,6*(360/7),0>}
230 rotate <90,0,0>
233 #declare LemonSlice = union {
234 intersection {
235 object {LemonOut}
236 object {Part1 rotate <90,0,0>}
237 texture {LemonTex rotate <90,0,0> translate rand(SS)*5}
239 intersection {
240 object {LemonOut}
241 object {Part2 rotate <0,360/7,0> rotate <90,0,0>}
242 texture {LemonTex rotate <0,360/7,0> rotate <90,0,0> translate rand(SS)*5}
244 intersection {
245 object {LemonOut}
246 object {Part3 rotate <0,2*(360/7),0> rotate <90,0,0>}
247 texture {LemonTex rotate <0,2*(360/7),0> rotate <90,0,0> translate rand(SS)*5}
249 intersection {
250 object {LemonOut}
251 object {Part4 rotate <0,3*(360/7),0> rotate <90,0,0>}
252 texture {LemonTex rotate <0,3*(360/7),0> rotate <90,0,0> translate rand(SS)*5}
254 intersection {
255 object {LemonOut}
256 object {Part1 rotate <0,4*(360/7),0> rotate <90,0,0>}
257 texture {LemonTex rotate <0,4*(360/7),0> rotate <90,0,0> translate rand(SS)*5}
259 intersection {
260 object {LemonOut}
261 object {Part2 rotate <0,5*(360/7),0> rotate <90,0,0>}
262 texture {LemonTex rotate <0,5*(360/7),0> rotate <90,0,0> translate rand(SS)*5}
264 intersection {
265 object {LemonOut}
266 object {Part3 rotate <0,6*(360/7),0> rotate <90,0,0>}
267 texture {LemonTex rotate <0,6*(360/7),0> rotate <90,0,0> translate rand(SS)*5}
270 difference { //outside
271 object {LemonOut}
272 object {Parts}
273 texture {
274 cylindrical
275 rotate <90,0,0>
276 texture_map {
277 [0.05, pigment {rgb <1,0.8,0>}
278 normal {granite .1 scale 0.1}
279 finish {phong 0.8 phong_size 20}
281 [0.06, pigment {rgb <1,0.9,0.7>}
282 normal {granite .07 scale 0.5}
289 //====== The Glass ======
291 #declare Ri=0.95;
293 #declare Glass= merge {
294 difference {
295 cylinder { -y*2,y*2,1 }
296 sphere {-y*0.8,Ri}
297 cylinder { -y*0.8,y*2.01,Ri}
298 sphere {-y*1.9,0.1}
300 torus {0.975, 0.026 translate <0,2,0>}
301 // texture {T_Glass1}
302 // interior {ior 1.5}
303 // converted to material 26Sep2008 (jh)
304 material {
305 texture {
306 pigment {color rgbf<1.0, 1.0, 1.0, 0.7>}
307 finish {F_Glass1}
309 interior {ior 1.5}
314 //====== The bubbles and the juce ======
316 #declare Bubble= difference {
317 sphere {0,0.1}
318 sphere {0,0.09999999}
321 #declare S= seed(7);
322 #declare I=0;
323 #declare Bubbles= intersection {
324 union {
325 #while (I<60)
326 object {
327 Bubble
328 scale rand(S)
329 scale <1,0.7,1>
330 translate <1,0.6,0>
331 rotate <0,360*rand(S),0>
333 object {
334 Bubble
335 scale rand(S)*0.5
336 translate <rand(S),0.58,0>
337 rotate <0,360*rand(S),0>
339 #declare I=I+1;
340 #end //while
342 cylinder{y*0.5,y*0.85,Ri+0.00000001}
345 #declare Liquid= merge {
346 sphere {-y*0.8,Ri+0.00000001}
347 cylinder {-y*0.8,y*0.6,Ri+0.00000001}
348 object {Bubbles}
349 pigment {rgbf <0.9, 0.1, 0.2, 0.95>}
350 finish {reflection 0.3}
351 interior{ior 1.2}
354 //====== The glass and juice =====
355 union {
356 object {Glass}
357 object {Liquid}
358 photons {
359 target
360 refraction on
361 reflection on
362 collect off
366 object {
367 LemonSlice
368 scale <0.8,0.8,1>
369 translate <-0.99,0,0>
370 rotate <0,-30,0>
371 translate <0,2,0>
372 photons {
373 pass_through