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