POV-Ray : Newsgroups : povray.text.scene-files : Pensacola Lighthouse vers 1 Server Time
8 Jul 2024 11:31:43 EDT (-0400)
  Pensacola Lighthouse vers 1 (Message 1 to 1 of 1)  
From: Bob Hughes
Subject: Pensacola Lighthouse vers 1
Date: 27 Aug 2000 01:47:05
Message: <39a8ab59@news.povray.org>
// Persistence of Vision Ray Tracer Scene Description File
// File: pensacola lighthouse.pov
// Vers: 3.1g, MegaPov 0.5a
// Desc: Historic Pensacola Lighthouse
// Date: 2000.653
// Auth: Bob Hughes
// Mail: per### [at] aolcom?subject=Pov-Scene
// Note: version 1. Can be used without MegaPov.
//       Prototype scene with redundancy, uncommented and not accurately modeled.

/*
Pensacola Lighthouse Facts
Built - 1857-58
First lit - January 1, 1859
Designer - Captain John Newton, U.S. Army Corps of Engineers
Cost of construction including keeper's quarters and range beacons - $55,000
Construction materials - brick with concrete fill; granite foundation
Height of focal plane (light beam) above sea level - 191 feet
Height of focal plane above ground - 150 feet
Number of steps to lantern - 177
Diameter of tower at base - 30 feet
Diameter of tower at top - 15 feet
Optic - 1st order Fresnel lens
Light Source - electric bulb
Range - 27 miles
Characteristic of light - flashing white; 20 second interval
Characteristic of tower - lower third white; upper two thirds black
Current owner and operator - U. S. Coast Guard.
*/

#declare Use_MP=no; // MegaPov or not?

#if (Use_MP=yes)
#version unofficial MegaPov 0.5;
#end

global_settings {
        assumed_gamma 2.4
        max_trace_level 9
#if (Use_MP=yes)
  ambient_light 1.1*1.5 // use .1 or 0 if radiosity used also
 ini_option "+qr"
 radiosity { media on }
#end
}

#declare Clock=clock;

// Chris Colefax's ClockMod Include needed for animation
#declare clock_type="A"
#include "clockmod.inc"
#declare ClockML=1-mclock;
#declare ClockMC=mclock;

light_source {-9999*z, <1.5-(.75*ClockML),1.5-(.95*ClockML),1.5-(1.1*ClockML)>
         rotate <60-(57.5*ClockML),-30+(45*ClockML),0>
 media_interaction off
}

light_source {9999*y,<.15,.25,.33>*2*ClockML shadowless}

camera {location <-33,5.5,-333+(80*ClockMC)>
        angle 40
       rotate <(70*ClockMC),-30+(45*ClockMC),0> rotate -15*y
        look_at <-12.5+(-5*ClockMC),80+(40*ClockMC),(-7.5*ClockMC)>
}

// no sky_sphere here because of media being used
sphere{0,1
  pigment {
    gradient y
    color_map {
         [0 color rgb <.8,.75,.85>]
         [.1 color rgb <.5,.75,1>]
         [.4 color rgb <.33,.67,.9>]
         [1 color rgb <.25,.33,.75>]
          }
  }
  finish {ambient 1.5-(.5*ClockML) diffuse .5} // try a diffuse of 1.5 for radiosity
   scale 10000
 hollow
}

plane {y,0 pigment {granite frequency 2 color_map {
         [0 color rgb <.8,.8,.8>]
         [.1 color rgb <.85,.85,.85>]
         [.3 color rgb <.775,.75,.7>]
         [.67 color rgb <.75,.7,.65>]
         [.75 color rgb <.67,.5,.33>]
         [.8 color rgb <.5,.33,.25>]
         [.99 color rgb <.2,.45,.35>]
         } scallop_wave scale 50}
        normal {granite -.5 scale 1.5}
        finish {ambient .25 diffuse .75 specular .025 roughness .25}
}


media { method 2
  intervals 3 // raise this if more lights are used
  scattering { 5, rgb .01 extinction .75 eccentricity .25}
  samples 6, 6
  density {rgb 0.01}
}


// lighthouse
union {

// foundation
#declare FC=0;
union {
#while (FC<24)
 box {-1,1 scale <2,1.5,1> translate <0,.5,15.5> rotate 15*FC*y}
 box {-1,1 scale <2,.5,.5> translate <0,2.5,14.75> rotate 15*FC*y}
#declare FC=FC+1;
#end
 texture {
        pigment {rgb 1.1}
        normal {granite .125 scale 1.5}
        finish {ambient .175 diffuse .8 specular .15 roughness .5 phong .125
phong_size 10
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
 }
}

// main tower
union {
difference {
cone {0,15,127.5*y,8.25}
// window and interior cutaways
union {
cone {0,14,127.5*y,8}
 box {-1,1 scale <1.25,2.5,2> translate <0,110,-9> rotate 75*y}
 box {-1,1 scale <1.25,2.5,2> translate <0,88.75,-10.25> rotate 255*y}
 box {-1,1 scale <1.25,2.5,2> translate <0,35,-13> rotate 165*y}
  pigment {rgb 1.1}
}
}
// windows
union {
 box {-1,1 scale <1.25,2.5,.02> translate <0,110,-8.5> rotate 75*y}
 box {-1,1 scale <1.25,2.5,.02> translate <0,88.75,-10.33> rotate 255*y}
 box {-1,1 scale <1.25,2.5,.02> translate <0,35,-13.125> rotate 165*y}
        pigment {rgbft <.8,.8,.8,.7,.1>}
        finish {ambient .0125 diffuse .125 specular .75 roughness .0025
#if (Use_MP=yes)
                reflection_type 0 reflection_min .125 reflection_max .33
#end
        }
        interior {ior 1.5 caustics 1}
}
 texture {
        pigment {gradient y
                color_map {
                        [.333 rgb 1.1] [.333 rgb .175]
        } scale 150}
        normal {brick .5 scallop_wave scale .5}
        finish {ambient .175 diffuse .8 specular .15 roughness .5 phong .125
phong_size 10
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
 }
 texture {
        pigment {spotted
                color_map {
                        [.33 rgbf .98] [.67 rgbf <.8,.8,.8,.8>]}
                scale 5}
        normal {gradient y .5 scallop_wave scale 10}
        finish {ambient .25 diffuse .6 specular .1 roughness .125 phong .1 phong_size
2
#if (Use_MP=yes)
                reflection_type 0 reflection_min .0125 reflection_max .0133
#end
                }
 }
}

// topmost part of tower, below light room
cone {127.5*y,8.25,145*y,7.5
 texture {
        pigment {rgb .175}
        normal {brick .2}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
 }
 texture {
        pigment {spotted
                color_map {
                        [.33 rgbf .98] [.67 rgbf <.8,.8,.8,.8>]}
                scale 5}
        normal {brick .2}
        finish {ambient .25 diffuse .6 specular .1 roughness .125 phong .1 phong_size
2
#if (Use_MP=yes)
                reflection_type 0 reflection_min .0125 reflection_max .0133
#end
                }
 }
}

// dayboard brackets
union {
cylinder {0*z,4*z,.333 rotate -30*x}
cylinder {-1*z,4*z,.333}
cylinder {0*z,4*z,.333 rotate 30*x}
        pigment {rgb .175}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10}
 translate <0,111,-12.5>
}

union {
cylinder {0*z,4*z,.333 rotate -30*x}
cylinder {-1*z,4*z,.333}
cylinder {0*z,4*z,.333 rotate 30*x}
        pigment {rgb .175}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10}
 translate <0,117.5,-12.5>
}

cylinder {-12.5*z,-8.5*z,.333 translate 132.25*y
        pigment {rgb .175}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10}
}

cylinder {-12.5*z,-8.5*z,.333 translate 142.25*y
        pigment {rgb .175}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10}
}

// dayboard
box {0,-1
        pigment {gradient z color_map {
                [.4 rgb <1.25,.67,.125>] [.4 rgb 1.33] [.6 rgb 1.33] [.6 rgb
<1.25,.67,.125>]
                }}
        finish {ambient .3 diffuse .8}
         scale <.1,12,6> translate <0,130.5,-11.5>
}

// lower deck
difference {
cone {127.5*y,8.25,132.5*y,10}
cone {129*y,7.75,132.6*y,9.5}
 texture {
        pigment {rgb .175}
        normal {brick .2}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
 }
 texture {
        pigment {spotted
                color_map {
                        [.33 rgbf .98] [.67 rgbf <.8,.8,.8,.8>]}
                scale 5}
        normal {brick .2}
        finish {ambient .25 diffuse .6 specular .1 roughness .125 phong .1 phong_size
2
#if (Use_MP=yes)
                reflection_type 0 reflection_min .0125 reflection_max .0133
#end
                }
 }
}

difference {
cone {132.5*y,10,133*y,10}
cone {132*y,9.5,133.1*y,9.5}
 texture {
        pigment {rgb .175}
        normal {brick .2}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
 }
 texture {
        pigment {spotted
                color_map {
                        [.33 rgbf .98] [.67 rgbf <.8,.8,.8,.8>]}
                scale 5}
        normal {brick .2}
        finish {ambient .25 diffuse .6 specular .1 roughness .125 phong .1 phong_size
2
#if (Use_MP=yes)
                reflection_type 0 reflection_min .0125 reflection_max .0133
#end
                }
 }
}
// rail
torus {9.9,.19 translate 137.5*y
        pigment {rgb .175}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
}
// posts
#declare BC=0;
union {
#while (BC<72)
 cylinder {-y,y,.125 scale <1,2,1.25> translate <0,135.5,9.9> rotate 5*BC*y}
#declare BC=BC+1;
#end
  pigment {rgb .175} finish {ambient .15 diffuse .5 specular .25 roughness .025
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
  }
}

// wall facets
#declare WC=0;
union {
#while (WC<12)
 box {-1,1 scale <1.75,2.5,.05> translate 7*z rotate 30*WC*y}
#declare WC=WC+1;
#end
 texture {
        pigment {rgb .175}
        normal {brick .2}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
 }
 texture {
        pigment {spotted
                color_map {
                        [.33 rgbf .98] [.67 rgbf <.8,.8,.8,.8>]}
                scale 5}
        normal {brick .2}
        finish {ambient .25 diffuse .6 specular .1 roughness .125 phong .1 phong_size
2
#if (Use_MP=yes)
                reflection_type 0 reflection_min .0125 reflection_max .0133
#end
                }
 }
 translate 145*y
}

// upper deck
difference {
cone {142*y,8,142.5*y,10}
cone {142.5*y,7.5,142.6*y,9.5}
 texture {
        pigment {rgb .175}
        normal {brick .2}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
 }
 texture {
        pigment {spotted
                color_map {
                        [.33 rgbf .98] [.67 rgbf <.8,.8,.8,.8>]}
                scale 5}
        normal {brick .2}
        finish {ambient .25 diffuse .6 specular .1 roughness .125 phong .1 phong_size
2
#if (Use_MP=yes)
                reflection_type 0 reflection_min .0125 reflection_max .0133
#end
                }
 }
}

difference {
cone {142.5*y,10,143*y,10}
cone {142.75*y,9.5,143.1*y,9.5}
 texture {
        pigment {rgb .175}
        normal {brick .2}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
 }
 texture {
        pigment {spotted
                color_map {
                        [.33 rgbf .98] [.67 rgbf <.8,.8,.8,.8>]}
                scale 5}
        normal {brick .2}
        finish {ambient .25 diffuse .6 specular .1 roughness .125 phong .1 phong_size
2
#if (Use_MP=yes)
                reflection_type 0 reflection_min .0125 reflection_max .0133
#end
                }
 }
}
// rail
torus {9.9,.19 translate 147.5*y
        pigment {rgb .175}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
}
// posts
#declare BC=0;
union {
#while (BC<72)
 cylinder {-y,y,.125 scale <1,2,1.25> translate <0,145.5,9.9> rotate 5*BC*y}
#declare BC=BC+1;
#end
  pigment {rgb .175} finish {ambient .15 diffuse .5 specular .25 roughness .025
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
  }
}

// glass
#declare WC=0;
union {
#while (WC<12)
 box {-1,1 scale <1.75,5,.05> translate 7*z rotate 30*WC*y}
union {
difference {
 box {-1,1 scale <1.8,5.125/2,.075>}
 box {-1,1 scale <1.75,4.975/2,.1>} translate 2.5*y
}
difference {
 box {-1,1 scale <1.8,5.125/2,.075>}
 box {-1,1 scale <1.75,4.975/2,.1>} translate -2.5*y
}
  pigment {rgb .175} finish {ambient .15 diffuse .5 specular .25 roughness .025}
  translate 7*z rotate 30*WC*y}
#declare WC=WC+1;
#end
        pigment {rgbft <.8,.8,.8,.7,.1>}
        finish {ambient .0125 diffuse .125 specular .75 roughness .0025
#if (Use_MP=yes)
                reflection_type 1 reflection_min .125 reflection_max .33
#end
        }
        interior {ior 1.5 caustics 1}
 translate 150*y
}

// roof
union {
cone {154.9*y,7.125,155.25*y,6.67 open}

#declare RC=0;
#while (RC<18)
union {
cylinder {-2*x,2*x,8.5
         clipped_by {box {0,1 rotate -45*y scale <2.125,5,12> translate 3.75*y}}}
sphere {0,1 scale <.25,.275,.3> rotate 36*x translate <0,3.5,7.7> rotate 10*y}
 rotate 20*RC*y translate 151*y
}
#declare RC=RC+1;
#end

sphere {161.75*y,1.5}
torus {2.75,1.75
         clipped_by {sphere {0,2.125 translate -1.33*y}}
          scale <1,.667,1> translate 160.35*y}

 texture {
        pigment {rgb .175}
        normal {bumps .1}
        finish {ambient .175 diffuse .67 specular .15 roughness .5 phong .125
phong_size 10
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
 }
 texture {
        pigment {spotted
                color_map {
                        [.33 rgbf .98] [.67 rgbf <.8,.8,.8,.8>]}
                scale 5}
        normal {bumps .1}
        finish {ambient .25 diffuse .6 specular .1 roughness .125 phong .1 phong_size
2
#if (Use_MP=yes)
                reflection_type 0 reflection_min .0125 reflection_max .0133
#end
                }
 }
}

// antenna
cylinder {161.5*y,171*y,.2
  pigment {rgb .25}
   finish {ambient .15 diffuse .75 specular .25 roughness .025 phong .125 phong_size
10
#if (Use_MP=yes)
                reflection_type 0 reflection_min .125 reflection_max .33
#end
  }
}

// light beam
union {
sphere {0,1 scale <1.75,1.75,.25> translate -1.5*z
        pigment {rgbft <1.5,1.5,1.5,1.1,.1>}
         finish {ambient 9 diffuse 9 specular 1 roughness 1
#if (Use_MP=yes)
                reflection_type 1 reflection_min .125 reflection_max .33
#end
                }
}
light_source {6*z,1
       // looks_like {Fresnel}
        spotlight point_at -z radius 3 falloff 6 tightness 9
        fade_distance 999 fade_power 2
 media_interaction on media_attenuation on
}
        translate 150*y rotate -60*y rotate 360*Clock*y
}

// connecting house
difference {
box {-1,1 rotate 45*x scale <12.5,7.5,10> translate <-17.5,17.5,0>}
box {-1,1 rotate 45*x scale <12.6,7.5,10> translate <-17.5,17,0>}
        pigment {rgb<1,.33,.25>}
        normal {brick .1 scale <1.5,.25,1>}
        finish {ambient .1 diffuse .67 specular .125 roughness .5
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
}
box {-1,1 scale <12.5,8.75,10> translate <-17.5,8.75,0>
        pigment {rgb 1.1}
        normal {brick .1 scale <5,1,5>}
        finish {ambient .2 diffuse .7 specular .15 roughness .5
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
}

 rotate -15*y // shift lighthouse position in relation to main house
}

// main house
union {
// main
difference {
box {-1,1 scale <32,13,12>}
plane {-y,0 rotate -25*x translate 13*y}
plane {-y,0 rotate 25*x translate 13*y}
 pigment {rgb 1.1}
        normal {gradient y .2 scale <1,.5,1>}
        finish {ambient .2 diffuse .7 specular .15 roughness .5
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
 translate <-40,14,-40>
}
// roof
difference {
box {-1,1 rotate 45*x scale <38,7.5,15> translate <-40,17.5,-40>}
box {-1,1 rotate 45*x scale <38.1,7.5,15> translate <-40,17,-40>}
        pigment {rgb<1,.33,.25>}
        normal {brick .1 scale <1.5,.25,1>}
        finish {ambient .1 diffuse .67 specular .125 roughness .5
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
}
// upper porch
box {-1,1 scale <37.5,1.75,17.5> translate <-40,12,-40>
        pigment {gradient x color_map {[.25 rgb 1.1][.25 rgbf 1]} scale 2}
        finish {ambient .2 diffuse .7 specular .15 roughness .5}
}
box {-1,1 scale <37.5,.5,17.5> translate <-40,10.25,-40>
        pigment {rgb 1.1}
        normal {brick .1 scale <5,1,5>}
        finish {ambient .2 diffuse .7 specular .15 roughness .5
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
}
difference {
box {-1,1 scale <37.5,.5,17.5> translate <-40,13.75,-40>}
box {-1,1 scale <37.25,.51,17.25> translate <-40,13.75,-40>}
        pigment {rgb 1.1}
        normal {brick .1 scale <5,1,5>}
        finish {ambient .2 diffuse .7 specular .15 roughness .5
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
}
// lower porch
box {-1,1 scale <37.5,1.75,17.5> translate <-40,4,-40>
        pigment {gradient x color_map {[.25 rgb 1.1][.25 rgbf 1]} scale 2}
        finish {ambient .2 diffuse .7 specular .15 roughness .5}
}
box {-1,1 scale <37.5,.5,17.5> translate <-40,2.25,-40>
        pigment {rgb 1.1}
        normal {brick .1 scale <5,1,5>}
        finish {ambient .2 diffuse .7 specular .15 roughness .5
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
}
difference {
box {-1,1 scale <37.5,.5,17.5> translate <-40,5.75,-40>}
box {-1,1 scale <37.25,.51,17.25> translate <-40,5.75,-40>}
        pigment {rgb 1.1}
        normal {brick .1 scale <5,1,5>}
        finish {ambient .2 diffuse .7 specular .15 roughness .5
#if (Use_MP=yes)
                reflection_type 0 reflection_min .025 reflection_max .033
#end
                }
}
//posts
union {
box {-1,1 scale <.4,9,.4> translate <-37.5,0,-17.5>}
box {-1,1 scale <.4,9,.4> translate <-27.5,0,-17.5>}
box {-1,1 scale <.4,9,.4> translate <-17.5,0,-17.5>}
box {-1,1 scale <.4,9,.4> translate <-7.5,0,-17.5>}
box {-1,1 scale <.4,9,.4> translate <7.5,0,-17.5>}
box {-1,1 scale <.4,9,.4> translate <17.5,0,-17.5>}
box {-1,1 scale <.4,9,.4> translate <27.5,0,-17.5>}
box {-1,1 scale <.4,9,.4> translate <37.5,0,-17.5>}
        pigment {rgb 1.1}
        finish {ambient .2 diffuse .7 specular .15 roughness .5}
  translate <-40,9,-40>
}
 translate -5*z
}


// omniVerse http://users.aol.com/persistenceofv/all.htm


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.