16ee4ff65b
perf(debug): live heap blocks by size and the objects of the simulation tables in the memory section of the debug panel
2026-10-23 22:45:49 +02:00
4be94dd006
perf(debug): count what the program takes with new (global operator new/delete of the executable) and the objects of the model instances in the memory section of the debug panel
2026-10-23 22:26:01 +02:00
2dc70a50bc
perf(debug): memory of the process and of its parts in the debug panel: resident, peak and private memory, card memory (GL_NVX_gpu_memory_info), the copies kept by the textures, geometry banks, models, scenery shapes and lines, sleepers and sound buffers
2026-10-23 22:02:03 +02:00
1a42009dc2
perf(physics): performance.multithreading switches the work over many threads, which each job sizes by how much it has: the physics steps a thread per 128 vehicle steps, up to all logical cores
2026-10-23 21:07:05 +02:00
9f7217256b
fix(physics): the external program messages (multiplayer) no longer keep the physics steps in one thread, only network sessions do; the debug panel tells what keeps them in one
2026-10-23 20:12:02 +02:00
60667588b5
perf(physics): the steps of the vehicle physics on many threads, in groups of vehicles which act on one another (performance.cpucores, 0: all cores)
2026-10-23 19:56:36 +02:00
9a7ff372f7
perf(debug): count what wakes the physics of the vehicles (brake pipe, main reservoir pipe, command, speed, acceleration, neighbour, other) in the debug panel
2026-10-23 19:08:09 +02:00
f17462b186
perf(physics): road vehicles farther than 1 km from the camera go by one step of the physics in a frame (physics.roadlod); count what resets the switching time of the vehicles (compressor, mains, diesel, physics woken) in the debug panel
2026-10-23 18:47:01 +02:00
e054fe900d
perf(debug): count what keeps the physics on in rail vehicles standing still (active cab, speed, acceleration, switching, ezt/dmu, moving neighbour), for the debug panel
2026-10-23 18:06:12 +02:00
5a53c32b0a
perf(debug): forces and update of the vehicles by kind in the debug panel: rail and road, within 1 km of the camera and farther, with the counts of vehicles and of the ones standing still
2026-10-23 17:51:15 +02:00
52df707f30
perf(debug): parts of the vehicle update in the debug panel: scenery animations, power grid, roads, preparation, forces, vehicle update and ai, with the counts of vehicles and physics steps; input and the start of the ui frame timed apart
2026-10-23 17:26:44 +02:00
fc714d50ec
perf(debug): cpu timers of the simulation and the main loop, cpu time of the frame parts next to the gpu, renderer data of the debug panel in folding sections
2026-10-22 20:54:30 +02:00
5d3f857c39
perf(gl46): leave out instance buckets before the culling, lod bounds once per model, shared walks of the shadow cascades
2026-10-22 20:13:25 +02:00
925f5910bb
refactor(track): the ballast fades into that of the tracks joined, as the rails do
2026-10-21 23:36:03 +02:00
b8eb5c71a1
feat(track): parallax track materials blended at the joints
2026-10-21 23:25:40 +02:00
c5a894a674
feat(track): rails and ballast blended into those of the tracks joined, where their textures differ
2026-10-21 22:34:57 +02:00
2d7942786d
feat(track): each 3D sleeper at the level of detail of its own distance
2026-10-21 21:48:17 +02:00
9c2520ea52
fix(track): 3D sleepers let go of the beams of the tracks far away
2026-10-21 18:19:21 +02:00
30cb83584d
fix(track): timbermodel of a track lays switch timbers without sleepers3d in eu07.ini
2026-10-21 15:37:11 +02:00
cf36b24e8d
Let the smoke leave the exhaust as a widening jet that fades in
2026-10-20 18:00:51 +02:00
abbdca4773
Let the templates of smoke sources set how fast their particles rise or fall
2026-10-20 17:12:23 +02:00
867497b658
Simulate and light the smoke on the GPU and make rain and snow of particles
2026-10-20 16:44:27 +02:00
6a109e984c
perf(gl46): skip shapes out of the pass frustum and the motion blur when nothing moves
2026-10-20 15:23:03 +02:00
dfbe8a6d9e
feat(gl46): leave out instance buckets beyond their range before the culling
2026-10-20 14:57:30 +02:00
07ac7406a0
feat(terrain): grass follows the seasons and fades out over gfx.grass.fadedistance
2026-10-20 02:20:03 +02:00
ceb439b218
Fix windows build
2026-10-20 01:38:33 +02:00
f3bdadad66
feat(terrain): holes cut in the heightmap terrain and shader grass painted over it
2026-10-20 01:32:01 +02:00
34f206fefc
to de9f61b307
2026-10-19 22:14:04 +02:00
de9f61b307
Merge remote-tracking branch 'origin/feat/switch-blades' into feat/gl46-migration
2026-10-19 22:13:43 +02:00
0545f93f24
Keep the hotspotpower of light points apart from their colour
2026-10-19 17:51:13 +02:00
maj00r
d1dbd40566
feat(editor): the top view of the tracks draws the terrain to the corners of the screen, the ballast optional
...
- In the top view of the tracks work area, the renderer's reach is the half diagonal of the screen. It used to be three extents, which cut wide windows short.
- Cells far from the camera no longer draw only their tracks: the terrain shapes are drawn too. Models keep their own ranges.
- In that view, the heightmap streamer loads chunks as far as the corners, up to 50 km. The detail comes from the size of a pixel, not from the distance.
- The walk over the chunks around the camera is skipped while it would ask for nothing, so a wide reach costs little.
- A setting, kept in the editor settings, leaves out the ballast of the railway in the top view, so the ground under the tracks shows. It is in the View menu and next to the extent slider.
- Self-test: ortho <extent> [noballast|ballast], orthophoto off.
2026-10-19 17:10:27 +02:00
8c00b0bc3d
Fit the cascades of the sun shadows to the depth of the view
2026-10-19 12:02:01 +02:00
e7c65993d8
Copy the textures of the terrain layers again when the season or the weather changes
2026-10-19 11:09:57 +02:00
b1f880b5a7
Cull the scenery models drawn on their own on the GPU with the instances
2026-10-19 10:54:04 +02:00
ffe77be754
Cull the instances of the shadow maps of headlights and lamps on the GPU
2026-10-18 23:14:08 +02:00
64dedb9d53
Record the opaque scene once and replay it for the depth prepass and the colour pass
2026-10-18 21:00:54 +02:00
2e30366235
Draw the recorded instance draws with the variant seed they were recorded with
2026-10-18 18:41:33 +02:00
bc4df5567f
Cull and draw the sleepers of tracks on the GPU with the instances
2026-10-18 03:18:26 +02:00
f4b516eeb8
Cull shadow and reflection passes on the GPU
2026-10-18 01:46:45 +02:00
494304903f
Draw the instances from the GPU with multi draws, the model block of each draw read by its number
2026-10-18 00:47:05 +02:00
maj00r
d25f20a56c
feat(track): 3D sleepers and switch timbers, blade heel and throw from templates, one rail carving pass
...
- sleepers3d / sleepers3dplain / sleepers3dbed in eu07.ini: timbers put together from the begin, main and end parts of a model
and stretched to their length, plain sleepers of their own model; tracks whose plain sleepers would touch are laid as one
cluster, lines of timbers led by priority and turned to the bisectors of frogs and crossings at a limited rate, whole timbers
under crossings, split ones between tracks with room to part them, gaps filled per rail and overlaps shortened or dropped;
clusters worked out in a background thread while driving, on demand in the editor
- the ballast can be left out under the beams (sleepers3dbed no)
- blades get their heel and throw from the switch template or blades <heel> <throw> in the scenery; blades of double switches
run on into the track linking them to the next switch
- rail cutting at frogs, wing rails, movable noses and switch crossings done by one carving pass (RailCarve)
- tint of the rail treads applied to the colour only, without the matte band at the frog
- a switch trailed through with a movable nose set the other way derails the vehicle
- self-tests: sleepercheck, sharedzones, beamsnear, throw, sleepersbg
2026-10-17 23:32:43 +02:00
maj00r
7100cec12f
feat(track): the texture of a shared running surface blends into the texture of the rail it lies on: 2 cm on each side of the boundary both are drawn in tinted variants of their materials that fade per vertex into the mean colour of the two treads, sampled from the texture files, so the edge of the wheels of the other track leaves a soft band instead of a line
2026-10-17 23:28:41 +02:00
maj00r
9448bd8c70
feat(track): where two rails share a running surface it takes the texture whose running surface is brighter; the brightness is read from the texture file over the u range of the rail head top, the shared parts are the block of crossing grooved rails, the nose of an acute frog from its tip to the end of the V, the through rail across a wide or grooved crossing, the frog of a switch, and the stock rails of a switch with frogs up to half the blade length where the blade grows to a full head
2026-10-17 23:28:41 +02:00
maj00r
7e1b2c553c
feat(renderer): a matte variant of a material for the parts of rails no wheel rolls on: it lights the same maps as weathered steel, with the weathering scaled per vertex by userdata, so a polished running surface fades into unused steel without a bright stripe; the cut faces of rails are drawn in it in an extra pass
2026-10-17 23:28:41 +02:00
7221c153dd
Let eu07.ini scale how much the moon lights the scenery at night (gfx.moonlight)
2026-10-17 23:10:01 +02:00
41cc966103
Show the moon by day as bright as its sunlit surface, and where the sun and the moon are in the sky window
2026-10-17 22:59:23 +02:00
435110cef9
Place the sun and the moon where they are and light the night by the phase of the moon
2026-10-17 22:47:24 +02:00
5a5c67aaaf
Let the instances drawn from the GPU hide one another, in two phases
2026-10-17 21:50:23 +02:00
0dae1f0b9f
Give the fog volume a slice of the fog without its clouds for the sky
2026-10-17 19:56:35 +02:00
dd89aa5396
Fray the edges of the volumetric clouds with a finer noise and let their billows shade one another
2026-10-17 17:57:25 +02:00