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

XFEEDToolBox

【WinUI】XFE精英危险工具箱

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

Original Dust source, shader domain and default RGB effect

Pinned source image4.4.2.0 SHA256 6891f70a021fa9f3a0e00458c284f48d1226e68ae7fc02ad48081aed47857e93. This is offline evidence. It neither reads the current game's settings nor claims a screenshot of its current GPU output. Production Dust remains disabled.

The source/input question is now resolved

Extract-GalaxyEffectShaderLinks.py matches actual five-uint keys through native loader4FA720. The Dust material's actual VS/PS are DistantMilkyWayDust_Forward0_0, not a neighbouring shader or a same-signature guess. Their hashes are fixed in the independent probe.

3A643D0 obtains the dynamic input descriptor from3C0D9D0, then passes it through 39FAEE0→3C01470 into the original quad.3A1E980 uploads the complete array of 56-byte records without modifying their fields. The actual descriptor is:

Semantic Byte offset Source format DXGI format
POSITION0 0 1 2, R32G32B32A32_FLOAT
POSITION1 16 38 10, R16G16B16A16_FLOAT
POSITION2 24 1 2, R32G32B32A32_FLOAT
TEXCOORD3 40 1 2, R32G32B32A32_FLOAT

The static unit quad is separately made by3C10DC0/3C10980: Half4 UV/corner plus an unused float vertex ID,12-byte stride. There is no intervening rotation conversion. Original3A469D0 generates a float angle in0..2π at28-byte record+14; 3A21BC0 copies that float into half4.xyz, and half4.w receives the layer flag. The angle really reaches POSITION1.x as a half float.

The square-root domain is original behaviour

The original VS uses sqrt(1-x*x) on POSITION1.x. No sine or saturation is inserted by the tool. The original producer supplies angles outside[-1,1]. That is a real property of the pinned source path, not a remaining ambiguity about whether format38 means Half4 or UNorm.

research/GalaxyDustShaderProbe executes the actual original VS/PS on WARP with the original Half4 quad,56-byte records and BC1 atlas. A controlled nonzero tint is used only to make geometry contribution measurable. Angles0/.5/1 draw about12384 pixels; angles2 and2π draw no RGB pixels. Readback contains no NaN values. This observes out-of-domain geometry producing no fragments on WARP; it does not assert all live GPUs or a newer client have identical behaviour.

The actual original coarse Dust generator emits140 records for the Sol fixture. After the original half conversion,26 have x<=1 and114 exceed1. Rendering all140 and rendering only the26 in-domain records produces exactly equal RGB images under the probe's explicitly controlled frame-fade inputs. This is evidence against silently changing the source angle with sin()/clamp(), not authority to rewrite the original renderer's angle semantics.

Actual frame blend and authored zero tint

The FGM initially says Src4/Dest1. Original frame publisher3AB44E0 explicitly overrides the Dust material at renderer8E0 to Src0/Dest2/Op0, publishes runtime handle950 and replaces quad2E0's complete material. The blend conversion is therefore RGB Zero/SourceColor/Add, alpha Zero/SourceAlpha/Add. It is a multiplicative transmission layer, not another additive luminous cloud layer.

The actual original PS computes 1 - atlasRGB * pDustColour * vertexFade, then multiplies by HDRRead×HDRWrite. The authored FGM's pDustColour is exactly(0,0,0). With verified constructor HDRRead256 and Write1/256, RGB transmission is1. The original PS is therefore an RGB identity for this known default source configuration. The probe verifies zero changed RGB pixels for all angle cases and the full140-record coarse dataset. It separately tests tint1 as a control; that value is never used as a replacement production default.

Alpha follows its separate original multiplication and is not included in the RGB-identity statement. The game's full-frame alpha/output handling remains separate from the tool's premultiplied composition surface.

3B11860 supplies the original three alpha/size factor pairs: (2.659,103.566),(9.826,13.726),(4.848,16.692), retaining exact source float bits. The probe's coarse record shape uses those source factors, but its near/far overlap values are deliberately controlled; complete multi-layer frame fade is not declared restored.

Reproducible evidence and remaining limits

Extract-GalaxyDustEvidence.py verifies the pinned image, format/angle constants, actual shader links, authored zero tint and hashes of eight source functions. It writes power-outer-sources/background/original-dust-evidence.json. artifacts/galaxy-dust-shader-validation/report.json records the actual GPU checks, including the explicitly controlled nonzero tint and frame fade.

The result row named real-original-coarse-dust-records exposes stable fields for reports: sourceRecordCount=140, validHalfRotationRecords=26, outOfDomainHalfRotationRecords=114, zeroTintChangedPixels=0 and allVersusValidSubsetMaximumRgbDifference=0. Its frameFadeExplicitlyControlled=true and productionDustEnabled=false must accompany those results; the tint1 control is not a recovered runtime setting.

Remaining unknowns are any later runtime nonzero pDustColour override, complete three-layer near/far overlap scheduling and the current live client's final output. There is no basis to add arbitrary visible black dust to mimic the reference. OriginalDustEnabled=false is retained, and full parity is not claimed from the default-only RGB result.