General Question Overexpanded exhaust plumes

N_Molson

Addon Developer
Addon Developer
Donator
Joined
Mar 5, 2010
Messages
7,697
Reaction score
846
Points
188
Location
Toulouse
Sorry for another thread, but I hope those will be useful to other people too...

I'm trying to get a decent overexpanded exhaust plume for my rocket, the kind of effects you see when a launcher gets in upper atmosphere, where the pressure is very low :



On that picture, the rocket is somewhere between 40 and 50 km of altitude (launch video here :
)

I'm pretty sure other have tried to achieve this before me, and playing with particle streams tends to be extremely time consuming. I have issues with those lines of the PARTICLESTREAMSPEC thing :

C++:
PARTICLESTREAMSPEC::LVL_SQRT, 0, 1,
PARTICLESTREAMSPEC::ATM_PLOG, 1e-5, 0.1,

I've seen the doc but it doesn't help me a lot. I can't even tell if 0 or 1 is full alpha... That's for the first line ; what I understand is that it should map the transparency level of the particle texture from value a to value b, using a function (square root, linear...) or as constant (flat), and the whole thing is function of the engine thrust level (LEVEL), right ?

Also those are a complete mystery to me (PLIN, PLOG) :

square-root mapping in sub-range

What is "sub-range" ? Is it a mathematical or physical expression ? Again I'm not a native english speaker and have no idea of what it could mean. Is it some kind of fine-tuning ?

Then there is the second line : I'd say it maps the alpha level to the "atmospheric parameters" (pressure ?). Here you can choose between "FLAT" (constant), "PLIN" (sub-range linear function ?) and "PLOG" (sub-range logarithmic function ?)

Oh and I'm using D3D9 client.

So if someone already had to deal with those, any advice there ? It could save me a lot of time. 😉
 

n72.75

Addon Developer
Addon Developer
Tutorial Publisher
Donator
Joined
Mar 21, 2008
Messages
1,941
Reaction score
332
Points
98
Location
Biddeford ME
Website
www.adabsurdumpublishing.com
Really interesting topic, and one that merits further investigation. I can't remember how those parameters work, but if I have time later tonight or tomorrow I'll read through that part of the API reference again.
 

francisdrake

Addon Developer
Addon Developer
Joined
Mar 23, 2008
Messages
777
Reaction score
158
Points
58
Website
francisdrakex.deviantart.com
This is a very interesting topic! I tried myself to create good exhausts, but only succeeded for low atmosphere (=high ambient pressure).
On the maps: The levelmaps maps the thruster level (from 0 to 1) to the particle opacity, while the atmsmap maps the surrounding atmosphere (atmospheric pressure?) to the opacity.

As the exhaust streams cannot be dynamically manipulated (I guess), it may need actually 2 exhaust streams:
1 for the bright narrow exhaust at launch, which gradually fades away while the rocket climbs, and
2 a wider, fainter stream for the high altitude exhaust, which is invisible at lower altitude.

Also you may need to modify the exhaust texture (the static shape of the flame), as this is very bright at the ground, but should become fainter further up.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
36,108
Reaction score
623
Points
203
Location
Langendernbach
Just as idea - would it be possible to define a special "rocket engine exhaust" particle stream in a graphics client?

Just consider this a rather weird idea, maybe it is just stupid.
 

DaveS

Space Shuttle Ultra Project co-developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,030
Reaction score
322
Points
173
Just as idea - would it be possible to define a special "rocket engine exhaust" particle stream in a graphics client?

Just consider this a rather weird idea, maybe it is just stupid.
I think the problem really stems from Orbiter's antiquated particle stream system. It was first implemented in the November 5 2003(!!) build. So, like a lot of things in Orbiter, it's old, outdated and in serious need of replacement with something more modern. So the PSS we're accustomed to is nearly 18 years old and should have been replaced a long time ago.

Also, a new exhaust visualization system for D3D9Client has been discussed recently, starting with this reply: https://www.orbiter-forum.com/threads/d3d9client-development.16787/post-578959
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
36,108
Reaction score
623
Points
203
Location
Langendernbach
Well, the biggest problem I see is, that real rocket exhaust is way more dynamic as the rather generic particle stream API currently supports. Backflow isn't supported yet, overexpanded exhaust can only be done rather simplistic....

Maybe some special mechanism to define size and "trajectory" distribution instead of velocity distribution would be better. Or have a way to implement a flow field function that modifies the exhaust trajectory.
 
Top