docs(vm3): closeout - owner gate brief with the measured curve table; #422 filed; tests pin the shipped defaults
Opus narrow re-review of 51178f7c: APPROVE. Residuals closed: the AR plan
no longer says '<=1 LSB' unqualified (99.99% of pixels; 95 foliage-
silhouette pixels up to 73 LSB, 58 isolated); the campaign doc says the
same; AtmosphericColorPipelineTests now read the SHIPPED exposure/vignette
defaults from BuiltInAtmosphericRenderPack.Descriptor and the graph's named
DefaultVignetteStrengthFallback instead of literals.
Measured for the gate (offline Holtburg hillside, High defaults vs pack
off): mean luminance -17% noon, -44% dusk, p95 unchanged, clip 0.06% both;
neutral High vs pack off: 110,561 px at |d|=1, 95 at >=5 (foliage edges).
Evidence images under docs/research/evidence/vm3/.
#422 filed: one High-default offline capture exited with
STATUS_HEAP_CORRUPTION after a clean managed shutdown; 1 in 8 runs, never
under validation layers. VM7 gate item.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
51178f7c77
commit
a0157693ec
7 changed files with 111 additions and 8 deletions
|
|
@ -40,7 +40,7 @@ internal readonly record struct AtmosphericPostProcessSettings(
|
|||
Read(descriptor, preset, userSettingOverrides, RenderSettingSemantic.Exposure, 1f),
|
||||
Read(descriptor, preset, userSettingOverrides, RenderSettingSemantic.GradeSaturation, 1f),
|
||||
Read(descriptor, preset, userSettingOverrides, RenderSettingSemantic.GradeContrast, 1f),
|
||||
Read(descriptor, preset, userSettingOverrides, RenderSettingSemantic.VignetteStrength, 0.245f),
|
||||
Read(descriptor, preset, userSettingOverrides, RenderSettingSemantic.VignetteStrength, AtmosphericPostProcessGraph.DefaultVignetteStrengthFallback),
|
||||
Read(descriptor, preset, userSettingOverrides, RenderSettingSemantic.SunRayStrength, 0.55f));
|
||||
}
|
||||
|
||||
|
|
@ -139,6 +139,9 @@ internal sealed class AtmosphericPostProcessGraph :
|
|||
// knee is threshold - lowerBound = 1.0 - 0.27 ~= 0.73. Same set of
|
||||
// pixels blooms; the math now runs in the space ACES/luma assume.
|
||||
internal const float BloomThresholdLinear = 1f;
|
||||
/// <summary>Fallback when a descriptor declares no vignette setting; must equal the shipped declaration (pinned by AtmosphericColorPipelineTests).</summary>
|
||||
internal const float DefaultVignetteStrengthFallback = 0.245f;
|
||||
|
||||
internal const float BloomKneeLinear = 0.73f;
|
||||
|
||||
internal AtmosphericPostProcessGraph(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue