Pin released client to entity-forward camera
This commit is contained in:
parent
35ff288aab
commit
9799dbe9fe
6 changed files with 37 additions and 31 deletions
|
|
@ -591,12 +591,13 @@ 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(runtime.ActiveWorld.CameraRig, Is.EqualTo("perspective.entity-forward-follow.v1"));
|
||||
Assert.That(runtime.ActiveWorld.CameraDistance, Is.EqualTo(30f).Within(0.001f));
|
||||
Assert.That(camera.fieldOfView, Is.EqualTo(60f).Within(0.001f));
|
||||
Assert.That(runtime.ActiveWorld.CameraPositionDamping, Is.EqualTo(2f).Within(0.001f));
|
||||
Assert.That(runtime.ActiveWorld.CameraPositionDamping, Is.EqualTo(0f).Within(0.001f));
|
||||
var playerViewport = camera.WorldToViewportPoint(playerMarker.transform.position);
|
||||
Assert.That(playerViewport.x, Is.EqualTo(0.66f).Within(0.01f));
|
||||
Assert.That(playerViewport.y, Is.EqualTo(0.55f).Within(0.01f));
|
||||
Assert.That(playerViewport.x, Is.EqualTo(0.64f).Within(0.01f));
|
||||
Assert.That(playerViewport.y, Is.EqualTo(0.81f).Within(0.01f));
|
||||
MeasureViewportCoverage(camera, playerRenderers, out var playerViewportWidth, out var playerViewportHeight);
|
||||
var playerRendererFacts = playerRenderers
|
||||
.Select(renderer => RendererFact.From(camera, renderer))
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"org.gamecult.cultlib": "https://github.com/GameCult/CultLib.git?path=/unity/org.gamecult.cultlib#cultlib-unity-v1.0.13",
|
||||
"org.gamecult.eve.plugin-fields": "https://github.com/GameCult/EvePlugins.git?path=/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields#eve-plugin-fields-unity-v0.2.0",
|
||||
"org.gamecult.eve.surface": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.surface#eveunity-surface-v0.2.2",
|
||||
"org.gamecult.eve.unity-scene": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.38",
|
||||
"org.gamecult.eve.unity-scene": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.39",
|
||||
"org.gamecult.eve.unity-uitoolkit": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-uitoolkit#eveunity-uitoolkit-v0.1.1"
|
||||
},
|
||||
"testables": [
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@
|
|||
"hash": "140e1bd963a0033e66777a3b2c5fe6e9c97dfe32"
|
||||
},
|
||||
"org.gamecult.eve.unity-scene": {
|
||||
"version": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.38",
|
||||
"version": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.39",
|
||||
"depth": 0,
|
||||
"source": "git",
|
||||
"dependencies": {
|
||||
|
|
@ -154,7 +154,7 @@
|
|||
"com.unity.mathematics": "1.3.2",
|
||||
"com.unity.modules.particlesystem": "1.0.0"
|
||||
},
|
||||
"hash": "de580fe88350f422e30f1e4b64ded5c33070b118"
|
||||
"hash": "35ff288aabc03130a61228579f1b09bac4345b5c"
|
||||
},
|
||||
"org.gamecult.eve.unity-uitoolkit": {
|
||||
"version": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-uitoolkit#eveunity-uitoolkit-v0.1.1",
|
||||
|
|
|
|||
|
|
@ -591,12 +591,13 @@ 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(runtime.ActiveWorld.CameraRig, Is.EqualTo("perspective.entity-forward-follow.v1"));
|
||||
Assert.That(runtime.ActiveWorld.CameraDistance, Is.EqualTo(30f).Within(0.001f));
|
||||
Assert.That(camera.fieldOfView, Is.EqualTo(60f).Within(0.001f));
|
||||
Assert.That(runtime.ActiveWorld.CameraPositionDamping, Is.EqualTo(2f).Within(0.001f));
|
||||
Assert.That(runtime.ActiveWorld.CameraPositionDamping, Is.EqualTo(0f).Within(0.001f));
|
||||
var playerViewport = camera.WorldToViewportPoint(playerMarker.transform.position);
|
||||
Assert.That(playerViewport.x, Is.EqualTo(0.66f).Within(0.01f));
|
||||
Assert.That(playerViewport.y, Is.EqualTo(0.55f).Within(0.01f));
|
||||
Assert.That(playerViewport.x, Is.EqualTo(0.64f).Within(0.01f));
|
||||
Assert.That(playerViewport.y, Is.EqualTo(0.81f).Within(0.01f));
|
||||
MeasureViewportCoverage(camera, playerRenderers, out var playerViewportWidth, out var playerViewportHeight);
|
||||
var playerRendererFacts = playerRenderers
|
||||
.Select(renderer => RendererFact.From(camera, renderer))
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
The warm-cache released-package witness passes with:
|
||||
|
||||
- `org.gamecult.eve.unity-scene` `0.3.38`, commit
|
||||
`de580fe88350f422e30f1e4b64ded5c33070b118`;
|
||||
- `org.gamecult.eve.unity-scene` `0.3.39`, commit
|
||||
`35ff288aabc03130a61228579f1b09bac4345b5c`;
|
||||
- `org.gamecult.eve.plugin-fields` `0.2.0`, commit
|
||||
`382a23d8f8a07e4b5eef5f81f84655861a858367`;
|
||||
- `org.gamecult.eve.surface` `0.2.2`, commit
|
||||
|
|
@ -17,7 +17,7 @@ The warm-cache released-package witness passes with:
|
|||
- the generic `ReleaseConsumerProject` client connected directly to the
|
||||
Aetheria daemon.
|
||||
|
||||
Evidence is in `artifacts/aetheria-daemon-gravity-fog-warm`. The PlayMode test
|
||||
Evidence is in `artifacts/aetheria-daemon-gravity-fog-forward`. The PlayMode test
|
||||
passed and recorded provider-owned reconciled movement, look, targeting,
|
||||
tractor press, tractor release, contact-gated cargo collection, and action
|
||||
receipts. The daemon-owned look direction reached the SoA body rotation,
|
||||
|
|
@ -28,10 +28,12 @@ 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.
|
||||
Aetheria also advertises the original undocked `ARPG.unity` Third Person Rig:
|
||||
entity-forward perspective follow, `30` unit distance, `60` degree vertical
|
||||
field of view, target screen position `0.64,0.81`, zero position damping, and
|
||||
`1`-`4096` clip planes. The generic camera rig lowers those values without
|
||||
Aetheria-specific camera code. The distinct `70` unit Docked Rig no longer
|
||||
incorrectly owns the flight view.
|
||||
Aetheria's pilot surface also publishes a transparent cockpit overlay. The
|
||||
released generic UI Toolkit lowerer produced seven native `ProgressBar` elements
|
||||
for hull, shield, capacitor, weapon cooldown, target lock, and target state. Daemon frame,
|
||||
|
|
@ -46,7 +48,7 @@ Fields splat layers. Its surface contract contains logical ports such as
|
|||
names or pass indices. The selected `unity-scene` provider asset variant owns
|
||||
that concrete shader ABI through `unity.volume.*` metadata. The released
|
||||
generic lowerer resolved the provider shader and dither texture, rasterized all
|
||||
four layers, and composited `22` pilot-camera frames from daemon frame `224`.
|
||||
four layers, and composited `22` pilot-camera frames from daemon frame `226`.
|
||||
The provider variant advertises the fossil shader's raymarch, temporal-history,
|
||||
and composite passes plus their logical ports. EveUnity allocates and resets the
|
||||
history targets generically; a partial temporal ABI fails closed.
|
||||
|
|
@ -60,11 +62,11 @@ daemon lock progress `1.0`; Unity does not manufacture or smooth that value.
|
|||
Camera-channel facts:
|
||||
|
||||
- provider-authored player renderers: `13`, including the lowered tractor effect;
|
||||
- pilot changed pixels: `230,310`;
|
||||
- pilot average luminance: `0.0524399`;
|
||||
- pilot bright pixels: `1,731`;
|
||||
- pilot changed pixels: `230,400`;
|
||||
- pilot average luminance: `0.1889651`;
|
||||
- pilot bright pixels: `13,302`;
|
||||
- map-channel renderers: `11`;
|
||||
- map changed pixels: `4,937`;
|
||||
- map changed pixels: `4,213`;
|
||||
- native cockpit progress bars: `7`;
|
||||
- daemon tractor power at capture: `1.0` after the held input completed its
|
||||
authored ramp;
|
||||
|
|
@ -80,12 +82,14 @@ Camera-channel facts:
|
|||
- 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 volume lifecycle is active, but the pilot
|
||||
frame remains nearly black and geometric; it does not yet reproduce the fossil's
|
||||
blue gravity-shaped fog sea. This is transport and lowering proof, not visual
|
||||
parity. The next provider-side diagnosis must inspect published tint/height
|
||||
field values, exposure/composition, camera depth, and the fossil tuning. EveUnity
|
||||
must not compensate with Aetheria-specific lighting or fog rules.
|
||||
present in the map-only frame. Correcting the fossil camera mode removed the
|
||||
false top-down dark disk, but the active volume now resolves as a nearly uniform
|
||||
saturated orange horizon rather than the fossil's blue gravity-shaped fog sea.
|
||||
This is transport and lowering proof, not visual parity. The first concrete ABI
|
||||
divergence is that the fossil derives dither sampling coordinates from the
|
||||
render target and dither texture dimensions while the current surface supplies
|
||||
zeroes. That lifecycle input must be lowered generically; EveUnity must not
|
||||
compensate with Aetheria-specific lighting or fog rules.
|
||||
Substance is not part of this path; later texture baking belongs in Blender.
|
||||
Aetheria currently bundles ambientCG's 1K `Metal012` color, normal, and
|
||||
metalness maps under CC0. The same pre-generated maps now replace dead
|
||||
|
|
@ -119,7 +123,7 @@ an Aetheria-specific beam.
|
|||
Primary artifacts:
|
||||
|
||||
- `results.xml`: one passing PlayMode witness;
|
||||
- `runtime-witness.warm.json`: package, content, receipt, aim, combat, and
|
||||
- `runtime-witness.json`: package, content, receipt, aim, combat, and
|
||||
camera facts;
|
||||
- `aetheria-daemon-world.png`: pilot-camera capture;
|
||||
- `aetheria-daemon-map.png`: map-only capture.
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ param(
|
|||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$expectedEveUnityCommit = "de580fe88350f422e30f1e4b64ded5c33070b118"
|
||||
$expectedEveUnityCommit = "35ff288aabc03130a61228579f1b09bac4345b5c"
|
||||
$expectedEveFieldsCommit = "382a23d8f8a07e4b5eef5f81f84655861a858367"
|
||||
$expectedEveUnityUiToolkitCommit = "4d0cbe0185bdc4fc65eb63503a7c5cb578539669"
|
||||
$expectedCultLibCommit = "feb5c71513e71d681699f462fe3682b3168c6f73"
|
||||
|
|
|
|||
Reference in a new issue