Skip to content

Commit fdf8da6

Browse files
committed
Automatic merge of T1.6-rc4-32-g196d83e86 and 14 pull requests
- Pull request #1104 at 6ef735b: Handle simple adhesion within the axle module - Pull request #1086 at e10390b: Add Settings Exporter tool (copy settings to INI, etc) - Pull request #1091 at 7fc8de1: Automatic speed control - Pull request #1110 at 387388e: Fix Activity Runner persists after loading exception - Pull request #1115 at 270f22f: Do not activate ETS switch if no suitable cars are attached - Pull request #1120 at ba3c47f: Automatically Calculate Friction Values if Missing - Pull request #1121 at 91d2d26: Manually Override Articulation - Pull request #1130 at 251a677: Fix F9 points to an incorrect car ID. - Pull request #1132 at 934d29e: Fixes For Correct Questionable Braking Parameters - Pull request #1133 at 8dc00d5: Minor Fix for Brake Pipe Charging - Pull request #1082 at 5845a1a: Allow variable water level in glass gauge - Pull request #1081 at 689494b: Brake cuts power unification - Pull request #1124 at fab5457: Built-in PBL2 brake controller - Pull request #1128 at dc88896: Particle Emitter Overhaul
16 parents a66fbd0 + 196d83e + 6ef735b + e10390b + 7fc8de1 + 387388e + 270f22f + ba3c47f + 91d2d26 + 251a677 + 934d29e + 8dc00d5 + 5845a1a + 689494b + fab5457 + dc88896 commit fdf8da6

File tree

8 files changed

+800
-351
lines changed

8 files changed

+800
-351
lines changed

Source/Documentation/Manual/physics.rst

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2477,6 +2477,29 @@ the one shown below::
24772477
-1.0485 1.0 2.8
24782478
-1 0 0
24792479
0.1
2480+
2481+
Comment ( ORTS parameters come after MSTS data! )
2482+
ORTSPositionVariation ( 0m 0m 0m )
2483+
ORTSInitialVelocityVariation ( 0.1 0.1 0.1 )
2484+
ORTSEmissionSpeedLimit ( 150m/s )
2485+
ORTSFinalVelocity ( 0 1m/s 0 )
2486+
ORTSFinalVelocityVariation ( 0.75m/s 0.75m/s 0.75m/s )
2487+
2488+
ORTSLifespanMultiplier ( 1.0 )
2489+
ORTSLifespanVariation ( 0.5 )
2490+
ORTSMomentumMultiplier ( 1.0 )
2491+
ORTSMomentumVariation ( 0.1 )
2492+
2493+
ORTSInititalExpansion ( 1.0 )
2494+
ORTSExpansionSpeed ( 4.0 )
2495+
ORTSRotationVariation ( 0.25 )
2496+
ORTSWindMultiplier ( 1.0 )
2497+
2498+
ORTSPipeArea ( 0.03m^2 )
2499+
ORTSMaxParticles ( 2500 )
2500+
ORTSRateMultiplier ( 1.0 )
2501+
ORTSUseChaoticRandomization ( false )
2502+
ORTSShapeHierarchy ( "MAIN" )
24802503
)
24812504

24822505
The code block consists of the following elements:
@@ -2487,6 +2510,161 @@ The code block consists of the following elements:
24872510
- Effect direction of emission (given as a normal x, y and z)
24882511
- Effect nozzle width (in metres)
24892512

2513+
.. index::
2514+
single: ORTSPositionVariation
2515+
single: ORTSInitialVelocityVariation
2516+
single: ORTSEmissionSpeedLimit
2517+
single: ORTSFinalVelocity
2518+
single: ORTSFinalVelocityVariation
2519+
single: ORTSLifespanMultiplier
2520+
single: ORTSLifespanVariation
2521+
single: ORTSMomentumMultiplier
2522+
single: ORTSMomentumVariation
2523+
single: ORTSInititalExpansion
2524+
single: ORTSExpansionSpeed
2525+
single: ORTSRotationVariation
2526+
single: ORTSWindMultiplier
2527+
single: ORTSPipeArea
2528+
single: ORTSMaxParticles
2529+
single: ORTSRateMultiplier
2530+
single: ORTSUseChaoticRandomization
2531+
single: ORTSShapeHierarchy
2532+
2533+
After including these settings, additional *optional* parameters unique to OR can
2534+
be included to further customize effect emitters:
2535+
2536+
- ``ORTSPositionVariation ( x y z )`` -- Specifies the amplitude of random variation
2537+
in the right/left, up/down, and front/back emission location of a particle (default units
2538+
are meters). Useful for non-circular exhaust ports, as it allows one particle emitter
2539+
to be used to spawn particles from an area, rather than a single point. Note that
2540+
``ORTSPositionVariation ( 1m 0m 0m )`` would allow particles to emit 1 meter right and
2541+
1 meter left of the initial position, for a total variation of 2 meters. Similar is
2542+
true of all other parameters related to randomness, the total variation is double what's
2543+
specified. Feature is disabled by default.
2544+
- ``ORTSInitialVelocityVariation ( x y z )`` -- Defines the randomization of initial particle
2545+
velocity in the right/left, up/down, and front/back directions, as a function of the
2546+
particle's initial speed (values are unitless). The default value is ( 0.1 0.1 0.1 ),
2547+
meaning the speed in each direction can be increased or decreased by 10% of the initial
2548+
particle speed. Larger values make the particle exhaust seem less directed and more diffuse.
2549+
- ``ORTSEmissionSpeedLimit ( v )`` -- Some particle emitters are driven by the simulated flow
2550+
rate of exhaust, which has to make some assumptions about the pressure and volume of exhaust.
2551+
This can lead to unrealistically high speed particles being emitted, so a speed limit can be
2552+
set (default units are meters per second) to keep particle speed reasonable. This is not a hard
2553+
limit, it is gradually enforced as the simulation calculates higher and higher exhaust speed.
2554+
The limit is also applied before considering the emitter velocity factor, so actual exhaust speed
2555+
will vary depending on other settings.
2556+
By default, the limit is 150 meters per second, which will be suitable in most cases.
2557+
- ``ORTSFinalVelocity ( x y z )`` -- Determines the final right/left, up/down, and front/back
2558+
velocity of particles after they have settled (default units of meters per second). The default
2559+
is 1 m/s directly upward, and can be changed to fine tune the appearance of the particle trail
2560+
produced. Note that wind velocity is added to this value afterward.
2561+
- ``ORTSFinalVelocityVariation ( x y z )`` -- Unlike initial velocity variation, final velocity
2562+
variation determines the amplitude of random variation of final velocity in absolute terms
2563+
(default units of meters per second). The default setting is +/- 0.75 m/s in all directions, but
2564+
changing this can adjust the amount of and shape of particle trail spread. Larger variations
2565+
make for exhaust that seems more chaotic and diffuse.
2566+
- ``ORTSLifespanMultiplier ( x )`` -- Multiplies the lifetime of particles emitted from this
2567+
emitter by the given (unitless) value. Particle lifetime varies depending on simulation
2568+
data, but if particles seem to last too long a value less than 1 can be entered here, or a
2569+
value greater than 1 entered if particles don't seem to last long enough. The default value
2570+
is 1, producing particles that last as long as the simulation specifies.
2571+
- ``ORTSLifespanVariation ( x )`` -- Sets the random variation of the particle lifetime multiplier
2572+
(unitless). Values greater than 1 can cause particles to randomly generate with a lifetime of
2573+
0 seconds, which will prevent those particles from being rendered.
2574+
The default is +/- 0.5 times the lifespan.
2575+
- ``ORTSMomentumMultiplier ( x )`` -- Changes how long it takes for a particle to transition from
2576+
its initial velocity to its final velocity (unitless). Values above 1 make particles
2577+
have more momentum and move more smoothly, though also travel further from the emitter point before
2578+
being caught by the wind. Values below 1 give more sudden deceleration and prevent particles from
2579+
travelling very far before decelerating to their final speed.
2580+
The default setting is 1x.
2581+
- ``ORTSMomentumVariation ( x )`` -- Similar to ORTSLifespanVariation, gives the amplitude of
2582+
random variation in the momentum multiplier (unitless). Larger values increase the
2583+
final spread of particles, which works well in combination with ORTSFinalVelocityVariation.
2584+
The default setting is +/- 0.1x.
2585+
- ``ORTSInititalExpansion ( x )`` -- When particles are emitted at high speed, they expand
2586+
substantially as the exhaust pressure equalizes with the surrounding air. The (unitless)
2587+
value given here multiplies the amount of expansion that occurs in this initial phase.
2588+
Entering 0 disables this component of particle expansion, any value greater than 0 progressively
2589+
increases the amount particles expand by. The default setting is 1.
2590+
- ``ORTSExpansionSpeed ( x )`` -- Every particle expands in diameter at a constant rate the longer
2591+
since it was emitted, making exhaust seem more spread out as it mixes with the air. The
2592+
(unitless) value entered in this parameter specifies how much the size of a particle increases
2593+
every second, relative to the original particle size (ie: the nozzle width). The default value is 4.0,
2594+
meaning every particle will expand by 4x the original width for every second its in the air. Entering
2595+
0 would disable expansion over time, and negative values would cause particles to shrink over time
2596+
(particles are not allowed to have a negative size, instead they disappear).
2597+
- ``ORTSRotationVariation ( x )`` -- Particles rotate randomly to create some visual interest, this
2598+
parameter determines the max rotation speed (in radians per second) a particle is allowed to have,
2599+
either clockwise or counterclockwise. Higher speeds make for more chaotic looking effects. The
2600+
default setting allows for random rotation speeds between -0.25 and 0.25 radians per second.
2601+
- ``ORTSWindMultiplier ( x )`` -- Affects how strongly wind changes the final velocity of
2602+
these particles (unitless). Values greater than 1 increase wind strength, values less than 1
2603+
decrease wind strength, with 0 completely disabling the wind effect from changing final velocity.
2604+
A value of 1 is used by default, such that the wind speed used by the simulation is used directly.
2605+
This can be adjusted to prevent particles that shouldn't be influenced by the wind (eg: cylinder
2606+
cocks close to ground level) from flying off in whatever direction the wind is going.
2607+
- ``ORTSPipeArea ( a )`` -- Niche parameter to adjust the area of the exhaust pipe used by
2608+
the simulation (default units square feet). By default, the area is assumed to be a circle with
2609+
the same diameter as the exhaust particles. However, for non-circular exhausts this can be combined
2610+
with ORTSPositionVariation to give more believable results. Larger areas result in lower exhaust
2611+
speed without changing the number of particles emitted per second, which also allows this to
2612+
be used as a speed multiplier, though ORTSinitialVelocity is preferred for that purpose.
2613+
- ``ORTSMaxParticles ( n )`` -- Override for the maximum number of particles this emitter should
2614+
have in the world simultaneously (unitless integer). The default value is 2500 particles, which works
2615+
in many cases but may not be appropriate in some unusual circumstances. The limit can be reduced
2616+
on less extreme particle emitters to reduce memory use, or can be increased for more extreme emitters
2617+
to prevent particles disappearing and/or the reduction in particle emission rate caused by reaching
2618+
the particle limit. Do NOT increase the limit if particles are already overlapping; it is often
2619+
better to simply reduce the number of particles emitted using ORTSRateMultiplier and/or other
2620+
parameters listed here.
2621+
- ``ORTSRateMultiplier ( x )`` -- Multiplies the number of particles emitted per second by the given
2622+
value (unitless). Values less than 1 reduce the rate of particle emission, while values greater than
2623+
1 increase the rate of particle emission. The particle rate is determined by the simulation, but may
2624+
not produce aesthetically pleasing results in some cases due to particles overlapping (emitted too
2625+
quickly) or spreading out (emitted too slowly), so some fine-tuning can be done using this parameter.
2626+
This is set to 1 by default, producing the exact number of particles estimated by the simulation.
2627+
- ``ORTSUseChaoticRandomization ( 0/1 )`` -- Changes the randomization algorithm used for positions,
2628+
velocities, durations, and so on to be "chaotic" if given a true or 1 value. Default is false or 0,
2629+
giving "smooth" randomization. With the "chaotic" randomization algorithm, the random changes in
2630+
position/velocity/time are entirely random and do not depend on the random values generated for the
2631+
previous particle, resulting in sudden dramatic changes. In comparison, the default "smooth"
2632+
randomziation algorithm changes the random values by a small amount for each iteration. The "chaotic"
2633+
algorithm tends to make exhaust that is more spread out and discontinuous, which may be desireable in
2634+
some cases.
2635+
- ``ORTSShapeHierarchy ( MATRIXNAME )`` -- Selects the sub object of the engine/wagon
2636+
shape the emitter should be attached to using the name of the sub object matrix.
2637+
The x, y, z location given earlier will then be measured relative to the sub object,
2638+
and the emitter will move as the sub object moves in real time.
2639+
Matrix names can be determined using shape viewing programs. If the given name
2640+
cannot be found, a warning is produced in the log and the emitter will be attached
2641+
to the main shape object. Similarly, if ``ORTSShapeHierarchy`` isn't defined, the emitter
2642+
will be attached to the main object, similar to the MSTS behavior.
2643+
2644+
2645+
.. index::
2646+
single: ORTSPosition
2647+
single: ORTSInitialVelocity
2648+
single: ORTSParticleDiameter
2649+
2650+
Alternatively, the legacy MSTS data can be skipped entirely and replaced with
2651+
equivalent OR specific parameters. In this case, order of data entry does not
2652+
matter:
2653+
2654+
FXName (
2655+
ORTSPosition ( -1.0485m 1.0m 2.8m )
2656+
ORTSInitialVelocity ( -1 0 0 )
2657+
ORTSParticleDiameter ( 0.1m )
2658+
Comment ( Insert other ORTS parameters as desired, but skip MSTS data! )
2659+
)
2660+
2661+
- ``ORTSPosition ( x y z )`` -- defines the width, height, length location of the emitter (in meters by default)
2662+
- ``ORTSInitialVelocity ( x y z )`` -- defines the right, up, forward components of emission direction
2663+
(unitless, the particle speed is multiplied by this vector to determine the 3D velocity of particles.
2664+
Speed can be divided by inserting values less than 1, or multiplied by inserting values greater than 1.)
2665+
- And ``ORTSParticleDiameter ( d )`` -- gives the nozzle width (in meters by default), which sets the initial
2666+
size of each particle
2667+
24902668
Auxiliary Water Tenders
24912669
'''''''''''''''''''''''
24922670

0 commit comments

Comments
 (0)