Das Skalieren von "object media"
|
Skalieren von "object media"
Wenn man den Maßstab eines "object media" in einer POV-Ray-Szene
ändert, dann wird die media density nicht entsprechend skaliert!
In Folge dessen treten die Strahlen durch mehr "media" und erzeugen daher einen
entsprechend verstärkten Effekt.
So streut z.B. ein scattering media intensiver und daher sieht es dunkler aus
(vgl.: das 2. Bild auf dieser Seite!).
Wie skaliert man "object media" korrekt:
Um den media-Effekt bei einer Änderung des Maßstabs konstant konstant zu halten, muß man
die entsprechende Farbe "color" (z.B. bei scattering) durch den verwendeten
scale-Faktor dividieren!
|
"object media" mit scale 1.
|
"object media" mit scale 4.
|
"object media" mit scale 4 und color dividiert durch 4.
|
|
Example: Wie skaliert man 'media'
#declare Cloud_Scale = 10;// 1, ... 500
#declare Cloud =
sphere{ <0,0,0>, 1
pigment{rgbt 1}
hollow
interior{ //-----------
media{
emission <1,1,1>/Cloud_Scale
scattering{ 1,<1,1,1>/Cloud_Scale}
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
scale Cloud_Scale
} //----- end of sphere
//--------------------------------------
object{ Cloud
// don't do any additional scaling here!
translate<0,1,15>
} //--------------------------------------
|
Und als ein Makro-Objekt:
|
Object media mit Cloud_Scale 1 bei <0,1,1>
Object media mit Cloud_Scale 10 bei <0,1,15>
Object media mit Cloud_Scale 500 bei <0,50,600>
|
|
Beispiel: Eine media-Wolke als Makro
#macro Cloud_01( Cloud_Scale )
sphere{ <0,0,0>, 1
pigment{rgbt 1}
hollow
interior{ //-----------
media{
emission <1,1,1>*0.75/Cloud_Scale
scattering{ 1,<1,1,1>*5/Cloud_Scale}
samples 20 // increase = more precise
intervals 1
density{ spherical
scale 0.65
turbulence 1.00
color_map {
[0 rgb 0.0] // border
[1 rgb 1.0] // center
} // end color_map
} // end of density
} // end of media ---
} // end of interior
scale Cloud_Scale
} //----- end of sphere
#end // end of macro ---------------------
object{ Cloud_01( 5 )//Cloud(Cloud_Scale)
// don't do any additional scaling here!
rotate <0,0,0>
translate <0,4,5>
} //--------------------------------------
|
|
Object media Cloud_1, scale 5 bei <0,4,5>
|