XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEEDToolBox

【WinUI】XFE精英危险工具箱

公开
关注 0 Fork 0 Star 0
UTF-8

Authored original MilkyWayPlane

Source image4.4.2.0 SHA256 6891f70a021fa9f3a0e00458c284f48d1226e68ae7fc02ad48081aed47857e93. All analysis is offline; no game calls, running memory or fabricated stars.

Shader identity, including its non-obvious alias

The material in bundle19b9e393c96329f63707aeade6a46e8cf3b71398 names Alpha_UnlitNoScale_StarMapFacingAlpha_NearFade. Its actual vertex shader has the unrelated-looking alias vs_Alpha_FresnelDiffuseLinearToGammaSpace_AntialiasClipOnColourAlpha_Forward0_0_0_Win64_SM50. It is proven by native loader4FA720's five-uint key matching, not by proximity, similar names, or a matching signature.

The loader indexes ahsd3f record fields10/14/18/1C/20, then resolves the second frozen effect object's20-byte key table(+58 pointer/+60 count) into shader slots at firstFrozen+48. Extract-GalaxyEffectShaderLinks.py repeats this against all897 shader records and exports the precise Plane, Core and MW/Dust associations. The previously considered generic Alpha_UnlitNoScale VS has an incompatible signature and is not used.

Original geometry and instance data

The original plane is4 packed vertices and6 indices in vertex format8,40 bytes per vertex. The original indices are0,1,2,2,3,0. Input-definition builder4C84400 constructs packedVertexDataA/B/C with total stride40. Its two16-byte fields and final8-byte field place the used attributes at0/16/32. The vertex shader decodes position from A.xyz, normal from A.z's three low bytes, and UV from B.x's two u16 values. Bone indices/weights C.xy are skipped for this unskinned instance.

Actual Galaxy initializer3A5BAF0→3B067D0→3C14920 creates model-array index1, scale100000, basis(-X,+Y,-Z), original centre(50000,40955,50000).3C14920 calls scale setter7B6E20;3B067D0 installs its source basis and translation.

The actual336-byte GPU instance producer is4350170; its only append target 434FE20 copies the whole150hex-byte record. It divides basis by model scale, extracts and normalises quaternion(0,1,0,0), then packs (q+1)*32767 with cvtps2dq and u16 extraction. The scale comes from unbacked global6054BF0, whose initialization is independently proven: leaf14FFF0 loads float32767 from5A72C60, broadcasts it and stores6054BF0. Its CRT pointer is4DDE7C0. The packed result is32767/65534/32767/32767. The source initializer4C861B0 sets the unskinned palette base to0;4350170 overwrites position/scale/quat.

The original DXBC prints both decode coefficients as.000031. Their exact bits matter: UV/quaternion uses38000100 (1/32767), while the radial position branch uses38000080 (2/65535). Using the latter for UV or quaternion caused a real original-VS/PS image comparison failure and was corrected. The production port preserves the actual packed quaternion decode, rather than assuming a generic UNorm16 convention.

Texture and pixel shader

Build-OriginalGalaxyPlane.py verifies source hashes, CRT instructions, decode coefficients and texture format table4E2E500. Source format108 is DXGI99, BC7_UNorm_sRGB. The exact2048² texture retains all12 padded mips,5596160 bytes, SHA256e3643ba432b84d2c34ca512122133559a813bbb80545fcd1c03c87087a7f4cde. The complete packed mesh is196 bytes, SHA256 ceb482f68e17a1d05cd8c36f488ee1d46bc003e8eed290284e83fb5a73dec743.

The PS emits textureRGB×.946×HDRWrite. Alpha is textureAlpha multiplied by abs(dot(-normalisedRay,normalisedNormal))^.917 and saturate((forwardDepth-1772.40698)/14392.19043). These are the named source material values, independently consistent with the two original PS CB2 vectors. The compiled state bytecode copies actual material Src4/Dest5/Op0, so it uses SourceAlpha/InverseSourceAlpha/Add for RGB and alpha. The authored render layer is1, versus Core10 and MW13. Full frame scheduling/runtime overrides remain independently unobserved; OriginalPlaneFullRestored stays false.

Independent GPU verification

research/GalaxyPlaneShaderProbe binds the actual original packed vertices, 336-byte instance and linked original VS+PS. It compares them against the new decoded-mesh/VS/PS port in an R32 render target. Sol, centre and above each run with Write1 and1/256: no nonfinite values, no component error above.005, maximum difference.000582, mean below1e-6. The three generated images have been viewed. The plane is nearly transparent when viewed within its plane, as its source facing/near fade dictates; above it shows the authored spiral texture.

The production partial is independent, b9/t18/s3, with an explicit optional HDRWrite argument. It does not add point stars. The two resource/packing tests also pass. Actual application integration/visual acceptance is a separate check.