Beschreibungen und Beispiele zum Raytracer POV-Ray
von Friedrich A. Lohmüller
English English English
Italiano Italiano
Français français

Home
- POV-Ray Tutorial

- Realistisches Wasser
    - undurchsichtig spiegelnd
    - bewegte See
    - teilweise transparent
    - Wasserstrudel
    - Wasser im Glas
   > Isosurface Wasser
    - Isosurface Meer

    - Download
 
                                       

Realistisches Wasser mit POV-Ray

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

Wasser mit Wellen in einem Pool
mittels Isosurface

Man deklariert zunächst die Form eines Swimmingpools
ohne Wasser und wo man den Pool platzieren möchte.
(Ich verwende hier Variable für die Größen und die Transformation
mittels 'transform', denn diese Sachen muß man auch für das Swimmingpool-Wasser verwenden.
Zur den Definitionen der Pool-Texture und des Wasser-Materials siehe in der Szenen-Datei.)

//---------------------- 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
//---------------------------------------
Dann macht man ein Loch an der Position des Pools:
//---------------------------------------
#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
Ein Loch für den Pool


Pool without water
Pool ohne Wasser
Dann deklariert man eine 3D-Funktion durch ein
'pigment_pattern' für die Modulation eines Isosurfaces (Äquipotentialfläche):
// 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 ------------------
//---------------------------------------

Zu weiteren Details siehe die folgende
Beschreibung dieser Szene für POV-Ray :
      IsoWaterPool_01.pov


Water in a Pool
Ein Isosurface für das Wasser in einem Pool

Isosurface Pool Water
Pool-Wasser mit isosurface

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

top

© Friedrich A. Lohmüller, 2013
homepage:http://www.f-lohmueller.de