Prove released provider-owned environment lowering

This commit is contained in:
Meta Vens 2026-07-15 06:44:09 +01:00
commit 42d9b4a948
6 changed files with 50 additions and 15 deletions

View file

@ -456,6 +456,19 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
cameraRig.CameraTransform = camera.transform;
cameraRig.RenderPolicySource = provider;
Assert.That(cameraRig.ApplyRig(0f), Is.True);
var skybox = provider.ResolveAsset(new EveUnityPlayableWorldAssetBinding(
runtime.ActiveWorld.SkyboxAssetRef, "", "provider-asset-ref"), typeof(Material)) as Material;
var reflection = provider.ResolveAsset(new EveUnityPlayableWorldAssetBinding(
runtime.ActiveWorld.ReflectionAssetRef, "", "provider-asset-ref"), typeof(Cubemap)) as Cubemap;
Assert.That(runtime.ActiveWorld.SkyboxAssetRef, Is.Not.Empty);
Assert.That(runtime.ActiveWorld.ReflectionAssetRef, Is.Not.Empty);
Assert.That(skybox, Is.Not.Null);
Assert.That(reflection, Is.Not.Null);
Assert.That(RenderSettings.skybox, Is.SameAs(skybox));
Assert.That(RenderSettings.customReflectionTexture, Is.SameAs(reflection));
Assert.That(camera.clearFlags, Is.EqualTo(CameraClearFlags.Skybox));
var environmentPresentation = RenderSettings.skybox == skybox &&
RenderSettings.customReflectionTexture == reflection;
aimRenderer.RefreshNow();
Assert.That(aimRenderer.ViewDotVisible, Is.True);
aimDotDistance = Vector3.Distance(playerMarker.transform.position, aimRenderer.ViewDotPosition);
@ -515,6 +528,7 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
mapChangedPixels,
(camera.cullingMask & (1 << mapLayer)) == 0,
(mapCamera.cullingMask & (1 << mapLayer)) != 0,
environmentPresentation,
movementReceipt,
lookReceipt,
focusReceipt,
@ -554,6 +568,7 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
int mapChangedPixels,
bool pilotCameraExcludesMapChannel,
bool mapCameraIncludesMapChannel,
bool environmentPresentation,
WitnessReceipt movement,
WitnessReceipt look,
WitnessReceipt targeting,
@ -572,6 +587,7 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
{
providerAdvertisement = true,
providerAssets = true,
environmentPresentation = environmentPresentation,
movement = movement != null,
aimPresentation = look != null && aimDotDistance >= 49.9f,
targeting = targeting != null,
@ -608,6 +624,7 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
{
public bool providerAdvertisement;
public bool providerAssets;
public bool environmentPresentation;
public bool movement;
public bool aimPresentation;
public bool targeting;

View file

@ -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.1.1",
"org.gamecult.eve.surface": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.surface#eveunity-surface-v0.2.1",
"org.gamecult.eve.unity-scene": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.25",
"org.gamecult.eve.unity-scene": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.26",
"org.gamecult.eve.unity-uitoolkit": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-uitoolkit#eveunity-uitoolkit-v0.1.0"
},
"testables": [

View file

@ -142,7 +142,7 @@
"hash": "d0aa50d31f3b6da96bffc194fdc3aa358f37e332"
},
"org.gamecult.eve.unity-scene": {
"version": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.25",
"version": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.26",
"depth": 0,
"source": "git",
"dependencies": {
@ -151,7 +151,7 @@
"org.gamecult.eve.surface": "0.2.1",
"com.unity.mathematics": "1.3.2"
},
"hash": "58d87c628a261751439584263c18e93a7d8d8708"
"hash": "7e2c2fa720ca3437aa1b569ffba3a57e6b6f05c5"
},
"org.gamecult.eve.unity-uitoolkit": {
"version": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-uitoolkit#eveunity-uitoolkit-v0.1.0",

View file

@ -456,6 +456,19 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
cameraRig.CameraTransform = camera.transform;
cameraRig.RenderPolicySource = provider;
Assert.That(cameraRig.ApplyRig(0f), Is.True);
var skybox = provider.ResolveAsset(new EveUnityPlayableWorldAssetBinding(
runtime.ActiveWorld.SkyboxAssetRef, "", "provider-asset-ref"), typeof(Material)) as Material;
var reflection = provider.ResolveAsset(new EveUnityPlayableWorldAssetBinding(
runtime.ActiveWorld.ReflectionAssetRef, "", "provider-asset-ref"), typeof(Cubemap)) as Cubemap;
Assert.That(runtime.ActiveWorld.SkyboxAssetRef, Is.Not.Empty);
Assert.That(runtime.ActiveWorld.ReflectionAssetRef, Is.Not.Empty);
Assert.That(skybox, Is.Not.Null);
Assert.That(reflection, Is.Not.Null);
Assert.That(RenderSettings.skybox, Is.SameAs(skybox));
Assert.That(RenderSettings.customReflectionTexture, Is.SameAs(reflection));
Assert.That(camera.clearFlags, Is.EqualTo(CameraClearFlags.Skybox));
var environmentPresentation = RenderSettings.skybox == skybox &&
RenderSettings.customReflectionTexture == reflection;
aimRenderer.RefreshNow();
Assert.That(aimRenderer.ViewDotVisible, Is.True);
aimDotDistance = Vector3.Distance(playerMarker.transform.position, aimRenderer.ViewDotPosition);
@ -515,6 +528,7 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
mapChangedPixels,
(camera.cullingMask & (1 << mapLayer)) == 0,
(mapCamera.cullingMask & (1 << mapLayer)) != 0,
environmentPresentation,
movementReceipt,
lookReceipt,
focusReceipt,
@ -554,6 +568,7 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
int mapChangedPixels,
bool pilotCameraExcludesMapChannel,
bool mapCameraIncludesMapChannel,
bool environmentPresentation,
WitnessReceipt movement,
WitnessReceipt look,
WitnessReceipt targeting,
@ -572,6 +587,7 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
{
providerAdvertisement = true,
providerAssets = true,
environmentPresentation = environmentPresentation,
movement = movement != null,
aimPresentation = look != null && aimDotDistance >= 49.9f,
targeting = targeting != null,
@ -608,6 +624,7 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
{
public bool providerAdvertisement;
public bool providerAssets;
public bool environmentPresentation;
public bool movement;
public bool aimPresentation;
public bool targeting;

View file

@ -4,32 +4,33 @@
The warm-cache released-package witness passes with:
- `org.gamecult.eve.unity-scene` `0.3.25`, commit
`58d87c628a261751439584263c18e93a7d8d8708`;
- `org.gamecult.eve.unity-scene` `0.3.26`, commit
`7e2c2fa720ca3437aa1b569ffba3a57e6b6f05c5`;
- `org.gamecult.cultlib` `1.0.13`, commit
`feb5c71513e71d681699f462fe3682b3168c6f73`;
- the generic `ReleaseConsumerProject` client connected directly to the
Aetheria daemon.
Evidence is in `artifacts/aetheria-daemon-native-0325-warm`. The PlayMode test
Evidence is in `artifacts/aetheria-daemon-native-0326-warm`. The PlayMode test
passed and recorded provider-owned reconciled movement, look, targeting, and
action receipts. The daemon-owned look direction reached the SoA body rotation,
and the generic aim presentation rendered at the advertised 50-unit minimum
convergence distance.
convergence distance. The advertised skybox material and reflection cubemap
resolved from the provider bundle as their required native types and became the
active camera rig's leased Unity environment.
Camera-channel facts:
- provider-authored player renderers: `12`;
- pilot changed pixels: `4,967`;
- map-channel renderers: `10`;
- map changed pixels: `4,766`;
- pilot changed pixels: `230,332`;
- map-channel renderers: `11`;
- map changed pixels: `5,496`;
- the pilot camera excludes the advertised map layer;
- 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 current material fallback is visually dark;
this is authority, package, asset, command, and camera-channel evidence, not a
claim that the native art pass is complete.
present in the map-only frame. The pilot presentation remains visually dark;
the native art and lighting pass is not complete.
Primary artifacts:
@ -41,7 +42,7 @@ Primary artifacts:
## Cold delivery is not currently proven
The current 13 MB Unity bundle times out from an empty cache. Its bytes are
The current 45.2 MB Unity bundle times out from an empty cache. Its bytes are
still transported through batched snapshot records rather than the intended
mapped/network body transport. Increasing the Unity timeout would hide the
transport fault and is not an accepted fix.

View file

@ -13,7 +13,7 @@ param(
)
$ErrorActionPreference = "Stop"
$expectedEveUnityCommit = "58d87c628a261751439584263c18e93a7d8d8708"
$expectedEveUnityCommit = "7e2c2fa720ca3437aa1b569ffba3a57e6b6f05c5"
$expectedCultLibCommit = "feb5c71513e71d681699f462fe3682b3168c6f73"
$repoRoot = Split-Path -Parent $PSScriptRoot
$projectRoot = $ClientProject