12c2aaf1db
chore: remove the NVRHI-based betterRenderer
2026-10-21 19:30:32 +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
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
f3bdadad66
feat(terrain): holes cut in the heightmap terrain and shader grass painted over it
2026-10-20 01:32:01 +02:00
de9f61b307
Merge remote-tracking branch 'origin/feat/switch-blades' into feat/gl46-migration
2026-10-19 22:13:43 +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
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
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
7221c153dd
Let eu07.ini scale how much the moon lights the scenery at night (gfx.moonlight)
2026-10-17 23:10:01 +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
27e5c07837
Add screen-space contact shadows for the sun, lamps and headlights
2026-10-17 03:11:47 +02:00
97112b143b
Draw the depth of the whole scene before its colour
2026-10-17 02:15:50 +02:00
f352718e4a
Stream model data through persistently mapped buffers
2026-10-17 01:24:33 +02:00
aa522d7376
Integrate the light of lamps across the fog cells instead of one point sample
2026-10-16 23:52:17 +02:00
6ee628aaa5
Steady the volumetric fog and add a switch for the old headlight beams
2026-10-16 23:23:51 +02:00
2be85410ce
Draw volumetric clouds, their shadows, a volumetric fog and catalogue stars from a new weather system in the GL 4.6 renderer
2026-10-16 21:44:47 +02:00
d509775269
Cast shadows of vehicle headlights from the scene in their beam in the GL 4.6 renderer
2026-10-16 14:13:36 +02:00
466cb5339e
Draw instances from the GPU culling with indirect draws, occlusion culling and a depth prepass
2026-10-16 12:54:52 +02:00
2f0a06b98e
Cast shadows of scenery lamps from the scenery, nearby vehicles and the cab in the GL 4.6 renderer
2026-10-16 11:32:45 +02:00
06d7b9e9f0
Cast shadows of the cab lamp from the cab in the GL 4.6 renderer
2026-10-16 02:43:27 +02:00
4d3a401aae
Cull and assign LOD to instances in a compute pass
2026-10-16 01:08:44 +02:00
fd98d4eea5
Light the scene with lamps of models, vehicle compartments and the cab lamp in the GL 4.6 renderer
2026-10-16 00:07:08 +02:00
5f365a00c5
Fix the screen space ambient occlusion and add ground truth ambient occlusion to the GL 4.6 renderer
2026-10-15 23:03:50 +02:00
ce725c3d62
Add sky light, physical atmosphere, auto exposure and bloom to the GL 4.6 renderer
2026-10-15 22:16:41 +02:00
9f2ae071a6
Use clustered light lists in forward shading
2026-10-15 16:16:53 +02:00
f85cf5fe52
Build view-space light cluster grid in a compute pass
2026-10-15 14:16:55 +02:00
0e10ce4d0b
Remove OpenGL ES / ANGLE render path
2026-10-15 00:53:28 +02:00
3d3eef2e1c
Remove legacy OpenGL 2.1 renderer
2026-10-15 00:06:31 +02:00
maj00r
eaf7e787b8
fix(gfx): targetfps off by default again, draw range stays at heightbase instead of being driven by measured fps (with vsync on a 60 Hz monitor it sank to half); targetfps in eu07.ini still turns the regulator on
2026-10-11 23:20:08 +02:00
maj00r
e910615bf6
removed draw limit in track editor
2026-10-09 15:37:23 +02:00
476f3bf1b7
feat(ui): panels can be docked together and dragged out of the simulator window into windows of their own (imgui multi-viewports, ui.viewports yes by default, off where the renderer or the platform can't do it, e.g. wayland); imgui coordinates kept relative to the main window by the glfw backend, so the overlays, picking and gizmo of the editor work unchanged; overlays of the 3d view drawn on the main viewport; keys pressed in the separate windows passed on to the simulator, so the shortcuts of the editor work there too
2026-10-08 21:04:58 +02:00
28b4e57133
feat(loading): optional background loading: sound files decoded by worker threads (sound.asyncload), data of dds textures read by worker threads (gfx.textures.streaming), gl textures of vehicles farther than a multiple of the draw range released (gfx.textures.releasedistance); all off by default
2026-10-08 16:17:46 +02:00
maj00r
978b99b7e5
feat(scenery): models laid along curves (sweep nodes), bent to follow the paths or repeated along them, loaded and saved with the scenery; trainsets put on a path while the simulation runs; trainset turned around by reversed after its header: the first vehicle stays at the offset and leads towards point 1, the rest stands behind it; launcher keeps reversed trainsets and can turn one around; memory cells saved with the new name of the path they name; events tell their targets and the events of a multiple event; renderer tells whether the cursor is over a surface; vehicle placed in the editor entered when the driving goes on
2026-10-06 22:19:32 +02:00
96cd3e32ef
feat(terrain): file.binary.terrain.checksum setting for the check of binary terrain files against their text: full (length and checksum), simple (length, the default), off
2026-10-06 19:11:48 +02:00
0ae0aecde8
fix(scenery): binary terrain files named by terrain directives loaded once and only as a complete set, with fallback on the default SBT or the text files; default SBT no longer ignored and rewritten on every load
2026-10-05 23:51:01 +02:00
maj00r
78c4b9f6df
feat(editor): add orthographic top view toggle
2026-10-03 02:41:34 +02:00
73f2f68aa0
feat(editor): edit session (-edit) and scenery layers
2026-10-02 21:29:18 +02:00
jerrrrycho
4137f5504a
fix: sonar sast fixes - sonar.yml, nosonar, linux chmod modification
2026-09-28 21:07:53 +02:00
76eede79aa
Merge pull request #154 from MaSzyna-EU07/uart-independent-dynamic-brake
...
Add independent dynamic brake support (eg. Vectron) to UART controllers
2026-09-05 20:04:34 +02:00
maj00r
0aceb120e2
make targetfps great again
2026-08-25 18:03:55 +02:00
Ryba04
72f932e5d9
Add independent dynamic brake support (eg. Vectron) to UART controllers
2026-08-16 21:34:22 +02:00
combolek
d863ec18c3
uilayer: Implement ui.bg.opacity setting ( #139 )
...
uilayer: Implement up ui.bg.opacity setting
2026-07-12 00:41:25 +02:00