Descriptions and Examples for the POV-Ray raytracer
by Friedrich A. Lohmüller
Deutsch
Italiano Italiano
Français français

Home
- POV-Ray Tutorial

- Realistic Water
    - opaque reflecting
    - Heavy Seas
    - partly transparent
    - Whirlpool
    - Water in a Glass
   > Isosurface Water
    - Isosurface Sea

    - Download
 
                                       

Realistic Water with POV-Ray

part 1 | 2 | 3 | 4 | 5 | 6 | 7

Water for a Pool by Isosurface
First we have to declare a pool shape without water
and were we want to place this pool.
(We use here variables for the sizes and transformation by 'transform',
because we need these things also for the water in the pool.
For the definitions of Pool texture and water material see the scene file.)

//---------------------- Pool dimensions
#declare Pool_X = 5.00;
#declare Pool_Y = 2.00;
#declare Pool_Z = 8.00;
#declare Border = 0.50;
//------------------ Pool transformation
#declare Pool_Trans =
  transform{ rotate<0,0,0>
             translate<-2.5,0.10,-6>
           } // end of transforme
//---------------------------------------
Then we make a hole were we want to place the pool:
//---------------------------------------
#declare Pool_Inner =
box{<0,-Pool_Y,0>,<Pool_X,Pool_Y,Pool_Z>
   } //----------------------------------
#declare Pool_Outer =
  box{<-Border, -Pool_Y-0.01, -Border> ,
      <Pool_X+Border,0.001,Pool_Z+Border>
     } //--------------------------------
//---------------------------------------
#declare Pool =
difference{
 object{ Pool_Outer texture{Pool_Tex}}
 object{ Pool_Inner texture{Pool_Tex}}
} // end of Difference
//---------------------------------------
// grass ground
difference{
 plane{ <0,1,0>, 0
        texture{
         pigment{color rgb<.35,.65,0>*.7}
         normal { bumps 0.75 scale 0.015}
         finish { phong 0.1 }
        } // end of texture
      }// end plane
 object{ Pool_Outer
         texture{ Pool_Tex }
         transform Pool_Trans
       } // end of hole for the pool
} // end of ground
//---------------------------------------
// placing of the pool:
object{ Pool transform Pool_Trans }
//---------------------------------------



Hole for the pool
A hole for the pool


Pool without water
Pool without water
Now we declare 3d function by a pigment pattern
for the modulation of an isosurface:
// pigment pattern for modulation
#declare Pigment_01 =
 pigment{ bumps
          turbulence 0.20
          scale <3,1,3>*0.12
          translate<1,0,0>
 } // end pigment
//---------------------------------------
#declare Pigment_Function_01 =
function {
  pigment { Pigment_01 }
} // end of pigment function
//---------------------------------------
isosurface {
 function{
   y
   +Pigment_Function_01(x,y,z).gray*0.2
 } // end of function
 contained_by{
   box{<-Border,-Pool_Y-1.01,-Border>,
       < Pool_X+Border,1, Pool_Z+Border>
      } //
    } // end contained_by
 accuracy 0.01
 max_gradient 2
 material{ Water_Material }
 // dont scale this isosurface!
 // scale the Pigment_01 if necessary!
 transform  Pool_Transformation
} // end of isosurface ------------------
//---------------------------------------

For more details see the following
description of this scene for POV-Ray
      IsoWaterPool_01.pov


Water in a Pool
An isosurface for the pool water

Isosurface Pool Water
Pool water by isosurface

part 1 | 2 | 3 | 4 | 5 | 6 | 7

top

© Friedrich A. Lohmüller, 2013
homepage:www.f-lohmueller.de
 
Visitors:
(since May-1999)
Thanks for your visit!