maj00r
|
2804978464
|
feat(track): at a crossing at a wide angle the rails and guard rails ending against the side of another rail or guard rail are glued to it, their ends fitted to its profile height by height instead of square ends with caps and a gap of 5 mm, so the corners of the crossing are closed; the ends at the flangeways stay open for the flanges; a loft span can shift its first and last cross-section along the track by a fit given per height of the profile, and the rail profile gives the outlines of its field and gauge sides
|
2026-10-17 23:28:42 +02:00 |
|
maj00r
|
5544fbc43b
|
revert(track): no filler block at obtuse crossings, the flangeway between the point rail and the knuckle rail stays open as before
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
c47147d277
|
fix(track): the filler block of an obtuse crossing ends where the head of the point rail reaches its full width, so it only closes the flangeway and no longer shows as a plate in the widening vee between the point and the knuckle rail
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
7786076bda
|
feat(track): at a crossing at a wide angle each guard rail is glued to its running rail by a filler block between their webs along its whole length, so the flangeways and the gaps cut for the wheels of the other track have a floor instead of showing the ballast; the filler of the track not going through lies a millimetre lower where both overlap
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
618a3004dd
|
feat(track): at an obtuse crossing the flangeway between the point rail and the knuckle rail is closed below by a filler block at the height of the webs, from the meeting point to where the point reaches its full profile, so the ballast no longer shows through the gap; the rail profile gives the middle of its web and the height where its head starts above it
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
a30918a95e
|
fix(track): at an obtuse crossing the rail ending at the meeting point and the rail going on from it are joined by a mitre on the bisector of the bend, like one bent knuckle rail, instead of two square ends overlapping in a wedge, and the check rails of the two tracks meet there the same way instead of overlapping each other by 3 cm; a loft span can turn its first and last cross-section about the gauge line for such joints
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
156c118308
|
fix(track): the legs of an acute nose are cut along the line halfway between the gauge lines of the two rails, followed every 10 cm from the tip to where the full profiles part, instead of a straight bisector, so the nose of a switch frog with a curved diverging path has no seam opening along its middle
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
649dde731c
|
fix(track): a loft cut along its length keeps its surface where the cut crosses a point of the profile: each span between stations sorts the points as clamped or open by its middle, so the ring at a station where a point lies right on the edge does not drop the next point to its own height and leave a dark groove along the top of the rail; clamped points that are not on the edge are kept between the heights of the edge on both sides of the run, so they never stand above the surface
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
275f732c66
|
fix(track): the pieces of the top of a rail head are laid only where they have width on the head between its cut edges, split where the edges of the wheel treads cross those cut edges, and the shared spans reach 2 cm further for the fade, so no inverted piece is drawn inside the neighbouring rail and no fin stands out of the head; EU07_EDITOR_TREADS paints the pieces in plain colours: blue shared, green and red the fades, yellow the edge of the rolled band, magenta the matte part out of reach of the wheels
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
a107b04fcf
|
fix(track): the treads of the wheels reach from the gauge line as far as a wheel 140 mm wide with the back faces 1360 mm apart does, 820 mm from the axis of a standard gauge track, instead of a flat 100 mm
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
674efade70
|
feat(track): frogs, crossings and shared running surfaces only for the rail profiles the sceneries of the package use: tracks without a profile, default, s60, uic60 and s39; rails of other profiles are laid whole again
|
2026-10-17 23:28:41 +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
|
93d512c0f2
|
fix(track): obtuse crossings share the running surface too: the top of a rail crossed by the treads of the wheels of the other track takes the brighter texture between the gauge line of the other rail and the edge of its treads, so the boundary runs aslant on both sides
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
2c8e8d00c4
|
fix(track): the shared running surface ends along the edge of the treads of the wheels of the other track, not across the rail: on a nose leg the edge runs aslant over the head, on a stock rail it follows the curve of the other path; only the top of the head takes the other texture, the rest of the rail keeps its own
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
45ef9c470f
|
fix(track): the two legs of a V nose are cut along the bisector of their gauge lines and meet in the middle as one nose, from a tip 12 mm wide to where their full profiles part, instead of the splice rail giving way under the head of the point rail
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
59446f9a98
|
fix(track): flat rail frogs have no plates in the V; the shared running surface of a nose leg goes from its tip to where the wheels of the other track stop reaching its head, on the leg only and not on the wing beside it; the stock rail of a switch is shared up to a quarter of the blade length, where the blade head is half its width and takes the wheel
|
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
|
2f8aeb24c0
|
fix(track): a crossing of grooved rails is one flat block where their lofts overlap; the rail cut by the other covers the roundings of the rail going through, the tops in the block are flat in one texture, the plates of the V reach up to the rail top, the walls of the cuts are lit and textured as walls, and the nose between two flangeways starts blunt at the width of a nose tip instead of a thin sliver standing in the groove
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
9343ebcb13
|
feat(track): frogs and crossings for every rail profile; grooved rails share the floor of their grooves where they cross and need no check rails, the V beside the rail going through is one block where the lofts of the rails overlap; the nose of an acute frog of flat rails is filled between its legs as far as their lofts overlap, like a cast insert
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
59f1a5a144
|
fix(track): the lowest of two height lists also takes the points where they cross, so the top of an obtuse point rail is not cut narrower than its sides; the end of a short neighbour track joined at a crossing is the nearer one, not any within half a metre
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
215f16e871
|
fix(editor): self-test frog takes the throat, nose, wing end and check rails from the sizes the rails are laid with, so the wing end is logged where it is laid; self-test crossings tells crossings at middle angles apart and counts them
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
1a3a38e96d
|
refactor(track): one plan projection, cross product and meeting of two lines in plan for the crossings of rails, the frog of a switch and the check rails, in place of copies in each
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
405081e81c
|
refactor(track): the rails of the two paths of a switch are laid by one loop for left and right switches alike, the side of the blade of a path and the blade itself come from one place, used when a switch is made, thrown and its frog found
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
809b48c2ab
|
refactor(track): the blades of a thrown switch are drawn again with their cut faces by one helper instead of four copies; self-test command switches sets every switch to a path and moves its blades there at once
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
e324eb10f9
|
perf(track): pieces of gauge lines whose bounding boxes do not meet are skipped before they are intersected; self-test railtime logs how much of the time goes to finding the crossings
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
36fb68d8f9
|
perf(track): the gauge lines, crossings and check rails of a track are kept until a track is made, rebuilt or removed, so laying the rails of a track no longer recomputes its neighbours' crossings for each wing rail; self-test command railtime times planning the rails of all tracks
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
929294af24
|
feat(editor): self-test command guards logs each guard rail and what each of its ends and breaks is cut along: the rail of the other track, how far off its gauge line and how skewed; a fault when a cut is not along a rail, or a glued end of the frame of a crossing at a middle angle is not on the face of a guard rail of the other track
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
7088618d90
|
feat(editor): every switch laid in the editor gets the key frogs, a box in the Switch panel sets or clears it as one undo step; the editor rebuilds the tracks crossing a changed or removed one; self-test commands frog, crossings, frogkey and geomhash; Polish translation
|
2026-10-17 23:28:41 +02:00 |
|
maj00r
|
2159d682f2
|
feat(track): rails are cut where they cross other rails: a switch with the key frogs draws its frog, wing rails and check rails from its rails, tracks crossing other tracks get acute frogs with wing rails and check rails, obtuse points, guard rails along the quadrilateral of a crossing between 20 and 45 degrees and broken rails with guard rails at wider angles, the track going through chosen by name; sizes come from the rail profile, only for the profiles default, s60, uic60 and s39, others are laid whole; rail ends left open are closed with their cross-section; switches of older sceneries, with check rails in their includes and no key, are drawn as before
|
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 |
|
|
|
918c056b83
|
Merge branch 'master' into feat/gl46-migration
|
2026-10-17 20:57:15 +02:00 |
|
|
|
802e356c91
|
Curve the bases of the clouds up towards their edges and start every billow at a height of its own
|
2026-10-17 20:03:26 +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 |
|
|
|
1730f400ad
|
Let the base and the top of every cloud stand a little off those of its layer
|
2026-10-17 19:43:18 +02:00 |
|
|
|
df48637718
|
Switch the fog over the sky to the fog without the clouds as soon as the volume holds any cloud
|
2026-10-17 19:31:45 +02:00 |
|
|
|
56889679d9
|
Keep the clouds of the fog volume off the sky, where the ray march draws them already
|
2026-10-17 19:24:36 +02:00 |
|
|
|
1eeb5013cb
|
Light the volumetric clouds by the sun three times as brightly
|
2026-10-17 19:03:46 +02:00 |
|
|
|
1152791e8c
|
Space the steps towards the sun of the clouds geometrically and follow more orders of scattering
|
2026-10-17 19:01:39 +02:00 |
|
|
|
e1900a9cd3
|
Leave the finest octaves out of the cloud coverage noise so the sides of the clouds get no upright grooves
|
2026-10-17 18:41:15 +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 |
|
|
|
22bf015939
|
Shade the volumetric clouds by the cloud over each point, not by the density at it
|
2026-10-17 17:24:51 +02:00 |
|
|
|
27e5c07837
|
Add screen-space contact shadows for the sun, lamps and headlights
|
2026-10-17 03:11:47 +02:00 |
|
|
|
c4da5c9867
|
Give the prefiltered environment map a texture unit of its own
|
2026-10-17 02:16:58 +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 |
|
|
|
8dd80c4d2e
|
Even out the fog cells with their neighbours and stagger the points next to lamps
|
2026-10-17 00:37:58 +02:00 |
|