diff --git a/ReleaseConsumerProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs b/ReleaseConsumerProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs index 4723fe8..38a93db 100644 --- a/ReleaseConsumerProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs +++ b/ReleaseConsumerProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs @@ -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; diff --git a/ReleaseConsumerProject/Packages/manifest.json b/ReleaseConsumerProject/Packages/manifest.json index 089ad45..036f757 100644 --- a/ReleaseConsumerProject/Packages/manifest.json +++ b/ReleaseConsumerProject/Packages/manifest.json @@ -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": [ diff --git a/ReleaseConsumerProject/Packages/packages-lock.json b/ReleaseConsumerProject/Packages/packages-lock.json index c2e7ebf..984f6f4 100644 --- a/ReleaseConsumerProject/Packages/packages-lock.json +++ b/ReleaseConsumerProject/Packages/packages-lock.json @@ -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", diff --git a/TestProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs b/TestProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs index 4723fe8..38a93db 100644 --- a/TestProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs +++ b/TestProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs @@ -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; diff --git a/docs/aetheria-released-package-witness.md b/docs/aetheria-released-package-witness.md index 71ed37e..99ad2a7 100644 --- a/docs/aetheria-released-package-witness.md +++ b/docs/aetheria-released-package-witness.md @@ -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. diff --git a/scripts/run-aetheria-daemon-world-witness.ps1 b/scripts/run-aetheria-daemon-world-witness.ps1 index 94d4ce2..2b8b81f 100644 --- a/scripts/run-aetheria-daemon-world-witness.ps1 +++ b/scripts/run-aetheria-daemon-world-witness.ps1 @@ -13,7 +13,7 @@ param( ) $ErrorActionPreference = "Stop" -$expectedEveUnityCommit = "58d87c628a261751439584263c18e93a7d8d8708" +$expectedEveUnityCommit = "7e2c2fa720ca3437aa1b569ffba3a57e6b6f05c5" $expectedCultLibCommit = "feb5c71513e71d681699f462fe3682b3168c6f73" $repoRoot = Split-Path -Parent $PSScriptRoot $projectRoot = $ClientProject