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
|
Kerzenflammen mit Emitting Media
Verwendung von "media emission"
zur Simulation von brennenden Kerzen.
|
Kerzenflammen mit media emission.
|
|
Mit media emission kann man die Flamme einer brennenden Kerze simulieren.
Das verwendete Container-Objekt (hier: eine Eiform) sollte klar durchsichtig sein und das Schlüsselwort "hollow" besitzen
(dies erlaubt media- und fog-Effekte innerhalb!)
Das Container-Objekt wird zusammen mit dem media zu einer Flammen-Form skaliert.
Anmerkung: Die Farbe des "emittierten" Lichts wird nach dem Schlüsselwort "emission" spezifiziert.
Aber "media" "emittiert" nicht wirklich Licht - dies bedeutet nur, dass es ohne externe Beleuchtung immer sichtbar ist!
Um zu erreichen, dass "media" wirklich strahlt, Schatten wirft etc., muß man zusätzlich eine Lichtquelle hineinsetzen!
// -----------------------------------------
#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
}//--------------------------------------------
|
|
"media" mit einfacher sphärischer "density_map" und sichtbar gemachtem Containter-Objekt - nicht skaliert!
|
"media" mit einfacher sphärischer "density_map", skaliert zur Flammenform.
|
Das innere glühende "media":
Eine "density map" mit "crackle"-Struktur
abgeschnitten durch eine zweite sphärische "density map" mit weich auslaufenden Rändern.
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
//------------------------------------------
|
|
Ein zusätzlicher innerer glühender Bereich mit zweitem "media" mit "crackle"
abgeschnitten mit weichem Übergang durch eine weitere sphärische "density map".
|
Möchte man einen Kerzenschein sehen, dann sollte man eine Lichtquelle zum Körper der Flamme hinzufügen
(Beachten Sie: "emission media" scheint nicht wirklich!),
um sanftere Schattenkanten zu erhalten verwendet man hier ein "area_light" dessen Intensität von einer Zahl größer 0 gesteuert wird.
#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)"
|
|
Um die Kerzen wirklich scheinen zu lassen wird ein softes "area_light" hinzugefügt!
|
Noch realistisch wird es, wenn man die Lichtquelle breiter macht sowie
noch eine zweite "area_light" Lichtquelle gedreht um
90 Grad hinzufügt.
Ein weiterer Vorschlag von Thierry Banel:
Mit "fade_distance" und "fade_power" läßt sich die geringe Reichweite
des Kerzenscheins vorzuglich simulieren.
Dieses Objekt ist als
Fertig-Objekt für POV-Ray verfügbar:
Brennende Kerze
|
Noch realistischer: "area_light" + "Fade_Distance" + "Fade_Power"!
Include Datei und Beispiel für POV-Ray siehe "Candle_2" bei
Fertig-Objekte
|
|