Elvas Tower: Particle Emitter Overhaul - Elvas Tower

Jump to content

Posting Rules

All new threads will be started by members of the Open Rails team, Staff, and/or Admins. Existing threads started in other forums may get moved here when it makes sense to do so.

Once a thread is started any member may post replies to it.
  • 7 Pages +
  • 1
  • 2
  • 3
  • 4
  • 5
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

Particle Emitter Overhaul Rate Topic: -----

#31 User is offline   Eldorado.Railroad 

  • Superintendant
  • Group: Posts: Elite Member
  • Posts: 1,028
  • Joined: 31-May 10
  • Gender:Male
  • Country:

Posted 04 August 2025 - 06:18 AM

If I may...

A picture(s) is worth a thousand words, and in this case a thousand parameters. To use all of these parameters with mostly "visual" outcomes, a better system other than the trial and error of seeing what happens when any one of these parameters is modified is needed.

The extra work will come with either allowing the user to edit these values in runactivity.exe, in real time, or an alternate visual tool will be needed to simulate what effect changing each parameter has. With so many parameters, the possibilities are endless. Who is going to explain both visually and textually what each of those parameters does, both alone and in concert with each other? All of this will have to end up in the Open Rails manual, and as I have suggested, an extra tool is needed to represent what it looks like at runtime.

Always remember that most of your users are NOT software developers, yet alone simulation experts. Enabling simple/simpler methods for the lay person is of prime importance. Diesel smoke has very few parameters. Getting it to "look right" is tricky at best.

Other than that, it will be impressive to see what this actually looks like, in real time,

Steve

#32 User is online   James Ross 

  • Open Rails Developer
  • Group: Posts: Elite Member
  • Posts: 5,546
  • Joined: 30-June 10
  • Gender:Not Telling
  • Simulator:Open Rails
  • Country:

Posted 04 August 2025 - 04:36 PM

View PostWeter, on 03 August 2025 - 05:22 AM, said:

May I know, why allowing various file formats is a ad idea?

The existing formats (ACE/DDS) are designed to be fast to load into the GPU, where as general purpose formats (e.g. PNG) are not.

There is also the eternal cost to every features: if we support GIF today, we have to keep supporting GIF forever. This may not seem like much for any individual feature, but we have to be concious of the limited time we have to maintain each feature/option/format. For example, what if we went to upgrade .NET and they had removed one of the many images formats they support? Would we have to find an alternative library, or accept that an unknown quantity of content out there might break?


View PostWeter, on 03 August 2025 - 05:22 AM, said:

Now - we could see, which "tweaks" are really matter/usable, while which could be hard coded, or derived from other settings/conditions. So, as I understand, effect type (smoke) is just a key for applying such conditions set at once. And, IMO, letting people to play with all of them for some time would reveal many information, which could be helpful.

Yes, we need to figure out which "tuning" parameters are needed and which are not. Every parameter we can remove from the proposal is a success for me, but I know there is a balance and not everything I listed will end up being removed.


View PostWeter, on 03 August 2025 - 05:50 AM, said:

At last, has it any sense to develop them just for accurate smoke/steam generation, if they are no needed for other locomotive physics, while plausible smoke could be modeled today with maximum these 15 tweaks? (Actually - less, as I expect, many cases are covered by default values well).

I would much rather we had good-but-not-perfect smoke and steam effects that can be set up with a small number of easily measurable or guessable parameters, than perfect smoke and steam that only works if you set up 15+ tuning parameters.


View PostWeter, on 03 August 2025 - 05:50 AM, said:

Still no answers on weather and aerodynamics influence.

Aerodynamic effects, like collisions, of the particle effects is basically beyond our volunteer team, especially with the very limited data from the models.

The current particle effects should behave in a visually acceptable way with wind already (it cannot be physically correct for the same reason as the above), and we have an ambient temperature in the simulation, although I am not sure we currently use that in smoke effects, but we could.


View PostTraindude, on 03 August 2025 - 06:45 PM, said:

I've stated this before, but we should allow for custom smoke colors, like what we have for diesels:
...
Steam effects (cylinder cocks, injectors, safety valves, steam heat FX and the like) would of course be exempt from this.

This seems reasonable to me as a generic effect parameter (e.g. "ORTSColor")

For all effects where we know what is going on, the except list above, we should be striving to get the colour right via our own code.


View Poststeamer_ctn, on 03 August 2025 - 11:07 PM, said:

I believe that we should strongly discourage the use of secondary parameters (those that need to be calculated by the user), instead we should encourage the use of primary parameters (those found on plans, in locomotive manuals, performance reports, etc). This approach will reduce the issues of trying maintain legacy parameters whenever feature enhancements are added to OR. It should be possible to calculate the principal inputs to the smoke emission (volume and velocity) and their variation with different performance scenarios, within OR using standard design (primary) parameters such as the stack size (already a parameter in Steam FX), stack height, etc.

Agreed.

I am planning to write up a guideline based on this thread for our project documentation, so keep an eye out for that thread for anyone wanting to discuss these parameter types in more detail, separate from this specific usage.


View Postcopperpen, on 04 August 2025 - 01:13 AM, said:

Unfortunately there are no detailed reports on the actual behaviour of steam particles after emission. We are therefore in the theoretical world in this regard and need to have some way of cotrolling volume and expansion rate of steam and even the look of different emission types.

I am hoping that, if people can experiment with the multitude of parameters in this proposal, we can come up with a small number of "presets" with potentially 1 or 2 numerical "tuning" parameters to provide in the final version.


View Postcopperpen, on 04 August 2025 - 01:13 AM, said:

Now we have a basis for decent looking steam emissions we should be looking at adding the velocity of the air from the firebox while at rest, and when moving tie the exhaust and cylinder cocks to the piston motion, with colour change added when fuel is added to the firebox. The steam exhaust should be tied to the steam pressure of the exhaust along with the exhaust type, LeMaitre, Giesl etc,which gives it the speed instead of guessing what it should be. This then leads to an intermittent firing model rather than the continuous stoker model we have now.

View PostEldorado.Railroad, on 04 August 2025 - 06:18 AM, said:

The extra work will come with either allowing the user to edit these values in runactivity.exe, in real time, or an alternate visual tool will be needed to simulate what effect changing each parameter has. With so many parameters, the possibilities are endless. Who is going to explain both visually and textually what each of those parameters does, both alone and in concert with each other? All of this will have to end up in the Open Rails manual, and as I have suggested, an extra tool is needed to represent what it looks like at runtime.

I want anything we can calculate - even approximately - to be tried first and foremost before we add a parameter.

We need to treat every parameter as having a long-term cost, most particularly for those without easily discoverable values.


View PostEldorado.Railroad, on 04 August 2025 - 06:18 AM, said:

A picture(s) is worth a thousand words, and in this case a thousand parameters. To use all of these parameters with mostly "visual" outcomes, a better system other than the trial and error of seeing what happens when any one of these parameters is modified is needed.

There is a proposal to allow reloading content while the program is running; ORMT is endorsing this idea here

#33 User is offline   Weter 

  • Member, Board of Directors
  • PipPipPipPipPipPipPipPipPipPip
  • Group: ET Admin Group
  • Posts: 9,411
  • Joined: 01-June 20
  • Gender:Not Telling
  • Simulator:ORTS
  • Country:

Posted 04 August 2025 - 06:05 PM

Thanks for attention and answering.
Sounds good.

#34 User is offline   Traindude 

  • Foreman Of Engines
  • Group: Posts: Contributing Member
  • Posts: 872
  • Joined: 17-November 13
  • Gender:Male
  • Location:Seattle, WA
  • Simulator:Open Rails
  • Country:

Posted 05 August 2025 - 03:46 PM

I've been playing around with some of the new particle settings and I have some example codes that seem to give acceptable results to my eyes at least:

Steam Locomotive Smokestack:
			StackFX
			(
				0 4.887 5.338
				0 1 0
				0.25
				
				ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 150m/s )
                                ORTSFinalVelocity ( 0 1m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 1.0 )
                                ORTSLifespanVariation ( 0.5 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.22902m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 2500 )
                                ORTSRateMultiplier ( 1.0 )
                                ORTSUseChaoticRandomization ( false )
			)
			CylinderSteamExhaust1FX
			(
				0 4.887 5.338
				0 1 0
				0.25
				
				ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 150m/s )
                                ORTSFinalVelocity ( 0 1m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 1.0 )
                                ORTSLifespanVariation ( 0.5 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.22902m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 2500 )
                                ORTSRateMultiplier ( 1.0 )
                                ORTSUseChaoticRandomization ( false )
			)
			CylinderSteamExhaust2FX
			(
				0 4.887 5.338
				0 1 0
				0.25
				
				ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 150m/s )
                                ORTSFinalVelocity ( 0 1m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 1.0 )
                                ORTSLifespanVariation ( 0.5 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.22902m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 2500 )
                                ORTSRateMultiplier ( 1.0 )
                                ORTSUseChaoticRandomization ( false )
			)


Cylinder Cocks:
			Comment ( Cylinder Cocks - Left )

			Cylinders11FX
			(
				-1.15 0.63 4.96
				-1 0 0
				0.01905
				
				ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 150m/s )
                                ORTSFinalVelocity ( 0 1m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 1.0 )
                                ORTSLifespanVariation ( 0.5 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.00114009m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 2500 )
                                ORTSRateMultiplier ( 1.0 )
                                ORTSUseChaoticRandomization ( false )
			)

			Cylinders12FX
			(
				-1.15 0.63 5.74
				-1 0 0
				0.01905
				
				ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 150m/s )
                                ORTSFinalVelocity ( 0 1m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 1.0 )
                                ORTSLifespanVariation ( 0.5 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.00114009m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 2500 )
                                ORTSRateMultiplier ( 1.0 )
                                ORTSUseChaoticRandomization ( false )
			)

			Comment ( Cylinder Cocks - Right )

			Cylinders21FX
			(
				1.15 0.638 4.96
				1 0 0
				0.01905
				
				ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 150m/s )
                                ORTSFinalVelocity ( 0 1m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 1.0 )
                                ORTSLifespanVariation ( 0.5 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.00114009m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 2500 )
                                ORTSRateMultiplier ( 1.0 )
                                ORTSUseChaoticRandomization ( false )
			)

			Cylinders22FX
			(
				1.15 0.63 5.74
				1 0 0
				0.01905
				
				ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 150m/s )
                                ORTSFinalVelocity ( 0 1m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 1.0 )
                                ORTSLifespanVariation ( 0.5 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.00114009m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 2500 )
                                ORTSRateMultiplier ( 1.0 )
                                ORTSUseChaoticRandomization ( false )
			)


Whistle:
WhistleFX
			(
				-0.599 4.600 1.273
				0 1 0
				0.12
				
                                ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 150m/s )
                                ORTSFinalVelocity ( 0 1m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 1.0 )
                                ORTSLifespanVariation ( 0.5 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.04524m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 2500 )
                                ORTSRateMultiplier ( 1.0 )
                                ORTSUseChaoticRandomization ( false )

			)


Safety Valve:
SafetyValvesFX
			(
				0.0 4.4 -2.095
				0 1 0
				0.08
				
                                ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 150m/s )
                                ORTSFinalVelocity ( 0 1m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 1.0 )
                                ORTSLifespanVariation ( 0.5 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.02011m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 2500 )
                                ORTSRateMultiplier ( 1.0 )
                                ORTSUseChaoticRandomization ( false )
			)


Diesel Exhaust:
				Exhaust1
				(
					0.1 4.45 0.871
					0 1 0
					0.3
                                ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 150m/s )
                                ORTSFinalVelocity ( 0 0.25m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 1.0 )
                                ORTSLifespanVariation ( 0.5 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.28274m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 2500 )
                                ORTSRateMultiplier ( 10.0 )
                                ORTSUseChaoticRandomization ( false )
				)

Train Steam Heat Boiler Exhaust:
 HeatingSteamBoilerFX(
					-0.24 4.43 -8.5
					0 1 0
					0.2
                                ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 75m/s )
                                ORTSFinalVelocity ( 0 0.25m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 2.5 )
                                ORTSLifespanVariation ( 0.5 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.22m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 2500 )
                                ORTSRateMultiplier ( 1.0 )
                                ORTSUseChaoticRandomization ( false )
				)

Steam Heat Hose Leak:
HeatingHoseFX(
            0.0 0.29 -11.16
            0 1 0
            0.01
                           
                           O ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 1m/s )
                                ORTSFinalVelocity ( 0 0.25m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 0.25 )
                                ORTSLifespanVariation ( 0.125 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.001m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 250 )
                                ORTSRateMultiplier ( 0.05 )
                                ORTSUseChaoticRandomization ( false )
            )


Caboose or Brakevan Stovepipe:
WagonSmokeFX(
            1.2 4.25 -8.77
            0 1 0
            0.06
                           ORTSPositionVariation ( 0m 0m 0m )
                                ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
                                ORTSEmissionSpeedLimit ( 1m/s )
                                ORTSFinalVelocity ( 0 0.25m/s 0 )
                                ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

                                ORTSLifespanMultiplier ( 1.0 )
                                ORTSLifespanVariation ( 0.5 )
                                ORTSMomentumMultiplier ( 1.0 )
                                ORTSMomentumVariation ( 0.1 )

                                ORTSInititalExpansion ( 1.0 )
                                ORTSExpansionSpeed ( 4.0 )
                                ORTSRotationVariation ( 0.25 )
                                ORTSWindMultiplier ( 1.0 )
                                
                                ORTSPipeArea ( 0.054m^2 )
                                Comment ( ORTSPipeArea = Pi*Radius^2 )
                                ORTSMaxParticles ( 125 )
                                ORTSRateMultiplier ( 0.05 )
                                ORTSUseChaoticRandomization ( false ) 
            )


Please note that you will need to adjust the coordinate, directionality and radius parameters (the basic MSTS-era emitter parameters) to suit your model. Also, if you change the radius parameter, you may need to tweak the ORTSPipeArea parameter accordingly. I generally use the basic area of a circle formula, Area = Pi*Radius², or a value close to that result.

#35 User is offline   Albertosaurio65 

  • Fireman
  • Group: Posts: Active Member
  • Posts: 116
  • Joined: 31-August 20
  • Gender:Male
  • Location:Málaga, España
  • Simulator:Open rails
  • Country:

Posted 07 August 2025 - 11:46 AM

Hi, thanks for the smoke fix. I've tried the "Traindude" settings, and they work fine.

However, I have a few questions:

Are the MSTS settings like
DieselSmokeEffectInitialMagnitude( 0.3 )
DieselSmokeEffectMaxMagnitude( 1.2 )
DieselSmokeEffectInitialSmokeRate( 0.3 )
DieselSmokeEffectMaxSmokeRate( 8 )
completely ignored by OR?

Also, are the parameters inside ORTSDieselEngines still in use, such as:
IdleExhaust, MaxExhaust, ExhaustDynamics, ExhaustDynamicsDown, ExhaustColor, and ExhaustTransientColor?

Many of the diesel trains I'm configuring show almost no visible smoke. Only a few older models display a large smoke cloud at startup or when reaching max power. After that, the smoke fades quickly, and usually only the heat effect remains visible.

That’s why I tried setting a darker, more transparent smoke color using ExhaustColor and ExhaustTransientColor, but it doesn’t seem to work.
I read in the GitHub PR that you plan to implement transparency handling in the future, so my question is:
Is it currently impossible to make the smoke translucent?

Thanks in advance

#36 User is offline   Weter 

  • Member, Board of Directors
  • PipPipPipPipPipPipPipPipPipPip
  • Group: ET Admin Group
  • Posts: 9,411
  • Joined: 01-June 20
  • Gender:Not Telling
  • Simulator:ORTS
  • Country:

Posted 07 August 2025 - 12:21 PM

Hello.
As I understand it, current work were focused on particles behavior only, not generation, so parameters, listed by You are still needed for setting generation's properties.
I guess, DieselSmokeEffectInitialSmokeRate( 0.3 ) is too small, when it'll be multiplied by new coefficients: 0.3 means 0.3 particles emitted per second, or roughly one per 3 seconds. Also for magnitude (lifetime), when 0.3 means, particle would live for 0.3 seconds (every 3 seconds) and disappear.

#37 User is offline   Albertosaurio65 

  • Fireman
  • Group: Posts: Active Member
  • Posts: 116
  • Joined: 31-August 20
  • Gender:Male
  • Location:Málaga, España
  • Simulator:Open rails
  • Country:

Posted 07 August 2025 - 01:45 PM

The numbers were an example, I don't use those DieselSmokeEffect values, I delete them, the ones I use are those of ORTSDieselEngines, ExhaustDynamics, etc., and even keeping the numbers low it emits quite a bit of smoke, but I have tried to lower the transparency and it did not change.

If I have to use the DieselSmokeEffect I didn't know, since I thought it was outdated and was replaced by the ORTSDieselEngines.

If I'm not mistaken, transparency is set at the beginning, right? At least that's how it works for lights.


In this example this configuration is with an assumed transparency of 30%.
Attached Image: Sin título.jpg

	IdleExhaust ( 0.75 )
	MaxExhaust ( 1.75 )
	ExhaustDynamics ( 2.5 )
	ExhaustDynamicsDown ( 1 )
	ExhaustColor ( 4D191313 )
	ExhaustTransientColor ( 4D191313 )


	Effects (
		DieselSpecialEffects
		(
			Exhaust1
			(
				0.0 3.45 0.04
				0 1 0
				0.2
    ORTSPositionVariation ( 0m 0m 0m )
    ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
    ORTSEmissionSpeedLimit ( 150m/s )
    ORTSFinalVelocity ( 0 0.25m/s 0 )
    ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

    ORTSLifespanMultiplier ( 1.0 )
    ORTSLifespanVariation ( 0.5 )
    ORTSMomentumMultiplier ( 1.0 )
    ORTSMomentumVariation ( 0.1 )
    
    ORTSInititalExpansion ( 1.0 )
    ORTSExpansionSpeed ( 4.0 )
    ORTSRotationVariation ( 0.25 )
    ORTSWindMultiplier ( 1.0 )
    
    ORTSPipeArea ( 0.28274m^2 )
    Comment ( ORTSPipeArea = Pi*Radius^2 )
    ORTSMaxParticles ( 2500 )
    ORTSRateMultiplier ( 10.0 )
    ORTSUseChaoticRandomization ( false )
    ORTSGraphic ( "..\\common_albertosaurio65\\Humo\\smokemain.png" )
	ORTSGraphicAtlasLayout ( 4 4 )
			)
		)
	)


I don't see any transparency and I need to reduce the amount of smoke quite a bit.

These are some references:
https://www.youtube....h?v=_3mg15sVNkI
Attached Image: sa.jpg

#38 User is offline   Traindude 

  • Foreman Of Engines
  • Group: Posts: Contributing Member
  • Posts: 872
  • Joined: 17-November 13
  • Gender:Male
  • Location:Seattle, WA
  • Simulator:Open Rails
  • Country:

Posted 07 August 2025 - 03:12 PM

View PostAlbertosaurio65, on 07 August 2025 - 01:45 PM, said:

The numbers were an example, I don't use those DieselSmokeEffect values, I delete them, the ones I use are those of ORTSDieselEngines, ExhaustDynamics, etc., and even keeping the numbers low it emits quite a bit of smoke, but I have tried to lower the transparency and it did not change.

If I have to use the DieselSmokeEffect I didn't know, since I thought it was outdated and was replaced by the ORTSDieselEngines.

If I'm not mistaken, transparency is set at the beginning, right? At least that's how it works for lights.


In this example this configuration is with an assumed transparency of 30%.
Attachment Sin título.jpg

	IdleExhaust ( 0.75 )
	MaxExhaust ( 1.75 )
	ExhaustDynamics ( 2.5 )
	ExhaustDynamicsDown ( 1 )
	ExhaustColor ( 4D191313 )
	ExhaustTransientColor ( 4D191313 )


	Effects (
		DieselSpecialEffects
		(
			Exhaust1
			(
				0.0 3.45 0.04
				0 1 0
				0.2
    ORTSPositionVariation ( 0m 0m 0m )
    ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
    ORTSEmissionSpeedLimit ( 150m/s )
    ORTSFinalVelocity ( 0 0.25m/s 0 )
    ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )

    ORTSLifespanMultiplier ( 1.0 )
    ORTSLifespanVariation ( 0.5 )
    ORTSMomentumMultiplier ( 1.0 )
    ORTSMomentumVariation ( 0.1 )
    
    ORTSInititalExpansion ( 1.0 )
    ORTSExpansionSpeed ( 4.0 )
    ORTSRotationVariation ( 0.25 )
    ORTSWindMultiplier ( 1.0 )
    
    ORTSPipeArea ( 0.28274m^2 )
    Comment ( ORTSPipeArea = Pi*Radius^2 )
    ORTSMaxParticles ( 2500 )
    ORTSRateMultiplier ( 10.0 )
    ORTSUseChaoticRandomization ( false )
    ORTSGraphic ( "..\\common_albertosaurio65\\Humo\\smokemain.png" )
	ORTSGraphicAtlasLayout ( 4 4 )
			)
		)
	)


I don't see any transparency and I need to reduce the amount of smoke quite a bit.

These are some references:
https://www.youtube....h?v=_3mg15sVNkI
Attachment sa.jpg


In your case, I would first try setting ORTSRateMultiplier to something like 2.5. The rate multiplier adjusts the amount of particles that are emanating from the opening. I've set some of them to higher values to eliminate visible gaps between particles when moving at higher speeds. You should also alter the ORTSPipeArea to reflect your smaller radius, so π * 0.2² = 0.12566.

#39 User is offline   Albertosaurio65 

  • Fireman
  • Group: Posts: Active Member
  • Posts: 116
  • Joined: 31-August 20
  • Gender:Male
  • Location:Málaga, España
  • Simulator:Open rails
  • Country:

Posted 08 August 2025 - 05:08 AM

With the help of AI I have changed everything and it has turned out well, although I don't know why white smoke appears when reducing rpm and when the train moves forward, in neutral the white does not appear, although it lasts for a few particles

#40 User is offline   Weter 

  • Member, Board of Directors
  • PipPipPipPipPipPipPipPipPipPip
  • Group: ET Admin Group
  • Posts: 9,411
  • Joined: 01-June 20
  • Gender:Not Telling
  • Simulator:ORTS
  • Country:

Posted 08 August 2025 - 01:01 PM

Hello.
I have thought more...
So new parameters are for smoke behavior after generation, while ORTSDieselEngines - for generation.
If they are not used in favor of legacy four MSTS parameters - some average transition variables are applied.
And I can state it too: first two signs don't affect transparency, so 3D Trains have released 3 variants of dieselsmoke.ace texture: light, medium and heavy.
Suddenly turning white is non prototypic at all: it's either a sign of malfunction, when oil is sucked into cylinders, either stop of ignition of fuel, when motor is almost stuck. In such case, diesel fuel fumes are being exhausted, then motor stalls. Instead, in normal conditions, if throttle is closed, smoke would better become transparent, what we are not seeing currently.

#41 User is offline   Albertosaurio65 

  • Fireman
  • Group: Posts: Active Member
  • Posts: 116
  • Joined: 31-August 20
  • Gender:Male
  • Location:Málaga, España
  • Simulator:Open rails
  • Country:

Posted 08 August 2025 - 01:35 PM

Video

I've compiled a video about the white texture.
So from what I understand, is that effect intentional?

Regarding the smoke texture, I wasn't aware of it. I use this standard texture. Now that I can use ORTSGraphic, it's great to have several.

Attached thumbnail(s)

  • Attached Image: smokemain.jpg


#42 User is offline   Weter 

  • Member, Board of Directors
  • PipPipPipPipPipPipPipPipPipPip
  • Group: ET Admin Group
  • Posts: 9,411
  • Joined: 01-June 20
  • Gender:Not Telling
  • Simulator:ORTS
  • Country:

Posted 08 August 2025 - 01:39 PM

Hello.
What did You want to ask?
I see them on the screenshot, so I'm at a loss, what kind of answer is expected to follow:)

#43 User is offline   Albertosaurio65 

  • Fireman
  • Group: Posts: Active Member
  • Posts: 116
  • Joined: 31-August 20
  • Gender:Male
  • Location:Málaga, España
  • Simulator:Open rails
  • Country:

Posted 08 August 2025 - 01:42 PM

If the white smoke effect when lowering revs is intentional in openrails or a configuration error.

#44 User is offline   Weter 

  • Member, Board of Directors
  • PipPipPipPipPipPipPipPipPipPip
  • Group: ET Admin Group
  • Posts: 9,411
  • Joined: 01-June 20
  • Gender:Not Telling
  • Simulator:ORTS
  • Country:

Posted 08 August 2025 - 01:57 PM

I can't tell, but guess, that's unfinished implementation.
It's intentional, when activity randomization activates turbo compressors failure, while in typical case, it more looks like an error, or mishandling.

#45 User is offline   Weter 

  • Member, Board of Directors
  • PipPipPipPipPipPipPipPipPipPip
  • Group: ET Admin Group
  • Posts: 9,411
  • Joined: 01-June 20
  • Gender:Not Telling
  • Simulator:ORTS
  • Country:

Posted 08 August 2025 - 11:37 PM

Really, the testing version's purpose is extensive and intensive testing of new, already bugless features, for seeing, are they needed, and how that really used.

  • 7 Pages +
  • 1
  • 2
  • 3
  • 4
  • 5
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users