|
|
I have managed to create a rocket exhaust plume that is far from perfect
but at least better than having no plume at all. Actually what I really
wanted was something resembling a bluish flame.
It doesn't look bad from a distance when silhouetted against a uniform
background, e.g. the blackness of space or a nearby planet. Problems
start when part of it is silhoutted against a black background and part
of it against a brighter background. In that case the part that is
silhoutted against the bright background appears brighter:
http://www.mmedia.is/bjj/misc/plume_test.jpg
This is unrealistic, my feeling is that this should be opposite, a
bluish flame/plume should be more visible when silhouetted against a
black background.
Two images that illustrate this problem in practice:
http://www.mmedia.is/bjj/misc/cassini_flyby_1294.jpg (OK; silhouetted
against Saturn's rings)
http://www.mmedia.is/bjj/misc/cassini_flyby_1327.jpg (not satisfactory;
silhoutted against both the rings and black space)
The code I used to render plume_test.jpg follows. I have been messing
with it without satisfactory results. I was able to make make this
particular scene look better but that solution wasn't satisfactory
because the flame could look dark against a different background,
something that's not exactly realistic. Does anyone know of a solution ?
What I think *probably* needs changes is towards the bottom (look for
"exhaust_half" and a prominent comment line).
#include "colors.inc"
camera {
location <100,0,0>
look_at <0,10,0>
angle 20
}
light_source {
<1000,300,1500>
color rgb <1,1,1>
}
#declare Thrust=0.5;
#declare nozzle_y=0.06;
#declare nzzy=1-nozzle_y;
#declare exhaust_radius=sqrt(1-nzzy*nzzy);
#declare plume_emission=0.15;
#declare plume_col=<198,247,255>/255;
#declare pl_s=0.07;
#declare col_mul=1.0;
#local denT=density {
spherical
density_map {
[0.0 rgb 0][pl_s rgb plume_col*0.7*col_mul][pl_s+0.01 rgb
plume_col*0.75*col_mul ][pl_s+0.02 rgb plume_col*0.7*col_mul]
[0.17 rgb plume_col*0.4*col_mul][0.25 rgb plume_col*0.1*col_mul]
[0.5 rgb plume_col*0.05*col_mul][0.8 rgb plume_col*0.0]
}
}
#declare col_mul=0.9;
#local denT09=density {
spherical
density_map {
[0.0 rgb 0][pl_s rgb plume_col*0.7*col_mul][pl_s+0.01 rgb
plume_col*0.75*col_mul ][pl_s+0.02 rgb plume_col*0.7*col_mul]
[0.17 rgb plume_col*0.4*col_mul][0.25 rgb plume_col*0.1*col_mul]
[0.5 rgb plume_col*0.05*col_mul][0.8 rgb plume_col*0.0]
}
}
#declare col_mul=0.2;
#local denT02=density {
spherical
density_map {
[0.0 rgb 0][pl_s rgb plume_col*0.7*col_mul][pl_s+0.01 rgb
plume_col*0.75*col_mul ][pl_s+0.02 rgb plume_col*0.7*col_mul]
[0.17 rgb plume_col*0.4*col_mul][0.25 rgb plume_col*0.1*col_mul]
[0.5 rgb plume_col*0.05*col_mul][0.8 rgb plume_col*0.0]
}
}
#declare col_mul=0.1;
#local denT01=density {
spherical
density_map {
[0.0 rgb 0][pl_s rgb plume_col*0.7*col_mul][pl_s+0.01 rgb
plume_col*0.75*col_mul ][pl_s+0.02 rgb plume_col*0.7*col_mul]
[0.17 rgb plume_col*0.4*col_mul][0.25 rgb plume_col*0.1*col_mul]
[0.5 rgb plume_col*0.05*col_mul][0.8 rgb plume_col*0.0]
}
}
#local denT2=//denT
density {
gradient y
density_map {
[0 denT02]
[0.4 denT01]
[1 rgb 0]
}
}
#local denT3=//denT
density {
gradient y
density_map {
[0 denT02]
[0.7 denT09]
[0.85 denT]
[1 denT]
}
}
#declare sphere_half=
intersection {
sphere {
<0,0,0>,2
}
plane {<0,-1,0>,-0.0001}
}
// ************************************* Probably the important stuff:
#declare exhaust_half= // The "half-plume" farthest from the nozzle
object {
sphere_half
hollow
no_shadow
texture { pigment { rgbt 1 } }
interior {
media {
emission plume_emission method 3 intervals 10
density {
denT2
}
}
media {
absorption .2 method 3 intervals 10
density {
denT2
}
}
}
}
#declare exhaust_nozzle_half= // The "half-plume" next to the nozzle
object {
intersection {
object {sphere_half}
plane {<0,1,0>,1-nozzle_y} // Remove what's inside the nozzle
}
hollow
no_shadow
texture { pigment { rgbt 1 } }
interior {
media {
emission plume_emission method 3 intervals 10
density {
denT3
}
}
media {
absorption .2 method 3 intervals 10
density {
denT3
}
}
}
}
#declare exhaust_plume=
merge {
object {exhaust_half}
object {exhaust_nozzle_half scale <1,-1,1>}
translate <0,nzzy,0>
scale <1/exhaust_radius,9*Thrust/exhaust_radius,1/exhaust_radius>
}
object {exhaust_plume}
union {
box {
<-100,-100,-100>,<-50,6.5,100>
}
box {
<-100,6.5,0>,<-50,100,100>
}
pigment {White}
}
Post a reply to this message
|
|
|
|
In article <MPG.1b03857a5484f8cf989693@news.povray.org>,
Bjorn Jonsson <bjj### [at] mmediais> wrote:
> It doesn't look bad from a distance when silhouetted against a uniform
> background, e.g. the blackness of space or a nearby planet. Problems
> start when part of it is silhoutted against a black background and part
> of it against a brighter background. In that case the part that is
> silhoutted against the bright background appears brighter:
Rather than using separate absorbing and emitting media, use a single
media with absorbing and emitting media. In addition, your absorption
color should be 1 - emission color for the most clear results.
--
Christopher James Huff <cja### [at] earthlinknet>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tagpovrayorg>
http://tag.povray.org/
Post a reply to this message
|
|
|
|
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
MegaPov 0.7 includes a new type of emitting media that was designed
specifically for this kind of situation: look at this image for an
example:
http://jeberger.free.fr/mpov/emission3.png
Both media were done with the following code:
~ interior {
~ media {
~ emission { 2, color rgb 1 extinction 2 }
~ method 3
~ intervals 1
~ samples 5, 5
~ density {
spherical
color_map {
[ 0.0 rgb 0.0 ]
[ 0.5 rgb <1.0, 0.0, 0.0> ]
[ 1.0 rgb <0.0, 1.0, 0.0> ]
}
~ }
~ }
~ }
For a slightly more complete description, look at this web page:
http://jeberger.free.fr/mpov/mpov.html
Unfortunately, this feature didn't make it either in POV 3.5 nor in
MegaPov 1.0 (nor AFAIK in POV 3.6) :(
Jerome
- --
******************************
* Jerome M. Berger *
* mailto:jbe### [at] ifrancecom *
* http://jeberger.free.fr/ *
******************************
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFAm8ZUqIYJdJhyixIRAiK5AKCug9xsIe07iUhmJ1CuBpsE4n4HRACgpEoP
bXbiGMVoUCspDZeSItBdc/4=
=RY/x
-----END PGP SIGNATURE-----
Post a reply to this message
|
|