Teardown

Teardown

ThiccSmoke & ThiccFire
 This topic has been pinned, so it's probably important
MrRare  [developer] Sep 14, 2021 @ 3:01pm
FAQ: What do settings do and how can I gain/tweak performance?
Introduction


Across the updates ThiccSmoke has grown into what it is now. I am all for tweakability thus with many updates that added features, many settings came along. Some settings might be a bit descriptive in nature thus I would like to explain them to you here. Hopefully you can have some fun tweaking the smoke entirely to your liking! Note that the recommended settings might change on a whim if I find something that works better, and take this with a grain of salt as this is mostly just personal preference while using the mod. It might not suit your needs!




General Settings - General Options


This menu allows for more general configuration of the mod.


  • Show or Hide Menu Key
Here you can configure which key you want to open the menu in game with. Press the character and then a key to change.
RECOMMENDED SETTING: User Preference


  • Enable or Disable Key
Here you can configure which key you want to use to enable or disable the mod (just disables detection more fires).
RECOMMENDED SETTING: User Preference


  • Show UI In Game
When enabled this will show some mod information on screen, such as:
    The key configured to open or close the menu.The key configured to enable or disable the mod with.Particle Spawner information such as:Mod enabled/disabled statusDetected fire countFPSTarget FPSParticle Refresh RateParticle Count
Note: Once enabled, it cannot be disabled in game (this is a known issue), you will have to restart/reload the map to remove the UI!
RECOMMENDED SETTING: NO

  • Enable Debug
Enables debug output to console. It might provide some useful information if an issue occurs, but otherwise it's just there for debugging.
RECOMMENDED SETTING: NO


  • Mod Enabled
Disables the MOD (toggleable using the above mentioned key in game, but useful if you want to start with the mod disabled by default).
RECOMMENDED SETTING: YES




Fire Detection Settings - Fire Detection Presets


This menu allows for tweaking parameters used for fire detection. Although the actual amount of fire is actually affected by the Particle Count setting in the Particle Spawner Settings, there is
still things to tweak specifically for the fire detection itself. Note that tweaking these settings can break fire detection thus I would suggest to leave the settings as they are and use the presets. In case there are performance issues.


  • Preset 
I have compiled a list of presets that makes life a bit easier, but it is recommended to leave them alone if your not sure about what your doing ;P.
    DefaultPotato PCSomewhat OkRealisticThis is fineFry my PCCustom
RECOMMENDED SETTING: DEFAULT


  • Visualize Fire Detection 
Visualizes where fire is detected using crosses of different color codes:
    GREEN CROSS: Fire is newly detected (should rarely appear is it detects it really fast and then goes to the next state)BLUE CROSS: Fire location is valid (there is a voxel there) most likely on fireRED CROSS: Fire location is not valid (maybe voxel broke/ fell down), remove fire point after Max Fire Detection Timer
RECOMMENDED SETTING: OFF




Fire Detection Settings - Fire Detection Options


These are the actual parameters that are set by the presets, which you can tailor to whatever you desire.


  •   User Input Disable
This option disables the fire detection and remembers broken points during the time that it is disabled, once enabled it should not detect broken voxels during this time as potential fire.
RECOMMENDED SETTING: YES


  •   User Input Disable Timer
This value is the time it takes for the mod to reenable after it detected an user input, and no other input is detected, which will reset this timer and so on.
RECOMMENDED SETTING: 3


  •   User Fire Detection Radius
In dire needs of performance this setting tweaks the box around the player in which fire can be detected, the current value is large enough to cover the entire map and I wouldn't recommend changing this value.
RECOMMENDED SETTING: 200


  •   Max Fire Detection Timer
The max fire detection timer is used to remove detected fire locations after they are no longer valid locations, however to keep persistent smoke generation it is necessary to not remove them immediately when it is no longer valid. This can be tweaked to increase or decrease performance slightly. The higher this value the more fire is detected, but also more false positives and it will take longer for smoke to stop spawning if there no longer is fire. Setting this value lower will increase accuracy but in the beginning stage of fire it might cause smoke puffs to appear and disappear frequently until a lot of fire is happening.
RECOMMENDED SETTING: 6


  •   Max Body Distance Detection
The fire detection algorithm behind the scenes uses broken voxels to detect nearest by voxels, as this is highly likely the place that is on fire. A higher value allows for a broken object to detect other objects farther away and potentially increase the chance of finding the actual body it broke of from. However it will greatly affect performance the more fire is spawned, as the computational expense for this step is high!
RECOMMENDED SETTING: 8


  •  Max Fire On Body (%)
The algorithm behind detecting fires can also detect how much fire is detected on a single body. This value actually influences the Fire Intensity if enabled under Particle Settings. Thus tweaking this value can be beneficial for how smoke looks, however to many fires on one single body means no fire detection on potential debris or other smaller dynamic objects!
RECOMMENDED SETTING: 90 %


  •   Max Debris Mass Detection
Fire normally would cause just small chunks to break of, thus this setting can be set to a low value to only detect those chunks, however this value does not affect performance that much and currently doesn't seem to affect detection much at all above 10.
RECOMMENDED SETTING: 100  


  • Visualize Fire Detection  (Note: the same as Visualize Fire Detection as part of the Fire Detection Presets.
Visualizes where fire is detected using crosses of different color codes:
    GREEN CROSS: Fire is newly detected (should rarely appear is it detects it really fast and then goes to the next state)BLUE CROSS: Fire location is valid (there is a voxel there) most likely on fireRED CROSS: Fire location is not valid (maybe voxel broke/ fell down), remove fire point after Max Fire Detection Timer
RECOMMENDED SETTING: OFF


Particle Spawner Settings - Particle Spawner Options


This is where you can create your smokey slide show for timelapses or your fire man simulator. This settings is meant for keeping the particle spawning in check if framerate starts to drop, however this can be disabled. If disabled the Minimum settings do not have any effect on the smoke generation, but the others still do, but won't be dynamically adjusted to the framerate, hence potential slide show! Note however that this is not perfect at all and will still cause laggyness to happen with a lot of fire, but depending on the settings you use, this could be limited in some fashion without to much impacting the visual appearance of the smoke (but it still does!).


  •  Dynamic FPS Adjust 
As mentioned, this setting enables or disables adjusting the parameters below according to the framerate.
RECOMMENDED SETTING: ON


  •  FPS Target
The targeted frame rate. Note however that framerate in Teardown is quit volatile and on a per map bases quit different (especially modded once's). There for this is just an indication used by the mod! If you however load a map that has a framerate underneath this target, it will take that instead, and subtract 5. Otherwise the dynamic adjuster might just drop all parameters to there lowest values and there is no fun in that! Thus do not set this to to the maximum framerate that you think you can achieve, try to set it to the minimum that you want! Note that due to limitations of teardowns API, it can only detected as low as 30 fps, thus I limited the target value to the lowest value which allows some adjustability by the dynamic scaler, which is 35.
RECOMMENDED SETTING: 40


  •  Particle Count
This value tells the mod how many particles it may spawn at once at maximum. Note that this also limits the maximum fires detected, since the fire location detected == 1 spawned particle. This value will also be adjusted, depending on the Particle Refresh Rate (see below). This value is also used if Dynamic FPS Adjust is turned off.
RECOMMENDED SETTING: 300


  •  Min Particle Count
The absolute minimum particle count, the adjuster wont go any lower than this amount and is only relevant when Dynamic FPS Adjust is turned on.
RECOMMENDED SETTING: 50


  •  Particle Refresh Rate
The particle refresh rate is how often per second (not fps!) the particle spawner is allowed to spawn particles for every detected fire location. Note that due to the laws of transparency, the more particles are spawned together, the darker they look thus increasing the rate of spawning will make smoke thiccer, but will have a large impact on performance. This value is then also adjusted when the Dynamic FPS Adjuster is enabled. The recommended setting is purely based on my experience with the mod, where smoke looks good while keeping a relatively stead FPS.
RECOMMENDED SETTING: 10


  •  Min Particle Refresh Rate
The minimum refresh rate per second (not fps!) for particles to spawn, this value is only relevant if the Dynamic FPS Adjuster is enabled.
RECOMMENDED SETTING: 2


  •  Adjust Aggressiveness 
The aggressiveness at which the values above are adjusted, note that a lower aggressiveness will prevent from smoke "puffing" as in that a lot of particles are spawned in a short time -> causes fps drop -> not alot of particles are spawned -> fps goes up, repeat. Having a lower aggressiveness means a steady amount of smoke and thiccness but will negatively affect FPS and it might never go back to the given FPS Target. Setting it to the highest value ensures that it hits the Target but could also introduce heavy frame pace issues ;X. Thus it is up to you to set this to a value that you are comfortable with.
RECOMMENDED SETTING: 0.05


  •   Affect Particle Count
This value determines when the Particle Count should be lowered and this happens when the Particle Refresh Rates dips below this configured value! Play around with this until find your perfect balance between Particle Refresh Rates, Particle Count and FPS
RECOMMENDED SETTING: 5.




Particle Settings - Particle Options


These settings affect all Materials defined in the the Materials menu. This will allow for quick smoke adjustments but might not suit your taste. If so, you can have a go at modifying each individual materials property. Good luck and have fun with that :).


  • Intensity
Thus value affects the size of each spawned particle. Note however that humongous particles can cause collisions issues and will pop out of buildings containing them, set this to your liking. These are the presets available and play around with them:
       Use Material Property   Potato PC   Somewhat Ok   Realistic   This is fine   Fry my PC
RECOMMENDED SETTINGS: Use Material Property


  • Drag
Each particle spawned can affect other particles movement, this value modifies that, note that having to calculate less drag on a particle could improve performance but the smoke becomes slippery... The following presets are available:
       Use Material Property   Potato PC   Somewhat Ok   Realistic   This is fine Fry my PC
RECOMMENDED SETTINGS: Use Material Property


  • Gravity
The gravity parameter affects how much gravity pulls or pushes the particle. Note that Upwards Low is the same as material property. The rest of the apply an offset. The following presets are available:
       Downwards High   Downwards Low   Upwards Low   Upwards High
RECOMMENDED SETTINGS: Upwards Low


  • Lifetime
As the name suggests, this modifies how long a particle may exist. The following presets are available:
       x1   x2   x4   x8 x16 
RECOMMENDED SETTINGS: x1


  • Fire Intensity Dependent
This option should allow for fire intensity depended smoke generation (though I am still not quit happy how it works currently). This uses the to the Max Fire On Body (%) value to determine the actual intensity of a fire hotspot. It should prevent smoke particles to spawn big instantaneously and instead should make them start smaller and then increase in size depending how intense the fire is. The goes for how much gravity pulls on the smoke particle. More intense fires == more heat, which in the real world means a higher air updraft which the gravity in this scenario simulates.
RECOMMENDED SETTINGS: ON




Materials - Material Type


Currently there are materials that can independently create different types of smoke, based on the settings below.


  • Red
How red the smoke is.
  • Green
How green the smoke is.
  • Blue
How blue the smoke is.
  • Transparency
How transparent the smoke is (0 = max transparency/invisible)
  • Life Time
How long the smoke particle should exist.
  • Size
The size of the particle spawned
  • Gravity
The gravity that pulls on the particle, negative is downwards.
  • Speed
The speed at which the particles moves.
  • Drag
How much a particle is affected by other particles.
  • Transparency Variation
How much variation in transparency there should be.




Again, to reiterate: These are settings that I found during testing to be useful enough but might not suit your needs. The recommended settings are mostly subjective in nature.


How can I help improving this guide?


Help me reformat this, I am to lazy and hate steams formatting, :P. But on a serious note, if you have a different proposal to the recommended settings, I am all ears, and I think many among with you, I will create a thread that allows for sharing those settings as well. Also just comment if you want the guide to be improved and exactly what you'd like to see improved!


Thank you for reading, and I hope this answers some of your questions, and If not, don't hesitate to ask !