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

XFEEDToolBox

【WinUI】XFE精英危险工具箱

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

Territory style and geographic contours

The original-client source is pinned to 6891f70a021fa9f3a0e00458c284f48d1226e68ae7fc02ad48081aed47857e93. Current ED5A function/global bindings are separately closed by research/galaxy_power_territory_constants.py and its output artifacts/galaxy-query-research/power-outer-sources/territory-constants.json. All work described here is offline; no current-game live counter/style validation has occurred.

Original numeric style

3B27690 emits 32-byte records {XYZ, radius, RGB, alpha} only for controlled metadata (+C != 0) and nonzero 3B27100 colour alpha. Its radius is 3B28170(mode=1) * config[12C]. The decompiler omits much of the float return; the complete 137-instruction assembly is retained in power-outer-sources/assembly/asm-full-3b28170.txt.

Base constructor 3AD9FA0 copies configuration +1C to object +64 (original .7). With mode bit 1, 3B28170 takes the original activity counter c, then calculates (config[11C] + (config[120]-config[11C])*c) * object[64]. Original resource values are .75 and 2.0, and configuration +12C is 11. Therefore inactive activity has radius 5.775; activity counter .5 has radius 10.5875; counter 1 has radius 15.4. With minimum disabled there is no additional clamp of the native counter.

Activity enable and minimum enable are distinct. When both original activity +1A0 and minimum +198 switches are true, size uses m=min(minimum,.99) followed by clamp((counter-m)/(1-m),0,1). The colour predicate separately hides counters below the raw minimum. Mode bit 2 adds a camera-distance size term, but territory geometry passes only mode 1, so its radius must not receive that distance multiplier.

The ordinary Territory point getter differs from this geographic radius. Its original vtable 552E520+48 selects 3B27F60, whose complete 15-instruction body passes mode=2+(activityEnabled?1:0) to 3B28170. Thus activity disabled has point base size .7, whereas its geographic geometry has base .525. Activity enabled has point base size radius/11. Both ordinary-point branches additionally multiply max(1,min(distance(system,cameraEye),50)/25): original configuration +134=25 and +138=50; constructor 3ACF4A0 saves 1/config[134] at +1AC. Original update 3AF6A80 copies the camera's matrix translation +30..3C to +150..15C every frame. The distance multiplier is 1 through 25 ly, 1.5 at 37.5 ly, and 2 from 50 ly onwards. This multiplier is consumed only by GalaxyStar.PowerTerritorySize, using the current perspective camera eye; it never enlarges the separate geographic contour radius.

Normal geometry opacity is original configuration +130=.15 multiplied by colour alpha 1. Original debug flags 5FDB275 (colour alpha) and 5FDB277 (geometry radius/alpha) can override these values. Their exact ED5A RIP references are verified; the adapter leaves style unknown whenever either override is nonzero rather than assuming a debug branch's state.

Two colour representations

For controlled systems, 3B2F080 selects the actual owner definition index and its original dual Power colour. Ordinary stellar getter 3B265D0 returns the second/raw triple (+0C). The geometry producer 3B27690 instead copies the first/linear triple (+0). Both are preserved as rawRgb and linearRgb.

Definition colours are converted by 3AC40B0(mode=1) and 6CC950. With original gamma g=2.4 and offset a=.055, raw cutoff is t=a/(g-1) and pivot p=(a*g/((g-1)*(1+a)))^g. Raw component v<t produces v*(g-1)/a*p; otherwise it produces ((v+a)/(1+a))^g. This is continuous and differs from replacing it with the rounded standard .04045 threshold. HDR values remain floats. For example raw (0.4,0.5,1.5) yields approximately (0.13286832,0.21404114,2.5371552).

Native copy and wire

Navigation.GalaxyPowerTerritory.cs reads ready original Power metadata and actual owner definitions, plus the original general metadata eligibility condition 140AA80. It never calls the mutating original metadata getter, UI callbacks, or gameplay actions. It returns no bubble for unoccupied metadata. Missing/changed caches, unavailable general descriptors, invalid definitions or debug overrides leave style unknown. Original state-index calculation 3B34860 is preserved numerically; its names are not inferred from public API enum order. Owner/state/UI masks are still the consumer's responsibility, using actual facts.

galaxy.facts accepts includePowerTerritory, territoryActivityEnabled, territoryMinimumEnabled, and territoryMinimum (0–1). Enabled territory activity requires the existing explicit original includePowerActivity scope/actual-ID/action request. Minimum requires activity; it is not used to infer activity enable. Each included row echoes these settings and scope/ID/action, with nullable rawState, stateIndex, ownerInternalPowerId, radius, rawRgb, linearRgb, and opacity. Unknown style remains an object with the exact query binding and null style fields. No include returns null. Cancellation and context changes retain existing generation rules.

Exports XFENavigationGalaxyPowerTerritorySelfTest and XFENavigationGalaxyPowerTerritoryWireSelfTest each expect 255; all thirteen isolated production-source fixture groups pass. Tests cover exact radius endpoints, disabled versus active minimum, native owner index versus actual ID, dual colour/HDR, source/admissibility/override rejection, no writes, precise unknowns, wire validation, binding, cancellation, pagination and stale generations. They are not live-game evidence.

Actual Territory billboard and remaining output gap

The actual Territory consumer is now closed. Frame 3A26260 passes the active128-byte supplemental block to 3A27E60. Its block+70/+78 are the count/pointer for the exact32-byte records emitted by 3B27690. It multiplies each record's alpha by the prepared-frame fade helper 3AFBD80 and appends it through 3C056F0 into the primitive at per-viewport+58. Creator 3A441A0 loads that primitive from render-config+110 through 3C011D0; its material is SimpleBillboardGlow, shader GalaxyMapSimpleBillboard. The different shared callback 3A26BF0 -> 3AF4430 -> current visualisation+70 is a no-op for Territory (vtable552E520+70=39F0). Its64-byte callbacks belong to outer geometry and cannot stand in for this32-byte consumer.

Original GalaxyMapSimpleBillboard DXBC directly constructs worldCentre + cameraRight*cornerX*radius + cameraUp*cornerY*radius, with corners±1. It has no tangent-sphere projection, minimum2px size, or camera-inside-radius rejection. PS reads pAlphaTexture.r, multiplies it by source alpha and linearRGB, then sharedRGB multiplier, and emits alpha0. The source material disables emissive rescaling. GalaxyPowerGraphics.cs now uploads the original512²/10-mip mask and draws that actual camera-axis billboard, replacing the former tool outline. With the existing premultiplied blend state, alpha0 retains additive RGB without obscuring the preceding layer. Ordinary-point activity and camera-distance size rules remain separate from this region radius.

The texture is source simplebillboardglow.palphatexture,181248bytes including row/mip padding, payloadSHA256 61adefceaa631e66c4015df5c06b1d9fe154de86cb2d3be693a8be4be20208f9. Its sourceFormat101 is BC4_UNorm, not BC1 or DXGI101. Exact pinned reader 51D4E0 takes R9d into EAX, loads table4E2E500[EAX], and uses that native format; entry101 is80, while95 is71/BC1. Build-OriginalGalaxyTerritoryGlow.py checks original image hash, exact reader instruction bytes and table entry before copying all mips. A BC1 trial was visibly invalid and was discarded; the independently decoded BC4 source is a continuous monochrome glow. Core tests decode all ten padded levels and check the actual centre/middle/exterior ordering.

OriginalPowerTerritoryBillboardRestored=true covers this geometry/mask/shader arithmetic. OriginalPowerTerritoryFillRestored=false remains because original prepared-frame fade, the shared RGB multiplier and final HDR output are not yet restored. The tool does not apply guessed exposure or gamma to conceal those gaps. Current perspective near/far values also remain tool parameters, shared with all map layers.

Original outer Activities routine 3B064F0 does build a camera-facing contour basis and tangent apparent extent, with an additional 2.222222 allocation multiplier. Its callback UV/material is not closed, so applying that allocation multiplier directly to a visible circle radius is unsupported. Range-shell callback 3B33690 also remains a separate primitive. The current outline presentation deliberately leaves those exact material details pending and does not invent a filled sphere or XZ plane.

research/GalaxyTerritoryShaderProbe compiles the actual production VSPowerContour/PSPowerContour, uploads the embedded BC4 mips to D3D11 WARP, and reads an R32G32B32A32Float target. Synthetic linear input(2,1,.5,.15) yields centre(.13262145,.066310726,.033155363,0); two draws equal twice every RGB value, zero source alpha produces zero output, and a camera within the radius no longer incorrectly suppresses the billboard. The512² source and final GPU PNG were actually inspected. Report and shader hash are in artifacts/galaxy-territory-shader-validation/report.json. Older outline-only five-style evidence remains historical and no longer describes the current renderer. Integrated app capture is a separate check; none of these fixtures is live-game parity evidence.

Original GZM boundaries

GalaxyZoneGraphics.cs and GalaxyZoneRaster.cs render the exact Core original 2048² byte-ID GZM (raster SHA256 4f29773d81898c1889a7c7e766e09bff13df52f18d8eda57e17d6de72241272a). It uses source transform (pixel*4096/83)-origin, not galaxy density scaling. The source yields 54,490 boundary pixels; twelve averaged coverage mip levels retain those same boundaries at distance. Near views use categorical ID transitions with screen-space antialiasing. Only lines are coloured, alpha at most .14; no points or fake regions are introduced. Its Y=0 annotation plane and line shader are tool presentation choices, not a claim to have restored the original GZM material.

The final HLSL WARP probe rendered and inspected overview, perspective, nearest-boundary, close Sol and grazing views under artifacts/galaxy-zone-shader-validation/images/. Respectively 2.14%, 2.28%, .30%, 0%, and .043% of pixels changed. Close Sol appropriately has no nearby boundary. Root separately completed an actual integrated app capture at work/visual/galaxy-full/original-data-11/original-galactic-zones-composite.png.