1// Persistence Of Vision raytracer version 3.5 sample file.
2//   This data includes 1 Wall, 1 large 2nd floor column,
3//   & 2 smaller ionic colums.
4
5//   b-snake.dat is the lower ctds twist that goes around the
6//   door openings.
7//   s-head3.dat is the head & top twist of creature
8//   turn.dat is ctds data that creates the ionic turned capitals.
9//   panther.dat is csg of panther figure.
10
11//  Modified for use in stereo pair. Two of the PNG
12//  images have been replaced with single colors, and a third column
13//  was added to the bottom row.
14//
15//  Three cameras are included, the original, and two for stereo.
16
17// gamma devised to approximate the illustration in Ray Tracing Creations II
18// updated for compatibility with POV-Ray v3.5 by Ken Tyler on 08-26-01
19//
20// -w320 -h240
21// -w800 -h600 +a0.3
22
23global_settings { assumed_gamma 1.8 }
24
25#include "colors.inc"
26#include "shapes.inc"
27#include "marble.inc"
28#include "b-snake.inc"
29#include "turn.inc"
30#include "panther.inc"
31#include "s-head3.inc"
32
33#declare pink = color red 1.0 green 0.5 blue 0.5;
34
35
36/* original camera */
37camera {
38   location <-50, 80, -220>
39   direction <0, 0, 1.5>
40   up <0, 1, 0>
41   right <4/3, 0, 0>
42}
43
44// Optional stereo views:
45/* camera for left eye, render at 768 x 480 or similar aspect ratio */
46/*
47camera {
48    location <-61, 80, -220>
49    direction <0, 0, 1.4>
50    up <0, 1, 0>
51    right <1.6, 0, 0>
52}
53*/
54
55/* camera for right eye, render at 768 x 480 or similar aspect ratio */
56/*
57camera {
58    location <-39, 80, -220>
59    direction <0, 0, 1.4>
60    up <0, 1, 0>
61    right <1.6, 0, 0>
62}
63*/
64
65/*-------------- WORLD WALLS ---------------------------------*/
66sphere {
67   <0, 0, 0>, 50000
68   hollow on
69   texture {
70      pigment { MidnightBlue }
71      finish {
72         ambient 1.0
73         diffuse 0.0
74      }
75   }
76}
77
78/*---------------LIGHT #1------------------------------------*/
79light_source { <700, 150, -500> color White }
80
81/*--------------LIGHT #2-------------------------------------*/
82light_source { <-4000, 100, -1000> color White }
83
84
85/**********************************************************************/
86
87/*-----------BASE OF COLUMN A / TOP FLOOR-------------------*/
88#declare base_a = union {
89   sphere { <0, 0, 0>, 1 scale <13, 5.5, 13> }
90   sphere { <0, 0, 0>, 1 scale <11, 3, 11> translate 4*y  }
91   cylinder { <0,0,0>, y, 1 scale <10, 4, 10> translate 5*y }
92
93   texture {
94      marble1
95      scale <9, 6, 4>
96      finish {
97         ambient 0.5
98         diffuse 1
99      }
100   }
101   texture {
102      marble4
103      scale <7, 12, 9>
104      rotate <0, 0, -40>
105      finish {
106         diffuse 1.0
107         phong 0.6
108         phong_size 50
109      }
110   }
111
112   rotate 40*y
113}
114
115/*-----------MOTIF TILE WORK--------------------*/
116#declare motif1 = cylinder {
117   <0,0,0>, y, 1
118   scale <9.5, 7, 9.5>
119
120   texture {
121      pigment {
122         image_map { png "congo4.png" }
123         scale <19, 7, 1>
124         translate <-9.5, 0, -1>
125       }
126       finish {
127          ambient 0.3
128          diffuse 0.9
129          phong 0.6
130       }
131    }
132 }
133
134
135/*----------- COLUMN A -------------------------------------------------*/
136#declare column_a = cylinder {
137   <0,0,0>, y, 1
138   scale <9.3, 50, 9.3>
139
140   texture {
141      marble1
142      finish {
143         crand 0.01
144         ambient 0.2
145         diffuse 0.8
146      }
147      scale <16, 4, 4>
148   }
149   texture {
150      marble2
151      scale <10, 6, 5>
152      rotate -30*z
153      finish { diffuse 1.0 }
154   }
155   texture {
156      marble4
157      finish {
158         phong 0.6
159         phong_size 45
160      }
161      scale <8, 15, 5>
162      rotate <0, 0, 50>
163   }
164
165   rotate 10*y
166}
167
168
169
170/*-----------COMBINE COLUMN & BASE --------------------------------*/
171#declare top_column = union {
172   object { base_a }
173   object { motif1 translate 9*y }
174   object { column_a translate 12*y }
175}
176
177
178/*--------------------TOP  FLOOR---------------------------------------*/
179#declare gfloor = object {
180   Cube
181   scale <100, 1, 50>
182
183   texture {
184      pigment { Salmon }
185      finish {
186         ambient 0.2
187         diffuse 0.5
188         phong 1.0
189         phong_size 10
190      }
191   }
192}
193
194/*----------- ROUND CORNER ----------------------------*/
195#declare sp1 = sphere { <0, 0, 0>, 2 }
196
197#declare round_cap = object {
198   union {
199      object { sp1 translate <-100, 0, -50> }
200      object { sp1 translate <-100, 0,  50> }
201      object { sp1 translate <100, 0, -50> }
202      object { sp1 translate <100, 0,  50>  }
203      cylinder { <0,0,0>, x, 1 scale <200, 2, 2> translate <-100, 0, -50> }
204      cylinder { <0,0,0>, z, 1 scale <2, 2, 100> translate <-100, 0, -50> }
205   }
206
207   texture {
208      marble1
209      scale <50, 10, 40>
210      finish {
211         ambient 0.4
212         diffuse 0.9
213      }
214   }
215   texture {
216      marble2
217      scale <40, 5, 20>
218      rotate <0, 0, 40>
219   }
220   texture {
221      marble4
222      scale <20, 20, 20>
223      rotate <0, 0, -40>
224      finish { phong 0.6 phong_size 20 }
225   }
226}
227
228/*--------------- ONE DENTILE ----------------------------------*/
229#declare d1 = object { Cube scale <1, 1.5, 2> }
230
231#declare cornice = union {
232   object { Cube scale <103, 0.5, 53> translate <0, 2.5, 0> }
233   object { Cube scale <103, 1, 53>   translate <0, -2, 0>  }
234   object { Cube scale <101, 2, 51>   translate <0, 0, 0>   }
235
236   texture {
237      marble1
238      scale <10, 6, 4>
239      finish {
240         ambient 0.4
241         diffuse 1.0
242      }
243   }
244   texture {
245      marble2
246      scale <7, 6, 4>
247      rotate <0, 0, 40>
248   }
249   texture {
250      marble4
251      scale <3, 6, 5>
252      rotate <0, 0, -40>
253      finish {
254         phong 0.6
255         phong_size 20
256      }
257   }
258}
259
260/*-------------------- ROW OF DENTILES ---------------*/
261#declare dentile_a = union {
262   object { d1 translate -50*x }
263   object { d1 translate -45*x }
264   object { d1 translate -40*x }
265   object { d1 translate -35*x }
266   object { d1 translate -30*x }
267   object { d1 translate -25*x }
268   object { d1 translate -20*x }
269   object { d1 translate -15*x }
270   object { d1 translate -10*x }
271   object { d1 translate  -5*x }
272   object { d1 translate   0*x }
273   object { d1 translate  50*x }
274   object { d1 translate  45*x }
275   object { d1 translate  40*x }
276   object { d1 translate  35*x }
277   object { d1 translate  30*x }
278   object { d1 translate  25*x }
279   object { d1 translate  20*x }
280   object { d1 translate  15*x }
281   object { d1 translate  10*x }
282   object { d1 translate   5*x }
283
284   texture {
285      marble1
286      scale <10, 6, 4>
287      finish {
288         ambient 0.4
289         diffuse 0.9
290      }
291   }
292   texture {
293      marble2
294      scale <7, 6, 4>
295      rotate <0, 0, 40>
296   }
297   texture {
298      marble4
299      scale <3, 6, 4>
300      rotate <0, 0, -40>
301      finish {
302         phong 0.6
303         phong_size 20
304      }
305   }
306}
307
308/*--------------  COMBINE CORNICE, FLOOR, CAP & DENTILES -----------*/
309#declare top_floor = union {
310   object { gfloor    translate <0, 9, 0>     }
311   object { round_cap translate <0, 7, 0>     }
312   object { cornice   translate <0, 3, 0>     }
313   object { dentile_a translate <-50, 4, -52> }
314   object { dentile_a translate < 50, 4, -52>  }
315}
316
317/*------------------MAKE AN IONIC CAPIAL---------------------------*/
318
319#declare turn = object { s1 rotate -90*x }
320
321/*--------------- 1/2 SECTION OF CAP ------------------------------*/
322#declare cap_a = union {
323   sphere {
324      <0, 0, 0>, 1
325      scale <7, 2, 7>
326      translate <0, 1, 0>
327   }
328   cylinder {
329      <0,0,0>, y, 1
330      scale <6, 5, 6>
331      translate <0, 2, 0>
332   }
333   sphere {
334      <0, 0, 0>, 1
335      scale <8, 3, 8>
336      translate <0, 8, 0>
337   }
338   cylinder {
339      <0,0,0>, y, 1
340      scale <8, 2, 8>
341      translate <0, 8, 0>
342   }
343
344   texture {
345      marble1
346      finish {
347         ambient 0.4
348         diffuse 1.0
349      }
350      scale <5, 13, 4>
351   }
352   texture {
353      marble4
354      finish {
355         diffuse 1.0
356         phong 0.6
357         phong_size 20
358      }
359      scale <5, 7, 3>
360      rotate <0, 0, 50>
361   }
362}
363
364
365/*-------------- THE OTHER 1/2-----------------------------*/
366#declare cap_b = union {
367   cylinder { <0,0,0>, y, 1 scale <1.2, 8, 1.2> translate <1, 0, -4>  }
368   cylinder { <0,0,0>, y, 1 scale <1.2, 8, 1.2> translate <-1, 0, -4> }
369
370   cylinder { <0,0,0>, y, 1 scale <1.2, 4, 1.2> translate <-2, 0, -4> }
371   cylinder { <0,0,0>, y, 1 scale <1.2, 4, 1.2> translate <2, 0, -4>  }
372
373   object { Cube scale <10, 2, 8> translate <0, 10, 2> }
374   object { Cube scale <7, 4, 4> translate <0, 4, 0>  }
375   cylinder { <0,0,0>, z, 1 scale <4.5, 4.5, 8> translate <-6, 4, -4> }
376   cylinder { <0,0,0>, z, 1 scale <4.5, 4.5, 8> translate <6, 4, -4>  }
377
378   texture {
379      marble1
380      finish {
381         ambient 0.4
382         diffuse 1.0
383      }
384      scale <5, 13, 4>
385   }
386   texture {
387      marble4
388      finish {
389         diffuse 1.0
390         phong 0.6
391         phong_size 20
392      }
393      scale <5, 7, 3>
394      rotate 50*z
395   }
396}
397
398
399/*-----------2 HALFS & 2 TURNS MAKE A WHOLE ------------------------*/
400#declare capital = union {
401   object { cap_a translate <0, 0, 0> }
402   object { cap_b translate <0, 10, 0> }
403   object { turn translate <-6, 14, -4> }
404   object { turn rotate <0, 180, 0> translate <6, 14, -4> }
405}
406
407/*--------------MAKE COLUMN-------------------*/
408
409
410/*-----------MOTIF TILE WORK--------------------*/
411#declare motif2 = cylinder {
412   <0,0,0>, y, 1
413   scale <6.5, 8, 6.5>
414
415   texture {
416      pigment {
417         image_map { png "congo4.png" }
418         scale <13, 8, 1>
419         translate <-6.5, 0, -1>
420      }
421      finish {
422         ambient 0.3
423         diffuse 0.9
424         phong 1.0
425      }
426   }
427}
428
429#declare column_b = cylinder {
430   <0,0,0>, y, 1
431   scale <6, 54, 6>
432
433   texture {
434      marble1
435      finish {
436         ambient 0.4
437         diffuse 0.8
438         crand 0.1
439      }
440      scale <9, 30, 18>
441   }
442   texture {
443      marble2
444      scale <10, 18, 5>
445      rotate <0, 0, -30>
446      finish { diffuse 1.0 }
447   }
448   texture {
449      marble4
450      finish {
451         diffuse 0.9
452         phong 0.8
453         phong_size 45
454      }
455      scale <4, 15, 5>
456      rotate 50*z
457   }
458}
459
460
461/*-----------THE COMPLETE BOTTOM COLUMN---------------------------------*/
462#declare bottom_column = union {
463   object { capital  translate <0, 58, 0> }
464   object { motif2   translate <0, 50, 0>  }
465   object { column_b translate <0, 0, 0> }
466}
467
468/*---------------------START LOWER WALLS-----------------------------*/
469
470/*----------- ABOVE DOOR SECTION OF WALL -----------------------------*/
471#declare brick_wall = object {
472   Cube
473   scale <30, 6, 3>
474
475   texture {
476      marble1
477      finish {
478         ambient 0.2
479         diffuse 0.9
480      }
481      scale <20, 30, 4>
482   }
483   texture {
484      marble2
485      scale <20, 9, 5>
486      finish { diffuse 1.0 }
487      rotate -30*z
488   }
489   texture {
490      marble4
491      finish {
492         phong 0.6
493         phong_size 25
494      }
495      scale <18, 18, 3>
496      rotate 50*z
497   }
498}
499
500/*-------------- ARCH SECTION OF WALL --------------------------------*/
501#declare top_wall = object {
502   difference {
503      object { Cube scale <30, 10, 3> translate <0, 0, 0.01> }
504      object { Cylinder_Z scale <13, 13, 1> translate <0, -10, 0> }
505   }
506
507   texture {
508      marble1
509      finish {
510         ambient 0.2
511         diffuse 0.9
512      }
513      scale <30, 20, 4>
514   }
515   texture {
516      marble2
517      scale <26, 16, 5>
518      finish { diffuse 1.0 }
519      rotate -30*z
520   }
521   texture {
522      marble4
523      finish {
524         phong 0.6
525         phong_size 25
526      }
527      scale <15, 27, 2>
528      rotate 50*z
529   }
530}
531
532
533/*------------------ TRIM ---------------------------------------------*/
534#declare molding_2 = union {
535   difference {
536      cylinder { <0,0,0>, z, 1 scale <16, 16, 12> translate <0, 0, -6>  }
537      object { Cylinder_Z scale <13, 13, 1> }
538   }
539   object { Cube scale <10, 2, 6> translate <-21, -2, 0>  }
540   object { Cube scale <10, 2, 6> translate <21, -2, 0>  }
541   object { Cube scale <31, 1, 6> translate <0, 17, 0>  }
542
543   texture {
544      marble1
545      finish {
546         ambient 0.5
547         diffuse 1.0
548      }
549      scale <15, 3, 4>
550   }
551   texture {
552      marble4
553      finish {
554         phong 0.8
555         phong_size 15
556         ambient 0.6
557      }
558      scale <15, 7, 6>
559      rotate 50*z
560   }
561}
562
563#declare motif3 = object {
564   Cube
565   scale <9.5, 5, 3.1>
566
567   texture {
568      pigment {
569         image_map { png "congo4.png"  }
570         scale <19, 10, 1>
571         translate <-9.5, -5, -1>
572      }
573      finish {
574         ambient 0.3
575         diffuse 0.9
576         phong 1.0
577      }
578   }
579}
580
581/*----------WALLS FLANKING DOOR WAY -----------------------------------*/
582#declare low_wall = object {
583   Cube
584   scale <9, 22, 3>
585
586   texture {
587      marble1
588      finish {
589         ambient 0.3
590         diffuse 0.9
591      }
592      scale <15, 20, 7>
593   }
594   texture {
595      marble2
596      scale <10, 25, 3>
597      finish { diffuse 1.0 }
598      rotate <0, 0, -30>
599   }
600   texture {
601      marble4
602      finish {
603         phong 0.8
604         phong_size 25
605         ambient 0.5
606      }
607      scale <8, 16, 3>
608      rotate 50*z
609   }
610}
611
612/*----------COMPOSITE THE WALL------------------------------*/
613
614#declare wall = union {
615   object { low_wall translate <-21, 22, 0>  }
616   object { low_wall translate <21, 22, 0>  }
617   object { motif3 translate <-21, 42, 0>  }
618   object { motif3 translate <21, 42, 0>  }
619   object { molding_2 translate <0, 50, 0>  }
620   object { top_wall translate <0, 60, 0>  }
621   object { brick_wall translate <0, 74, 0>  }
622}
623
624
625/*--------CREATE INSIDE BACK WALL-----------------------*/
626object {
627   Cube
628   scale <95, 55, 1>
629
630   texture {
631      marble1
632      finish {
633         ambient 0.2
634         diffuse 0.9
635      }
636      scale <40, 30, 5>
637   }
638   texture {
639      marble2
640      scale <30, 60, 3>
641      rotate -30*z
642   }
643   texture {
644      marble4
645      finish {
646         phong 0.8
647         phong_size 25
648      }
649      scale <30, 20, 3>
650      rotate 50*z
651   }
652   translate <0, 15, 10>
653}
654
655
656/*----------*** PUT UP THE WALLS ****--------------------*/
657
658object { top_column rotate 10*y  scale 1.9 translate <-30, 94, -25> }
659object { top_floor  translate <-10, 80, 0> }
660object { bottom_column scale <1.3, 1, 1.3> translate <-100, 0, -40>  }
661object { bottom_column scale <1.3, 1, 1.3> translate <-30, 0, -40>  }
662object { bottom_column scale <1.3, 1, 1.3> translate <40, 0, -40>  }
663object { wall translate <5, 0, -32>    }
664object { wall translate <-65, 0, -32>  }
665
666
667   /*---------------------BACKDROP---------------------------------*/
668object {
669   Cube
670   scale <2000, 1500, 1>
671
672   texture {
673      pigment { Maroon }
674      finish {
675         ambient 0.2
676         diffuse 0.6
677      }
678   }
679
680   texture {
681      pigment {
682         gradient y
683         color_map {
684            [0.0 0.3 color Salmon color BlueViolet filter 0.3]
685            [0.3 1.0 color BlueViolet filter 0.3 color Black filter 0.2]
686         }
687         scale <4000, 3000, 1>
688         translate <0, -1500, 0>
689      }
690      finish {
691         ambient 1.0
692         diffuse 0.0
693      }
694   }
695   scale <1, 1, 1>
696   translate <0, 0, 2000>
697}
698
699
700/*------------------- CREATURE & MOTHER-IN-LAW -------------------------*/
701
702object {
703   panther
704   rotate -20*y
705   scale 1.2
706   translate <-70, 89.5, -10>
707}
708
709object {
710   lizard
711   scale <1, 0.9, 1>
712   rotate -10*z
713   translate <-33, 16, -20>
714}
715
716#declare snake = union {
717    object { top }
718    object {
719       head
720       scale <1.9, 1.6, 1.6>
721       rotate <0, -90, -90>
722       translate <23, 0, -13>
723    }
724    rotate <-90, -180, -90>
725}
726
727object { snake  translate <-4, 87, -68> }
728
729// end-of-file
730