7667e5b2ec
fix: the bugs and vulnerabilities SonarCloud reports on PR #216
2026-11-07 22:11:08 +01:00
8e85def98f
Merge pull request #240 from miloszunio/fix/gl46-editor-cursor-depth
...
fix(gl46): editor cursor depth read in the biased depth pass (port of 7078edf )
2026-11-07 19:58:31 +00:00
acbea51f81
fix: the build after the merge of master
2026-11-07 16:46:11 +01:00
miloszunio
3a4b878304
fix(gl46): read back the editor cursor depth and correct the depth pass bias
...
GL46 read the depth under the editor cursor in the depth pass of the scene, drawn with glPolygonOffset(-1, -1), and took it as it was: the ground came out about a pixel row farther than it lies (metres at a grazing angle). Same correction as 7078edf for vulkan: a 3x3 block read back, the slope and the unit of the bias taken back. The depth is also worked out in the view of the frame it was asked in, and the point kept in world space, so a moved cursor or camera does not shift it. See #238 .
2026-11-01 13:12:01 +01:00
0bc29af650
Merge remote-tracking branch 'origin/feat/switch-fastenings' into feat/renderers-cleanup
2026-10-31 17:13:45 +01:00
765153ad91
Merge remote-tracking branch 'origin/feat/switch-blades' into feat/renderers-cleanup
2026-10-29 23:55:04 +01:00
96100f1155
Draw the cab probe with all the lights of the cab
2026-10-29 20:05:03 +01:00
9904eddd0d
Light the cab with cablight/dashboardlight light points of the cab model
2026-10-28 20:55:45 +01:00
c4e23932bf
Add the optional Radius, ShadeSelf, CastShadows and SoftFalloff of FreeSpotLight and make FalloffAngle 360 a point light
2026-10-28 16:18:03 +01:00
e8a90507f0
Light the cab with the sun coming in through its windows
2026-10-28 12:19:43 +01:00
2a876befb0
Shade the sky and the sun by the scenery around the camera instead of the track environment flags
2026-10-27 16:02:36 +01:00
9dde5b0e5e
Take the ambient occlusion into the lighting and add a probe of the cab
2026-10-27 13:23:52 +01:00
ac0b4e5f15
Add a white balance to the tonemapping
2026-10-27 01:40:19 +01:00
719c729929
Improve rain shader
2026-10-26 15:51:56 +01:00
1841e6d7b0
Add NVIDIA DLSS to the Vulkan renderer (gfx.antialiasing dlss/dlaa) and gfx.buffer.percent
2026-10-25 19:35:33 +01:00
f20b1a3071
Replace cubemap scenery reflections with SSR, add Vulkan ray traced reflections
2026-10-25 13:54:49 +01:00
89f11895fc
Keep the walk's model block after the depth and shadow passes of the gpu-culled draws
2026-10-25 11:18:34 +01:00
252b9373ea
Add gfx.antialiasing (off, msaax2/x4/x8, taa) with temporal anti-aliasing in the GL 4.6 and Vulkan renderers
2026-10-25 05:17:41 +01:00
c48c58776a
Vulkan: parity with GL (P1–P7), shared GPU culling records (N6c), threaded command recording and render thread (M1, M4)
2026-10-25 03:06:01 +01:00
9b7d02e5fb
Vulkan: scene rendering (D1–D7) on a scene walk shared with GL (N6a, N6b)
2026-10-24 20:10:24 +02:00
bd589f272d
feat(vulkan): vulkan 1.4 core with the user interface and the launcher, shaders split into ogl46/vk14 with SPIR-V binaries loaded first
2026-10-24 05:47:11 +02:00
68fa5dc2da
feat(vulkan): gfxrenderer picks the opengl 4.6 or the vulkan 1.4 renderer (B1-B3)
2026-10-24 03:06:33 +02:00
6bcdb7dd05
perf(gl46): the geometry of the banks without user data in a few large buffers shared by them, so the multi draws take the chunks of many models at once (gfx.geometry.shared)
2026-10-24 01:49:02 +02:00
maj00r
85b76acca5
perf(sleepers): the instances of the sleepers and timbers of a track sent to the gpu once, as it's laid, and kept there in a buffer of their own; in each pass the runs of them in sight turned by the modelviews of their cells into the instance buffer of the frame by a compute pass, one dispatch and one barrier a pass, and drawn in one instanced draw for each model, part and level of detail, in place of the cpu turning every instance every frame
2026-10-24 01:40:34 +02:00
e53c44ed4d
perf(debug): cpu time of the parts of the culling and the draws of the instances of the main view in the gpu culling section of the debug panel
2026-10-24 01:38:33 +02:00
3e2d292709
perf(gpucull): keep the walks of the submodel trees of the instances from frame to frame and make them again only when the model changes (gfx.gpucull.walkcache)
2026-10-24 01:01:43 +02:00
maj00r
f155956669
perf(sleepers): the rails of each track for the fastenings worked out once and kept until its geometry is made again, it goes far or the crossings change, not again for every track laid around it; the fastenings laid only out to 30 m past where they're drawn, the tracks further out keeping their beams to lay them on as they come near; out past 50 m the tracks laid while the laying in a frame took under 2 ms, the rest in the frames after
2026-10-24 00:23:50 +02:00
794ac578de
perf(textures): with texture streaming read the data ahead of the camera instead of the whole scenery at load, drop read-ahead data unused for 5 min
2026-10-23 23:35:02 +02:00
336690ad8a
perf(debug): debug.memorystats switch for the heap counting (off by default) and the places of the large heap blocks in the memory section
2026-10-23 23:10:32 +02:00
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
maj00r
5aedbcdc1b
feat(sleepers): the timbers of a switch get the fastenings of the rails from the submodels plate, chair and check of their model: a plate under each rail where it lies on a timber, slide chairs under the stock rails along the blades, a fastening of both where a check rail or another rail of the frog lies close beside, the legs of the nose in one plate where they're joined; the rails sit on the plate, the blades ride on the slide plates of the chairs as high as the model has them, their webs shortened; the fastenings drawn within 120 m; selftest fastenings
2026-10-23 16:46:58 +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
867497b658
Simulate and light the smoke on the GPU and make rain and snow of particles
2026-10-20 16:44:27 +02:00