Document Mesh LOD, Profiler, and map labels
Add README sections for the two new modules (Mesh LOD and Profiler) and the track and industry label feature, with settings screenshots, the unified overlay shot, the three-level LOD comparison, and the label demo video. Update the module table and remove the profiler-overlay mention from Physics Optimizer now that the overlay lives in its own module.
This commit is contained in:
parent
eb6699f23f
commit
92649801c2
7 changed files with 51 additions and 4 deletions
55
README.md
55
README.md
|
|
@ -16,10 +16,14 @@ I originally planned on releasing individual mods, but considering my workflow o
|
||||||
|
|
||||||
| Module | What it does |
|
| Module | What it does |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Physics Optimizer | Cuts CPU spent on train physics (LOD fast-path + auto-freeze), with a profiler overlay and debug car tinting. Console: `/rpf` |
|
| Map Module | In-game map overlay and detachable popout window for a second monitor. Themes, custom colors, opacity controls, map rotation, track & industry labels, and optional MapEnhancer integration. |
|
||||||
| Map Module | In-game map overlay and detachable popout window for a second monitor. Themes, custom colors, opacity controls, map rotation, and optional MapEnhancer integration. |
|
| Physics Optimizer | Cuts CPU spent on train physics (LOD fast-path + auto-freeze), with debug car tinting. Console: `/rpf` |
|
||||||
|
| Mesh LOD | Adds level-of-detail to rolling stock: distant cars progressively shed detail and finally collapse to a cheap proxy box, cutting triangle count on large saves. |
|
||||||
|
| Profiler | Unified in-game performance overlay: a frame-time graph plus live readouts that adapt to whichever optimization modules are enabled. Console: `/rpf overlay` |
|
||||||
|
|
||||||
Both are disabled by default; enable them per-module from the S³ settings page. A game restart is required for enable/disable to take effect. More modules will follow; S³ is designed to grow.
|
All modules are disabled by default; enable them per-module from the S³ settings page. A game restart is required for enable/disable to take effect. More modules will follow; S³ is designed to grow.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -78,6 +82,14 @@ All of these options are available from the gear menu Icons submenu on the map t
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
### Track & Industry Labels
|
||||||
|
|
||||||
|
The map labels named tracks and industries, read live from the game's industry data so mod-added tracks appear automatically. Labels adapt to zoom in three stages: individual per-track labels (aligned to the track, with leader lines) up close, merged labels at medium zoom, and one large label per industry area when zoomed out. Font size, leader-line thickness, merge distance, and every zoom threshold are configurable from the gear-menu Labels submenu or the S³ settings page.
|
||||||
|
|
||||||
|
<video src="https://git.farmtowntech.com/setonc/railroader-setons-special-sauce/raw/branch/main/img/map/map_track_and_industry_labels/3-stages-demo.mp4" controls></video>
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
### Popout Window
|
### Popout Window
|
||||||
|
|
||||||
Pop the map into a detached native OS window. Drag it to any monitor, resize it freely, and pin it always-on-top via the window's right-click title bar menu. Re-attach it back into the game overlay at any time from the settings panel without losing your position, zoom, or rotation.
|
Pop the map into a detached native OS window. Drag it to any monitor, resize it freely, and pin it always-on-top via the window's right-click title bar menu. Re-attach it back into the game overlay at any time from the settings panel without losing your position, zoom, or rotation.
|
||||||
|
|
@ -110,7 +122,7 @@ Reduces CPU time spent on train physics with two complementary strategies:
|
||||||
- **LOD Fast-Path**: cars beyond a configurable distance switch to dead-reckoning, skipping expensive 3D constraint updates. A staggered resync keeps them accurate without a sudden full-update spike.
|
- **LOD Fast-Path**: cars beyond a configurable distance switch to dead-reckoning, skipping expensive 3D constraint updates. A staggered resync keeps them accurate without a sudden full-update spike.
|
||||||
- **Auto Freeze**: consists that are far away and nearly stopped skip the Verlet integration tick entirely, replacing the stock freeze heuristic with a tighter distance + speed threshold.
|
- **Auto Freeze**: consists that are far away and nearly stopped skip the Verlet integration tick entirely, replacing the stock freeze heuristic with a tighter distance + speed threshold.
|
||||||
|
|
||||||
Locomotives can be excluded from either strategy. A console profiler overlay (`/rpf`) and debug car tinting (yellow = frozen, cyan = fast-path, magenta = full) let you verify the LOD and freeze behavior in your session.
|
Locomotives can be excluded from either strategy. Debug car tinting (yellow = frozen, cyan = fast-path, magenta = full) lets you verify the LOD and freeze behavior in your session, and the **Profiler** module's overlay reports live per-car physics timings and fast-path/freeze counts.
|
||||||
|
|
||||||
### Settings
|
### Settings
|
||||||
|
|
||||||
|
|
@ -127,6 +139,41 @@ LOD fast-path and Auto Freeze together cut per-car physics cost from ~28.6 µs t
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Mesh LOD
|
||||||
|
|
||||||
|
Railroader has no level-of-detail system for rolling stock, so every car renders at full geometry no matter how far away it is. Mesh LOD adds one. Each car gets a four-level LODGroup built at load time:
|
||||||
|
|
||||||
|
- **LOD0**: full detail, up close.
|
||||||
|
- **LOD1 / LOD2**: progressive culling. Renderers are ranked by bounding-box volume (largest is the car body and trucks, smallest are bolts, grab irons, and rivets), and each level keeps a progressively smaller top fraction, so structural geometry survives while fine detail drops first.
|
||||||
|
- **LOD3**: a single 12-triangle proxy box, tinted to the car's own color, for cars far enough away that only their shape reads.
|
||||||
|
|
||||||
|
Transition distances are specified in metres (corrected for the game's LOD quality bias internally), and you can apply the system to locomotives, freight, or both independently. Because the LODGroup is rebuilt from the live car list, mod-added equipment is handled automatically.
|
||||||
|
|
||||||
|
This is a GPU-side optimization: it lowers triangle and draw cost for distant cars, so it helps most on large saves with many cars in view when you are GPU-bound.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
All three LOD reductions side by side, with the transition distances set artificially short to put every level in one frame: full detail at right, structural-only with trucks and accessories culled in the middle, and the flat color-matched proxy box at left.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Profiler
|
||||||
|
|
||||||
|
A unified in-game performance overlay. It always shows a render + physics frame-time graph (render, FixedUpdate, Tick, and PosCars times) and a timing report, and it grows extra sections for whichever optimization modules are enabled:
|
||||||
|
|
||||||
|
- **Physics Optimizer**: LOD fast-path and auto-freeze quick-toggles with live fast/full and frozen counts.
|
||||||
|
- **Mesh LOD**: total tracked cars, the locomotive/freight split, and how many cars sit at each LOD level right now.
|
||||||
|
|
||||||
|
Toggle the overlay with `/rpf overlay`, or from the Profiler settings page.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Migrating from the standalone mods
|
## Migrating from the standalone mods
|
||||||
|
|
||||||
S³ replaces the separate **Physics Optimizer** (`RailroaderPhysicsOverhaul`) and
|
S³ replaces the separate **Physics Optimizer** (`RailroaderPhysicsOverhaul`) and
|
||||||
|
|
|
||||||
BIN
img/all-umm-modules.png
Normal file
BIN
img/all-umm-modules.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
BIN
img/map/map_track_and_industry_labels/lables_still.png
Normal file
BIN
img/map/map_track_and_industry_labels/lables_still.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 MiB |
BIN
img/mesh_lod/proxy_box_comparison.png
Normal file
BIN
img/mesh_lod/proxy_box_comparison.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
BIN
img/mesh_lod/umm_settings.png
Normal file
BIN
img/mesh_lod/umm_settings.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
BIN
img/profiler/overlay_unified.png
Normal file
BIN
img/profiler/overlay_unified.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 104 KiB |
BIN
img/profiler/umm_settings.png
Normal file
BIN
img/profiler/umm_settings.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
Loading…
Reference in a new issue