POV-Ray : Newsgroups : povray.general : Annoying problem with a rocket exhaust plume Server Time
3 Aug 2024 06:13:42 EDT (-0400)
  Annoying problem with a rocket exhaust plume (Message 1 to 3 of 3)  
From: Bjorn Jonsson
Subject: Annoying problem with a rocket exhaust plume
Date: 5 May 2004 19:13:37
Message: <MPG.1b03857a5484f8cf989693@news.povray.org>
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

From: Christopher James Huff
Subject: Re: Annoying problem with a rocket exhaust plume
Date: 6 May 2004 13:44:08
Message: <cjameshuff-466808.12431906052004@news.povray.org>
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

From: "Jérôme M. Berger"
Subject: Re: Annoying problem with a rocket exhaust plume
Date: 7 May 2004 13:24:37
Message: <409bc655$1@news.povray.org>
-----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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.