Prove authored Aetheria camera composition

This commit is contained in:
Meta Vens 2026-07-15 09:20:04 +01:00
commit 36b9642aa8
3 changed files with 20 additions and 8 deletions

View file

@ -469,9 +469,11 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
aimDotDistance = Vector3.Distance(playerMarker.transform.position, aimRenderer.ViewDotPosition);
Assert.That(aimDotDistance, Is.GreaterThanOrEqualTo(49.9f));
Assert.That(camera.cullingMask & (1 << mapLayer), Is.Zero);
Assert.That(runtime.ActiveWorld.CameraDistance, Is.EqualTo(70f).Within(0.001f));
Assert.That(camera.fieldOfView, Is.EqualTo(60f).Within(0.001f));
Assert.That(runtime.ActiveWorld.CameraPositionDamping, Is.EqualTo(2f).Within(0.001f));
var playerViewport = camera.WorldToViewportPoint(playerMarker.transform.position);
Assert.That(playerViewport.x, Is.EqualTo(0.9f).Within(0.01f));
Assert.That(playerViewport.x, Is.EqualTo(0.66f).Within(0.01f));
Assert.That(playerViewport.y, Is.EqualTo(0.55f).Within(0.01f));
MeasureViewportCoverage(camera, playerRenderers, out var playerViewportWidth, out var playerViewportHeight);
var playerRendererFacts = playerRenderers

View file

@ -469,9 +469,11 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
aimDotDistance = Vector3.Distance(playerMarker.transform.position, aimRenderer.ViewDotPosition);
Assert.That(aimDotDistance, Is.GreaterThanOrEqualTo(49.9f));
Assert.That(camera.cullingMask & (1 << mapLayer), Is.Zero);
Assert.That(runtime.ActiveWorld.CameraDistance, Is.EqualTo(70f).Within(0.001f));
Assert.That(camera.fieldOfView, Is.EqualTo(60f).Within(0.001f));
Assert.That(runtime.ActiveWorld.CameraPositionDamping, Is.EqualTo(2f).Within(0.001f));
var playerViewport = camera.WorldToViewportPoint(playerMarker.transform.position);
Assert.That(playerViewport.x, Is.EqualTo(0.9f).Within(0.01f));
Assert.That(playerViewport.x, Is.EqualTo(0.66f).Within(0.01f));
Assert.That(playerViewport.y, Is.EqualTo(0.55f).Within(0.01f));
MeasureViewportCoverage(camera, playerRenderers, out var playerViewportWidth, out var playerViewportHeight);
var playerRendererFacts = playerRenderers

View file

@ -21,23 +21,31 @@ active camera rig's leased Unity environment.
The witness supplies no client-authored light. Aetheria advertises the key-light
direction, color, and intensity; the generic camera rig lowers that contract to
the only live directional light (`0.75` intensity).
Aetheria also advertises the original `ARPG.unity` follow-camera composition:
`70` unit distance, `60` degree vertical field of view, target screen position
`0.66,0.55`, and position damping `2`. The generic camera rig lowers those
values without Aetheria-specific camera code.
Camera-channel facts:
- provider-authored player renderers: `12`;
- pilot changed pixels: `230,359`;
- pilot changed pixels: `230,248`;
- pilot average luminance: `0.003696`;
- pilot bright pixels: `1,319`;
- map-channel renderers: `11`;
- map changed pixels: `5,153`;
- map changed pixels: `4,975`;
- the pilot camera excludes the advertised map layer;
- the player prefab's embedded layer-14 map icon contributes exactly `0` pilot
pixels;
- the map camera renders exactly the advertised map layer.
Visual inspection confirms that map glyphs are absent from the pilot frame and
present in the map-only frame. The pilot presentation remains visually sparse
and dark. Renderer-isolation facts prove that the hull draws under the
provider-owned light, so the next native-art work is world composition and
available pre-generated provider textures, not a client-side lighting fallback.
present in the map-only frame. Restoring the authored ARPG camera in place of
the copied TestScene tuning increased hull-renderer pixel coverage by roughly
four times and bright pilot pixels from `502` to `1,319`. The pilot presentation
remains dark. Renderer-isolation facts prove that the hull draws under the
provider-owned light, so the next native-art work is available pre-generated
provider textures, not a client-side lighting fallback.
Substance is not part of this path; later texture baking belongs in Blender.
Primary artifacts: