POV-Ray : Newsgroups : povray.text.scene-files : POV-Logo goes to the beach Server Time
8 Jul 2024 10:52:00 EDT (-0400)
  POV-Logo goes to the beach (Message 1 to 1 of 1)  
From: Chris Colefax
Subject: POV-Logo goes to the beach
Date: 8 Sep 2000 22:00:23
Message: <39b999b7@news.povray.org>
Rendering posted in binaries.images....

// Title: POV-Logo Goes to the Beach
//
// Author: Chris Colefax <cco### [at] geocitiescom>
// Date: 9 September 2000
// Version: POV-Ray official 3.1+
// Note: This scene requires map.png, which can be created by first
//       rendering this code at a suitable resolution (e.g. 400 x 400):
/*
   camera {right x up y location -z*10}
   global_settings {hf_gray_16}
   plane {z, 0
      pigment {marble
         color_map {[0 rgb 0] [1 rgb 1]}
         sine_wave turbulence .4 octaves 2
         }
      finish {ambient 1 diffuse 0}
      }
*/

// CAMERA AND LIGHTS
   camera {right x*4/3 up y
      location <-4, 10, -5>
      look_at <0, 0, 0>
      angle 50}

   // Remove area light for quicker rendering
   light_source {-z*1000 rgb <1.3, 1.1, .8>
      area_light x*300, y*300, 4, 4 adaptive 1 jitter
      rotate <45, -45, 0>}

   light_source {<-1000, 1000, 1000> rgb <.2, .25, .3>
      shadowless}

   background {rgb <.4, .6, .9>}

   // Adjust global brightness and constrast here
   default {finish {ambient .3 diffuse .6}}

// GROUND PLANE AND WATER
   height_field {png "map" translate -.5 scale <20, .15, 20>
      pigment {rgb <.95, .9, .7>}
      normal {bumps .2 scale .01}
      finish {brilliance .75 irid {.2 thickness .7}}
      }

   plane {y, 0
      pigment {rgbt 1}
      normal {granite 1}
      finish {specular .2 roughness .01 reflection .03 irid {.15 thickness .5}}
      }


// SHELL MACROS
   #macro SpiralShell1 ()
      #local ShellTex = texture {
         pigment {rgb <1, .98, .9>}
         normal {radial .1 scallop_wave frequency 23}
         finish {brilliance .85 irid {.1 thickness .3}}
         }

      difference {
         blob {threshold .2
            #local A = 0; #local Y = -4; #while (Y < .5)
               #local P = (Y + 4)/4.5; #local S = .01 + P*.4;
               sphere {<S, Y, 0>, S, 5
                  texture {ShellTex}
                  rotate y*A}
            #local A = A + 31; #local Y = Y + S/8; #end
            texture {ShellTex}
            }
         #local A = A + 31; #local Y = Y + S/8;
         #local P = (Y + 4)/4.5; #local S = .01 + P*.4;
         sphere {<S/2, Y, 0>, S*1 rotate y*A
            pigment {rgb <.9, .6, .5>}
            finish {brilliance 1.3 phong .1 phong_size 65 reflection .1 irid {.3
thickness .25}}
            }
         }
   #end

   #macro FlatShell ()
      difference {
         union {
            #local R = -45; #while (R <= 45)
               sphere {z, 1
                  scale <1, .5, 2>*cos(radians(R))
                  rotate y*R
                  }
            #local R = R + 7.5; #end
            pigment {rgb <.95, .88, .85>}
            finish {brilliance .85 irid {.1 thickness .3}}
            }
         union {
            #local R = -45; #while (R <= 45)
               sphere {z, 1
                  scale <1, .2, 2.2>*cos(radians(R))
                  rotate y*R
                  }
            #local R = R + 7.5; #end
            pigment {rgb <.95, .91, .85>}
            finish {brilliance .85 irid {.2 thickness .5}}
            }

         translate -z*2 scale .5
         clipped_by {box {<-1, -1, -1>, <1, 0, 1> scale <2, 1, 2>}}
      }
   #end

   #macro StarFish ()
      blob {threshold .2
         #local R1 = seed(0);
         #local R = 0; #while (R < 360)
            #local P = <0, 0, 0>; #local D = z*.1;
            #local L = 0; #while (L <= 1)
               #local D = vrotate(D, y*(rand(R1)-.5)*15)*.92;
               sphere {<-.75, 0, 1>, 1, 1 scale vlength(D)*<1, .5, .75> translate P
rotate y*R}
               sphere {<0, -.5, 0>, 1, 1 scale vlength(D)*<2, 1, 2> translate P rotate
y*R}
               sphere {<0, .5, 1>, 1, -1 scale vlength(D)*<.5, 1, 1> translate P
rotate y*R}
               sphere {<.75, 0, 1>, 1, 1 scale vlength(D)*<1, .5, .75> translate P
rotate y*R}
               #local P = P + D;
            #local L = L + vlength(D); #end
         #local R = R + (360/5); #end

         pigment {rgb 1}
         finish {brilliance .85}
      }
   #end

   #macro SpiralShell2 ()
      blob {threshold .1
         #local D = .01; #local R = .01; #while (R < 3)
            sphere {z*D, D*.5, 1 rotate y*360*R}
            sphere {z*D, D*.4, -1 scale <1.5, 1, 1> rotate y*360*R}
         #local D = D * 1.05;
         #local R = R + .05; #end
         pigment {rgbt <1, 1, 1, .1>}
         finish {brilliance .85 irid {.15 thickness .3}}
         }
   #end

// SHELLS IN SCENE
   object {SpiralShell1()
      translate <0, -.1, -.3>
      rotate <85, 0, 30>
      }

   object {FlatShell()
      rotate <-93, 0, -90>
      scale <2.4, 2.2, 3> rotate z*30
      translate <.1, 2, -.25>
      rotate x*90
      }

   sphere {0, .5
      pigment {rgb <.9, .92, .94>}
      normal {bumps .1 scale .5}
      finish {brilliance 1.2 phong .5 phong_size 45 reflection .1 irid {.2 thickness
.3}}
      translate <0, .4, 2>
      }

   object {StarFish()
      scale 2
      translate <6, .1, 1>
      }

   object {SpiralShell2() rotate y*120 translate <-4, .2, -1.5>}
   object {SpiralShell2() scale 1.5 translate <-3, 0, -2>}
   object {SpiralShell2() scale 2 rotate -y*50 translate <-3.75, .2, -2>}


Post a reply to this message

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