POV-Ray : Newsgroups : povray.binaries.images : Water drop on a water drop : Re: Water drop on a water drop Server Time
9 Aug 2024 03:25:39 EDT (-0400)
  Re: Water drop on a water drop  
From: brandon
Date: 21 Mar 2005 05:15:00
Message: <web.423e9e39a32d407f5d5309700@news.povray.org>
Oops...forgot source.

//--------------------------------
#include "colors.inc"
#include "shapes.inc"
#include "textures.inc"
#include "metals.inc"
#include "shapesq.inc"
#include "skies.inc"


#declare debugin = false;

camera{
  location <-1.5,0,-9>
  look_at <-1.5,-3.75,0>
  #if (debugin = false)
    focal_point <0,-3.99,0>
    aperture .49
    blur_samples 250 //could use more...
  #end
}

light_source {
  <200,10,-500>, rgb 1
}

global_settings{
  number_of_waves 5
  #if (debugin = false)
    max_trace_level 30
  #else
    max_trace_level 2
  #end
}

sky_sphere{S_Cloud1 rotate x*50}

#declare My_Water = material {
  texture {
    pigment{ rgbf <0.9, 0.95, 1.0, 0.9> }
    normal {
      ripples 0.75
      frequency 10
    }
    finish {
        reflection {0.3, 1 fresnel}
        conserve_energy
    }
  }
  interior { ior 1.33 }
}

#declare radi = 5;
union{
  //merge blobs and witchhat
  merge{
    blob{
      threshold .8
      sphere{ <0, 0, 0>, radi*1, -1}
      sphere{ <0, -radi+radi/15, 0>, radi*2, 1}
      sturm
    }
    intersection{
      object{ Witch_Hat scale y*-1 inverse }
      cylinder{ <0,-1,0><0,1,0>,2 }
      translate y*-3.99
    }
    #if (debugin = false)
      material{
        texture{
          pigment{ rgbf <0.9, 0.95, 1.0, 0.9> }
          normal {
            average
            normal_map{
              [1.0 ripples 0.75 scale 3 frequency 10]
              [2.0 waves 1 scale <1,3,1> frequency 2.5 phase -pi/4]
            }
          }
          finish {
            reflection {0.3, 1 fresnel}
            conserve_energy
          }
        }
        interior{ior 1.33 caustics .9}
      }
    #else
      pigment{Blue}
    #end
  }

  union{
    sphere{ <0, 0, 0>, 0.10  scale y*1.2 translate y*-2.5}
    sphere{ <0, 0, 0>, 0.05 translate y*-2.8 }
    #if (debugin = false)
      material{My_Water scale 3 rotate z*90}
    #else
      pigment{Blue}
    #end
  }
  rotate x*5
}

//make close drops
#declare r1=seed(19873445);
#declare  i = 200;
#while (i < 550)
  sphere{
    <-500*rand(r1)+250,-300*rand(r1)+300+10,450*rand(r1)+20>,4.5*rand(r1)+1
    #if (debugin = false)
      material{My_Water scale 4*rand(r1)+3 rotate<360*rand(r1),
360*rand(r1), 360*rand(r1)>}
    #else
      //must use random numbers so sequency will stay same as when not
debugin
      #declare dummy1=rand(r1);
      #declare dummy2=rand(r1);
      #declare dummy3=rand(r1);
      #declare dummy4=rand(r1);
      pigment{Blue}
    #end
    translate z-30
    rotate x*40
  }
  #declare i = i + 1;
#end

//make random distant drops
#declare i=550;
#while (i < 550)
  sphere{

<-1000*rand(r1)+500,-1000*rand(r1)+500+10,450*rand(r1)+500>,4.5*rand(r1)+1
    #if (debugin = false)
      material{My_Water scale 4*rand(r1)+3 rotate<360*rand(r1),
360*rand(r1), 360*rand(r1)>}
    #else
      //must use random numbers so sequency will stay same as not debugin
      #declare dummy1=rand(r1);
      #declare dummy2=rand(r1);
      #declare dummy3=rand(r1);
      #declare dummy4=rand(r1);
      pigment{Red}
    #end
    translate z-30
    rotate x*40
  }
  #declare i = i + 1;
#end

//two near drops
sphere{
  0,5
  translate z*40
  translate x*13
  translate y*-4.2
  material{My_Water rotate x*90 scale 6}
}

sphere{
  0,5
  translate z*20
  translate x*-11
  translate y*-6

  material{My_Water scale 6 rotate<360*rand(r1), 360*rand(r1),
360*rand(r1)>}
}
//--------------------------------


Post a reply to this message

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