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
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
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
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
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
jerrrrycho
176427f96b
refactor: sonar c++20 changes ( #185 )
2026-09-28 21:08:15 +02:00
maj00r
1c2f397fc5
seed from ini can be word
2026-09-14 18:36:07 +02:00
maj00r
0aceb120e2
make targetfps great again
2026-08-25 18:03:55 +02:00
jerrrrycho
d85096f64d
reformat: remove redundant parentheses
2026-06-30 21:19:46 +02:00
1be56de0fa
Add sleepermodel optional parameter for tracks
2026-05-19 22:10:47 +02:00
docentYT
5367cb9940
Merge remote-tracking branch 'upstream/master' into utilities-simplification
2026-05-05 23:08:43 +02:00
docentYT
28baad8c5b
Refactor clamp_power_of_two
2026-05-02 00:35:50 +02:00
bae20a69e8
Bring back old simulator console as ini option showsystemconsole
2026-05-01 23:51:57 +02:00
docentYT
d1f16411a1
Replace clamp with std::clamp
2026-05-01 22:14:29 +02:00
jerrrrycho
17e83f70a2
refactor: split configparse
2026-03-15 13:25:54 +01:00
jerrrrycho
9f43dca48b
refactor: create paths namespace instead of global variables
2026-03-15 11:55:30 +01:00
copilot-swe-agent[bot]
7e49aa8740
Rewrite #includes to use explicit subdirectory paths
...
Co-authored-by: Hirek193 <23196899+Hirek193@users.noreply.github.com >
2026-03-14 19:16:48 +00:00
copilot-swe-agent[bot]
0531086bb9
Reorganize source files into logical subdirectories
...
Co-authored-by: Hirek193 <23196899+Hirek193@users.noreply.github.com >
2026-03-14 19:01:57 +00:00