Original galaxy grid and StarMapLine source pass
This is an offline source/texture/shader restoration. The extraction does not run game code, attach to a game process or issue network requests. OriginalGridWorldWidthRestored=true concerns the verified world quad and width. OriginalGridFullRestored=false retains the remaining projection, shared output and sampler-quality boundaries.
Actual grid material and primitive
All native addresses below refer to pinned image SHA256 6891f70a021fa9f3a0e00458c284f48d1226e68ae7fc02ad48081aed47857e93, not the updated live executable.
3A1EDE0 writes exactly198 world segments into *(renderer.viewport[index]+40), viewport slot8. Slot6 is the separate focus ring and is not the grid. 3A441A0 constructs slot8 through 39FAC80, using render-config fieldF8. The frozen configuration at295:14000 gives the exact name SectorLine; original format string551F708 is %s_nodepth. This therefore selects the actual sectorline_nodepth FGM, shader class StarMapLine.
Render-config1A0 is a style pointer to506:4096, not a material. Its source RGBA is (.3,.9,.9,.15) and world half-width is .02ly. Config1A8 is byte8 and becomes the atlas-row divisor. Core.GalaxyOriginalGrid provides the source generation, snapped relative coordinates, decade-dependent widths and198 segments. The renderer adds the original Sol origin (49985,40985,24105) before storing float endpoints, as the original producer does.
The constructor chain 39FAC80→3C01470→3C10980 supplies six original half4 corner/UV vertices and an extra float endpoint selector:
| Vertex | UV/corner float4 | Selector |
|---|---|---|
| 0 | (0,1,-1,-1) | 1 |
| 1 | (0,0,-1,1) | 1 |
| 2 | (1,0,1,1) | 2 |
| 3 | (1,0,1,1) | 2 |
| 4 | (1,1,1,-1) | 2 |
| 5 | (0,1,-1,-1) | 1 |
3C11750 stores each64-byte record as XYZ at0, second XYZ at12, half4 at24, RGBA at32, pattern float4 at48. The grid supplies half4(10,.1,halfWidth,10) and pattern(0,8,1,0). The line shader uses the half4's Z component directly. There is no fixed pixel width, minimum pixel expansion or extra scale factor.
The original VS normalizes the line direction and eye direction, expands each endpoint by normalize(cross(viewDirection,lineDirection))*corner.w*halfWidth, and selects endpoint2 only when the mesh selector exceeds1.5. Along-line UV is zero at the first endpoint and segmentLength*pattern.z+pattern.w at the second. Vertical UV is (corner.y+pattern.x)/pattern.y, so the grid selects exactly the first eighth of the original pattern atlas.
Exact texture and distance fade
Build-OriginalGalaxyGrid.py verifies the original material bundle and config hashes, exact image hash, actual graphics format-reader instructions, source quad constants and publisher vtable. It copies sectorline_nodepth.pdiffusetexture from source resource19b9e393c96329f63707aeade6a46e8cf3b71398. The texture is512²,10 mips,353280bytes including original row padding. Internal format107 is mapped by the real table4E2E500 to DXGI98/BC7_UNorm. It is not a guessed colour format or an sRGB substitute. The payload SHA256 is 218423e603214f4957bfbc49cab9d91c22f088acdc01a845b079864e589b68bb; deterministic gzip is4719bytes.
The actual decoded atlas alpha was inspected. Its first row is a continuous white interior with transparent edges; the other seven rows contain distinct dash patterns. It must not be replaced by a synthetic constant-alpha line.
The original pixel shader computes t=saturate(length(eye)*.04), interpolates the two radius values and two range values, then evaluates saturate((distance-radius*range)/(radius-radius*range)). Final alpha is that fade times the sampled atlas alpha times source RGBA alpha. RGB is source RGB times the shared RGB multiplier. The production pass converts the unassociated source output to the map surface's premultiplied blend convention without changing its RGB composition.
Original 3A5BD80 creates publisher3A09210 at renderer8D0 and associates it with material940. Its vtable551EF18+10 is the same 3AAC040 named-property publisher as other galaxy materials. 3AB44E0 copies config98 into named wrappers gAlphaFadeRange=.38, gAlphaFadeRadius=2.31, gAlphaFadeRangeFar=.06, gAlphaFadeRadiusFar=2. The effect's retained frozen reflection block contains the four local descriptors in Radius, RadiusFar, Range, RangeFar order; their exact32-byte records are preserved in original-grid-line.json. The final GPU scalar-offset interpretation is kept distinct from proof that these names and values are published. The source-space pass uses this explicit order; it does not claim a fully restored runtime material pipeline.
The base StarMapLine variant is used. The NearFade variant has an additional camera-forward depth fade, but the selected FGM has no NearFade parameters. A material-feature activation path for that variant is not assumed.
Independent verification
research/GalaxyGridShaderProbe compiles the production rendering partial and HLSL, and uploads the original embedded BC7 texture. It renders Sol, galactic-centre and distant cameras. It separately draws the same records with the actual original VS/PS DXBC, original half4 mesh and original input semantics. Controlled shared RGB multiplier1 and identical fade inputs are supplied to both paths; this validates the port without claiming that1 is the game's runtime multiplier.
At1600×900 the mean maximum-channel absolute8-bit difference is.0777/.0536/.0181 for Sol/core/far. Pixels differing by more than3 levels are3300/233/28 out of1,440,000. The small nonzero differences are consistent with the port evaluating the current camera projection through camera basis/eye subtraction while the original DXBC receives a precomputed matrix. A separate actual rasterization fixture gives40pixels at scale20 and10pixels at scale5 for a1ly world half-width, and zero width submits no primitive. All three rendered full-size images were viewed; they retain fine perspective lines and original decade widths.
Two Core regressions verify the exact padded BC7 mip chain, named fade data and independently decoded atlas rows/borders. Their success does not certify screenshot parity or complete original frame output.
Remaining boundaries
Original ordinary-screen FOV56.249000549°, narrow-aspect compensation and near.1 are now integrated in Core and GPU. Infinite reverse-depth projection is now separate from finite QueryFar catalogue/draw bounds; the original native LOD radius remains unconfirmed. The actual shared RGB multiplier/final HDR output, exact runtime sampler quality and final material scalar binding remain separate evidence. The current sampler performs linear mip filtering with wrap, and the controlled shader comparison uses the same state on both paths. No arbitrary line brightness or minimum pixel width is introduced to hide these gaps.