Descriptions et exemples pour le POV-Ray raytracer par Friedrich A. Lohmüller
Conception du Intérieur des Objets transparents avec POV-Ray
English English English
Italiano Italiano
Deutsch Deutsch

Page d'Accueil
- Tutoriels POV-Ray


  Table des matières - Index
  material, interior, media

  - Syntaxe material,
      texture et interior
  - Verre à Vitres
      + max_trace_level
  - fog - Brouillard
  Media
  - Syntaxe Media
  - Media+Density Maps
  Atmospheric Media
    with/without density map
  - Rayons en Brouillard
  Object Media
  Emitting Media
  - Épée de Lumière
  - Flamme de Bougie
  Scattering Media
  - Lumière par la Fenêtre
  - Vapeur, Fumée, Nuages
  Absorbing Media
  - Trombe
  Problèmes spécials avec Media
  - Changer l'échelle du Media
  - Chevauchement du Media
                                             

Flamme de Bougie
avec Emitting Media

L'usage du mot clé "media emission"
pour la simulation d'une flamme de bougie.

Flamme de Bougie par "media emission".

Avec un média de type émission nous pouvons simuler flammes de bougie. L'objet de conteneur utilisé (ici: une forme ovale) être claire et avec le mot clè "hollow" (Pour admettre les effets de média et de " fog " a l'intèrieur !). L'objet peut être scalé ensemble avec le média à la forme d'une flamme.
Note: Le couleur de la lumière "emis" est spécifiée après le mot clè " emission ". Mais le média même ne peut pas vraiment "émettre" lumière - il veut dire seulement que le média est visible aussi sans aucune illumination externe !
Quand nous voulons un média que brille et que fait de lombre etc., nous devons ajuter une source de lumière au centre !


// -----------------------------------------
#local Flame__Shape =
merge{    // egg
intersection{
   sphere{<0,0,0>,1}
   box{<-1,-D,-1>,< 1,1  ,1>}
   scale <1,2.5,1>}
intersection{
   sphere{<0,0,0>,1}
   box{<-1,-1 ,-1>,< 1,0+0.01,1>}
   }
} // end of merge
// -----------------------------------------
#local C__Flame =
object{
  Flame__Shape
  hollow
  pigment{ color rgbf<1,1,1,1>}// clear!
  finish { ambient 0 diffuse 0 }
  interior {
    media {
      emission color rgb<1.0,0.75,0.1>*1.75
      intervals 9
      samples 1, 20
      confidence 0.9999
      variance 1/100
      density{ spherical
               ramp_wave
               turbulence 0.15
               color_map {
               [0.0 color rgb <0.0,0.0,0.0>]
               [0.6 color rgb <0.8,0.3,0.0>]
               [0.9 color rgb <1.0,0.8,0.3>]
               [1.0 color rgb <1.0,1.0,0.1>]
                         } // end color_map
            scale <1,2.5,1>
          } // end of density
    }//end of media
}//------------------------------------------


média avec "density_map" sphérique et objet de conteneur fait visible - sans "scale" !
média avec "density_map" sphérique, scalé à la forme d'une flamme.
Le média incandescent à l'intérieur :
Une "density map" avec "crackle" coupé par une "density map" sphérique seconde avec le bord doux.
media{
    emission color rgb<1.0, 0.75, 0.1>*2.75
    intervals 3
    samples 32
    method 3
    aa_threshold 0.1 aa_level 5
    density{ crackle  turbulence 0.3
             scale 0.75 translate<0,24,0>
             color_map {
                    [0 rgb 0]
                    [0.00 rgb 0]
                    [0.07 rgb 1]
                    [0.10 rgb 1]
                    [0.12 rgb 0]
                    [1.00 rgb 0]
              } // end color_map
           } // end density
     density{ spherical
              color_map {
                    [0 rgb 0]
                    [0.7 rgb 1]
                    [1 rgb 1]
                } // end color_map
            } // end density
   scale<1,2.5,1>*0.5
   translate<0,0.01,0>
 }// end media
//------------------------------------------
Ajutée une région interne brûlante avec un média second par "crackle" coupé avec le bord doux par une autre "density map" sphérique.
Si nous voulons fair luire la flamme de bougie, nous devons ajuter une source de lumière au centre de la flamme
(note: "emission media" même ne peut pas luire vraiment !).
Pour gagner les ombres doux nous prenons une "area_light", l'intensité est controllée par un nombre au-dessus de 0 :
#if(Shining__On > 0) //---------------------
light_source{
   <0,0,0>
   color rgb <0.8, 0.5, 0.2>*Shining__On
   area_light       // kind of light source
   <0,0,0><0,0.25,0>//lights spread area
   1, 10      // total number of lights x,y
   adaptive 3 // 0,1,2,3...
   jitter // adds random softening of light
   translate<0,CandleHeight+0.45,0>
} //---------------- end of area_light -----
#end // of "#if(Shining__On>0)"
 
 
 
 
 
Ajutée une "area_light" pour fair les bougies luire !
Description de la scène pour POV-Ray:
"candle_flame_4.txt" ou "candle_flame_4.pov"

Pour plus de réalisme on peut faire la source de lumière plus large et aussi ajouter un autre "area_light" tourné à 90 degrés.
Une autre suggestion de Thierry Banel:
Avec "fade_distance" et "fade_power" nous pouvons simuler l'affaiblissement du lumière della bougie avec la distance.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Cet objet est disponible comme
objet prêt à l'usage
pour POV-Ray :
Bougie allumée
Plus réaliste: "area_light" + "Fade_Distance" + "Fade_Power"!
Fichier include et examples pour POV-Ray voyez "Candle_2" ici
Objets prêt à l'usage


top
© Friedrich A. Lohmüller, 2012
www.f-lohmueller.de