diff --git a/packages/org.gamecult.eve.unity-scene/README.md b/packages/org.gamecult.eve.unity-scene/README.md index 42ebd93..22359e7 100644 --- a/packages/org.gamecult.eve.unity-scene/README.md +++ b/packages/org.gamecult.eve.unity-scene/README.md @@ -79,3 +79,6 @@ requirements without assigning gameplay or product meaning to the layer keys. `source=port,scale,offset`. This lets animated native programs consume provider-authoritative simulation time without making the client clock an authority. +Native volume programs may advertise a `cameraToWorld` matrix port when their +procedural passes require an explicit camera transform instead of relying on +render-pipeline globals. diff --git a/packages/org.gamecult.eve.unity-scene/Runtime/Fields/EveUnityFieldsVolumeRenderer.cs b/packages/org.gamecult.eve.unity-scene/Runtime/Fields/EveUnityFieldsVolumeRenderer.cs index 52e26f3..a132030 100644 --- a/packages/org.gamecult.eve.unity-scene/Runtime/Fields/EveUnityFieldsVolumeRenderer.cs +++ b/packages/org.gamecult.eve.unity-scene/Runtime/Fields/EveUnityFieldsVolumeRenderer.cs @@ -112,6 +112,7 @@ namespace GameCult.Eve.UnityScene.Fields var gpuProjection = GL.GetGPUProjectionMatrix(camera.projectionMatrix, true); var viewProjection = gpuProjection * camera.worldToCameraMatrix; SetMatrixPort("cameraInverseViewProjection", viewProjection.inverse); + SetMatrixPort("cameraToWorld", camera.cameraToWorldMatrix); SetVectorPort("cameraProjectionExtents", ProjectionExtents(camera)); SetFloatPort("raymarchOffset", Halton(Time.frameCount & 1023, 3)); diff --git a/packages/org.gamecult.eve.unity-scene/package.json b/packages/org.gamecult.eve.unity-scene/package.json index a969c41..9efba20 100644 --- a/packages/org.gamecult.eve.unity-scene/package.json +++ b/packages/org.gamecult.eve.unity-scene/package.json @@ -1,7 +1,7 @@ { "name": "org.gamecult.eve.unity-scene", "displayName": "Eve Unity Scene Lowering", - "version": "0.3.48", + "version": "0.3.49", "unity": "6000.0", "description": "Provider-agnostic Unity scene shell for gamecult.eve.surface.v1 interactive world surfaces.", "dependencies": {