Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
Gestaltung des Inneren von transparenten Körpern in POV-Ray
English English English
Italiano Italiano
Français français

Home
- POV-Ray Tutorial

  Inhaltsübersicht
  material, interior, media

  - Syntax material
      texture + interior
  - Window Glass
      + max_trace_level
  - Nebel - fog
  Media
  - Syntax Media
  - Media + Density Maps
  Atmospheric Media
    mit/ohne density map
  - Lichtkegel im Nebel
  Object Media
  Emitting Media
  - Lichtschwert
  - Kerzenflammen
  Scattering Media
  - Licht durch Fenster
  - Dampf, Rauch, Wolken
  Absorbing Media
  - Staubteufel
  Spezialprobleme mit Media
  - Skalieren von Media
  - Überlappende Media
                                             

"media" und "density maps"            

Es gibt 4 Musterarten (pattern types) die speziell zusammen mit "media density maps" interessant sind:
spherical
sphere{
    <0,0,0>, 1
    pigment{rgbt 1}
    hollow
 interior{ //-----------
 media{
  emission <1,1,1>
  scattering{1,<1,1,1>}
  density{ spherical
    turbulence 0
    color_map {
     [0 rgb 0.0]//border
     [1 rgb 1.0]//center
     } // end color_map
   } // end of density
  } // end of media ---
 } // end of interior
 translate <0,1.00,0>
} //----- end of sphere
cylindrical
cylinder{
   <0,-0.5,01>,<0,1,0>,1
   pigment{rgbt 1}
   hollow
 interior{ //-----------
 media{
  emission<-.5,-.5,1>*.6
  scattering{1,<1,1,1>}
  density{ cylindrical
    turbulence 0
    color_map {
     [0 rgb 0.0]//border
     [1 rgb 1.0]//center
     } // end color_map
   } // end of density
  } // end of media ----
 } // end of interior
 translate <0,1,0>
} //---- end of cylinder
boxed
box{
    <-1,-.5,-1>,<1,1,1>
    pigment{rgbt 1}
    hollow
 interior{ //-----------
 media{
  emission<-.2,1,-.5>*.6
  scattering{1,<1,1,1>}
  density{ boxed
    turbulence 0
    color_map {
     [0 rgb 0.0]//border
     [1 rgb 1.0]//center
     } // end color_map
   } // end of density
  } // end of media ----
 } // end of interior
 translate <0,1,0>
} //------- end of box
planar
box{
    <-1,-.25,-1>,<1,1,1>
    pigment{rgbt 1}
    hollow
 interior{ //-----------
 media{
  emission<1,-.25,1>*.6
  scattering{1,<1,1,1>}
  density{ planar
    frequency 5
    color_map {
     [0 rgb 0.0]//border
     [1 rgb 1.0]//center
     } // end color_map
   } // end of density
  } // end of media ----
 } // end of interior
 translate <0,1,0>
} //------- end of box

Ebenso kann man natürlich auch alle bislang bei Texturen verwendete Muster verwenden. Hier 3 weitere Beispiele:
bozo
box{ <-1,-0.5,-1>,<1,1,1>
    pigment{ rgbt 1 }
    hollow
 interior{ //-----------
 media{
  emission <-0.4,0.7,1>*0.6
  scattering{ 1, <1,1,1>
              extinction  1.2 }
  density{ bozo
    turbulence 0
    frequency 20
    color_map {
     [0.0 rgb 0.0]//border
     [0.5 rgb 0.1]
     [1.0 rgb 1.0]//center
     } // end color_map
   } // end of density
  } // end of media ----
 } // end of interior
 translate <0,1,0>
} //------- end of box
gradient x
box{ <-1,-0.5,-1>,<1,1,1>
    pigment{ rgbt 1 }
    hollow
 interior{ //-----------
 media{
  emission <1,0.2,-0.6>*0.9
  scattering{ 1, <1,1,1>
              extinction  2.0 }
  density{ gradient x
    turbulence 0.5
    frequency 4
    color_map {
     [0.0 rgb 0.0]//border
     [0.5 rgb 0.1]
     [1.0 rgb 1.0]//center
     } // end color_map
   } // end of density
  } // end of media ----
 } // end of interior
 translate <0,1,0>
} //------- end of box
quilted
box{ <-1,-0.5,-1>,<1,1,1>
    pigment{ rgbt 1 }
    hollow
 interior{ //-----------
 media{
  emission <1,-0.8,-0.6>*1.0
  scattering{ 1, <1,1,1>
              extinction  2.5 }
  density{ quilted
    turbulence 0.0
    frequency 6
    color_map {
     [0.0 rgb 0.0]//border
     [0.5 rgb 0.1]
     [1.0 rgb 1.0]//center
     } // end color_map
   } // end of density
  } // end of media ----
 } // end of interior
 translate <0,1,0>
} //------- end of box

Über Density Maps und Container-Formen .
Wenn man Density mit turbulence verwendet, muß man manchmal die Form des Containers vergrößern!

Eine Kugel mit Radius 1.
Density map ohne turbulence.
 
Eine Kugel mit Radius 1.
Density map mit turbulence 1.3.
Container-Kugel kappt Density ab!
Eine Kugel mit Radius 1.5.
Density map mit turbulence 1.3.
Density passt in Container-Kugel!

Man kann die Density mit Turbulenz ebenso innnerhalb z.B. einer Kugel mit weichen Randübergängen halten, indem man sie mit einer anderen Density schneidet (intersection)!

Eine Kugel mit Radius 1.
Density map ohne 'turbulence'.
 
Eine Kugel mit Radius 1.5.
Density map mit 'turbulence 1.3'.
Container vergrößert, angepaßt an 'density'!
Eine Kugel mit Radius 1.
Density map mit 'turbulence 1.3',
zusätzlich unturbulierte 'density map' für
weiche Ränder der Container-Kugel!

Boolesche Operationen mit "media" und "density maps"
Man kann mehr als eine density map verwenden, man kann aber auch mehr als ein media anwenden. Die Resultate sind wie bei CSG mit Körperformen.

intersection                       union                                      
 media{ ...
   density{ ... } //1
   density{ ... }//2
 } // end media


 
 media{ ...  //1
   density{ ... }
 } // end media 1
 media{ ...  //2
   density{ ... }
 }// end media 2
 
top
© Friedrich A. Lohmüller, 2011
www.f-lohmueller.de