From 6d2b5c52a18613575132102413f20d7f8c4f3087 Mon Sep 17 00:00:00 2001 From: milan Date: Fri, 3 Mar 2023 16:25:24 +0100 Subject: [PATCH] render stencil portals (opaque) --- .../Assets/Prefabs/Desert XR Origin.prefab | 14 +- .../Engine/Assets/Lighting Settings.lighting | 5 +- Assets/Portal/Assets/Prefabs/Portal.prefab | 193 +---- Assets/Portal/Runtime/Portal.cs | 40 +- Assets/Portal/Runtime/PortalCamera.cs | 105 --- Assets/Portal/Runtime/PortalCamera.cs.meta | 11 - Assets/Portal/Runtime/RenderPortalCameras.cs | 113 +++ .../Runtime/RenderPortalCameras.cs.meta | 3 + Assets/Scenes/StencilPortalScene.unity | 761 ++++-------------- Assets/Test Assets/Materials/Holo Test A.mat | 142 ++++ .../Materials/Holo Test A.mat.meta | 8 + Assets/Test Assets/Materials/Holo Test B.mat | 142 ++++ .../Materials/Holo Test B.mat.meta | 8 + Assets/Test Assets/Materials/Holo Test C.mat | 142 ++++ .../Materials/Holo Test C.mat.meta | 8 + Assets/URP/URP-HighFidelity-Renderer.asset | 33 +- 16 files changed, 781 insertions(+), 947 deletions(-) delete mode 100644 Assets/Portal/Runtime/PortalCamera.cs delete mode 100644 Assets/Portal/Runtime/PortalCamera.cs.meta create mode 100644 Assets/Portal/Runtime/RenderPortalCameras.cs create mode 100644 Assets/Portal/Runtime/RenderPortalCameras.cs.meta create mode 100644 Assets/Test Assets/Materials/Holo Test A.mat create mode 100644 Assets/Test Assets/Materials/Holo Test A.mat.meta create mode 100644 Assets/Test Assets/Materials/Holo Test B.mat create mode 100644 Assets/Test Assets/Materials/Holo Test B.mat.meta create mode 100644 Assets/Test Assets/Materials/Holo Test C.mat create mode 100644 Assets/Test Assets/Materials/Holo Test C.mat.meta diff --git a/Assets/Desert/Assets/Prefabs/Desert XR Origin.prefab b/Assets/Desert/Assets/Prefabs/Desert XR Origin.prefab index 0fc3c39..987dd16 100644 --- a/Assets/Desert/Assets/Prefabs/Desert XR Origin.prefab +++ b/Assets/Desert/Assets/Prefabs/Desert XR Origin.prefab @@ -68,6 +68,16 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 419816428804372196, guid: c84e0198f66a41b4294f6e8e585192a4, + type: 3} + propertyPath: m_TrackingStateInput.m_Action.m_Id + value: 746a5ba8-a4c1-42b8-96b9-be2c12e6586f + objectReference: {fileID: 0} + - target: {fileID: 419816428804372196, guid: c84e0198f66a41b4294f6e8e585192a4, + type: 3} + propertyPath: m_TrackingStateInput.m_Action.m_Name + value: Tracking State Input + objectReference: {fileID: 0} - target: {fileID: 419816429261119706, guid: c84e0198f66a41b4294f6e8e585192a4, type: 3} propertyPath: m_ModelPrefab @@ -97,7 +107,7 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 419816428804372187, guid: c84e0198f66a41b4294f6e8e585192a4, type: 3} insertIndex: -1 - addedObject: {fileID: 542038026734091070} + addedObject: {fileID: 4586981498204149835} m_SourcePrefab: {fileID: 100100000, guid: c84e0198f66a41b4294f6e8e585192a4, type: 3} --- !u!1 &6854256365856247459 stripped GameObject: @@ -105,7 +115,7 @@ GameObject: type: 3} m_PrefabInstance: {fileID: 6542684658370590840} m_PrefabAsset: {fileID: 0} ---- !u!45 &542038026734091070 +--- !u!45 &4586981498204149835 Skybox: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} diff --git a/Assets/Engine/Assets/Lighting Settings.lighting b/Assets/Engine/Assets/Lighting Settings.lighting index 9b98f06..610fb5e 100644 --- a/Assets/Engine/Assets/Lighting Settings.lighting +++ b/Assets/Engine/Assets/Lighting Settings.lighting @@ -7,7 +7,7 @@ LightingSettings: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Lighting Settings - serializedVersion: 5 + serializedVersion: 6 m_GIWorkflowMode: 1 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 0 @@ -46,7 +46,7 @@ LightingSettings: m_PVREnvironmentReferencePointCount: 2048 m_LightProbeSampleCountMultiplier: 4 m_PVRBounces: 2 - m_PVRMinBounces: 1 + m_PVRMinBounces: 2 m_PVREnvironmentImportanceSampling: 1 m_PVRFilteringMode: 1 m_PVRDenoiserTypeDirect: 1 @@ -63,3 +63,4 @@ LightingSettings: m_PVRFilteringAtrousPositionSigmaAO: 1 m_PVRTiledBaking: 0 m_NumRaysToShootPerTexel: -1 + m_RespectSceneVisibilityWhenBakingGI: 0 diff --git a/Assets/Portal/Assets/Prefabs/Portal.prefab b/Assets/Portal/Assets/Prefabs/Portal.prefab index 8ca7ded..e8eeac5 100644 --- a/Assets/Portal/Assets/Prefabs/Portal.prefab +++ b/Assets/Portal/Assets/Prefabs/Portal.prefab @@ -1,51 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &2713893991261817724 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2582669991302867501} - - component: {fileID: 7726674486241786965} - m_Layer: 0 - m_Name: Camera Transform - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2582669991302867501 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2713893991261817724} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2246995198243242195} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &7726674486241786965 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2713893991261817724} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ad60e3973ab83f3468637a06970d7f1f, type: 3} - m_Name: - m_EditorClassIdentifier: - minNearClipPlane: 0.0001 - portal: {fileID: 1249363658} --- !u!1 &5366957160841664999 GameObject: m_ObjectHideFlags: 0 @@ -161,8 +115,6 @@ Transform: m_Children: - {fileID: 4697416823958963037} - {fileID: 9135323956734471646} - - {fileID: 2398425302420252226} - - {fileID: 2582669991302867501} m_Father: {fileID: 0} m_RootOrder: -1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -180,8 +132,9 @@ MonoBehaviour: m_EditorClassIdentifier: size: {x: 1, y: 1} linkedPortal: {fileID: 0} + minNearClipPlane: 0.0001 screen: {fileID: 5871497001431693362} - cameraTransform: {fileID: 7726674486241786965} + cameraTransform: {fileID: 0} portalTransform: {fileID: 2246995198243242195} --- !u!65 &7604291350124895408 BoxCollider: @@ -204,148 +157,6 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 1, y: 3, z: 0.3} m_Center: {x: 0, y: 1.5, z: -0.15} ---- !u!1 &7398326895463990628 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2398425302420252226} - - component: {fileID: 7791795762741173939} - - component: {fileID: 5969531196797302096} - - component: {fileID: 17691322601746172} - m_Layer: 0 - m_Name: Camera - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &2398425302420252226 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7398326895463990628} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2246995198243242195} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!20 &7791795762741173939 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7398326895463990628} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!114 &5969531196797302096 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7398326895463990628} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 0 - m_Cameras: [] - m_RendererIndex: -1 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_VolumeFrameworkUpdateModeOption: 2 - m_RenderPostProcessing: 0 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_AllowXRRendering: 0 - m_UseScreenCoordOverride: 0 - m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} - m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_Version: 2 - m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 ---- !u!114 &17691322601746172 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7398326895463990628} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ad60e3973ab83f3468637a06970d7f1f, type: 3} - m_Name: - m_EditorClassIdentifier: - minNearClipPlane: 0.0001 - portal: {fileID: 1249363658} --- !u!1 &8470391359842711396 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Portal/Runtime/Portal.cs b/Assets/Portal/Runtime/Portal.cs index 61c88e9..6ae0718 100644 --- a/Assets/Portal/Runtime/Portal.cs +++ b/Assets/Portal/Runtime/Portal.cs @@ -4,7 +4,6 @@ using EscapeRoomEngine.Engine.Runtime.Modules; using EscapeRoomEngine.Engine.Runtime.Utilities; using NaughtyAttributes; using UnityEngine; -using UnityEngine.Serialization; namespace EscapeRoomEngine.Portal.Runtime { @@ -23,9 +22,13 @@ namespace EscapeRoomEngine.Portal.Runtime /// public Portal linkedPortal; /// - /// The camera that will draw the view for this portal. + /// The minimum near clip plane distance to be used when calculating the oblique clip plane. /// - [BoxGroup("Internal")] public PortalCamera portalCamera; + public float minNearClipPlane = 0.0001f; + /// + /// The mesh where the portal will be drawn. + /// + [BoxGroup("Internal")] public MeshRenderer screen; /// /// The transform marking the edge of the portal plane. /// @@ -51,12 +54,10 @@ namespace EscapeRoomEngine.Portal.Runtime { case DoorEventType.Connected: linkedPortal = FromDoorState(Module.ConnectedDoorState); - portalCamera.screen.gameObject.SetActive(true); - portalCamera.enabled = true; + screen.gameObject.SetActive(true); break; case DoorEventType.Locked: - portalCamera.enabled = false; - portalCamera.screen.gameObject.SetActive(false); + screen.gameObject.SetActive(false); linkedPortal = null; break; } @@ -85,6 +86,31 @@ namespace EscapeRoomEngine.Portal.Runtime } } + public Camera SetUpCamera(Camera playerCamera) + { + // place camera + var m = portalTransform.localToWorldMatrix * HalfRotation * + linkedPortal.portalTransform.worldToLocalMatrix * playerCamera.transform.localToWorldMatrix; + playerCamera.transform.SetPositionAndRotation(m.GetPosition(), m.rotation); + + // set camera clip plane to portal (otherwise the wall behind the portal would be rendered) + // calculating the clip plane: https://computergraphics.stackexchange.com/a/1506 + // clip plane normal + var n = -portalTransform.forward; + // clip plane in world space + var portalPlane = new Plane(n, portalTransform.position); + if (-portalPlane.GetDistanceToPoint(playerCamera.transform.position) >= minNearClipPlane) + { + // vector format clip plane in camera space + var clipPlane = playerCamera.worldToCameraMatrix.inverse.transpose * + new Vector4(n.x, n.y, n.z, portalPlane.distance); + // only adjust the near clip plane if it doesn't intersect with the camera + playerCamera.projectionMatrix = playerCamera.CalculateObliqueMatrix(clipPlane); + } + + return playerCamera; + } + /// /// Begin tracking a portal driver that came close to this portal and might need to be teleported. /// diff --git a/Assets/Portal/Runtime/PortalCamera.cs b/Assets/Portal/Runtime/PortalCamera.cs deleted file mode 100644 index e420eac..0000000 --- a/Assets/Portal/Runtime/PortalCamera.cs +++ /dev/null @@ -1,105 +0,0 @@ -using System.Collections.Generic; -using EscapeRoomEngine.VR.Runtime; -using UnityEngine; -using UnityEngine.Rendering; -using UnityEngine.Rendering.Universal; -using UnityEngine.XR; - -namespace EscapeRoomEngine.Portal.Runtime -{ - [RequireComponent(typeof(Camera))] - public class PortalCamera : MonoBehaviour - { - private static readonly Camera.StereoscopicEye[] Eyes = - { Camera.StereoscopicEye.Left, Camera.StereoscopicEye.Right }; - private static readonly Dictionary EyeTextureNames = new() - { - { Camera.StereoscopicEye.Left, Shader.PropertyToID("_LeftTex") }, - { Camera.StereoscopicEye.Right, Shader.PropertyToID("_RightTex") } - }; - - /// - /// The minimum near clip plane distance to be used when calculating the oblique clip plane. - /// - public float minNearClipPlane = 0.0001f; - /// - /// The portal this camera renders through. - /// - [SerializeField] private Portal portal; - /// - /// The mesh where the rendered texture will be drawn on. - /// - [SerializeField] public MeshRenderer screen; - - private Camera _camera; - private readonly Dictionary _textures = new(); - - private void Awake() - { - // get portal camera - _camera = GetComponent(); - } - - private void OnEnable() - { - _camera.enabled = true; - RenderPipelineManager.beginCameraRendering += Render; - } - - private void OnDisable() - { - RenderPipelineManager.beginCameraRendering -= Render; - _camera.enabled = false; - } - - private void Render(ScriptableRenderContext scriptableRenderContext, Camera _) - { - // check whether the portal plane is visible from the player camera - var frustumPlanes = GeometryUtility.CalculateFrustumPlanes(Player.Instance.camera); - if (!GeometryUtility.TestPlanesAABB(frustumPlanes, portal.linkedPortal.portalCamera.screen.bounds)) - // don't render this portal if it is not visible - return; - - screen.enabled = false; - - foreach (var eye in Eyes) - { - // create portal texture if it doesn't exist yet - if (!_textures.ContainsKey(eye)) - { - if (XRSettings.eyeTextureWidth > 0 && XRSettings.eyeTextureHeight > 0) - { - _textures.Add(eye, - new RenderTexture(XRSettings.eyeTextureWidth, XRSettings.eyeTextureHeight, 24)); - portal.linkedPortal.portalCamera.screen.material.SetTexture(EyeTextureNames[eye], _textures[eye]); - } - else // no texture was created so nothing should be rendered - continue; - } - - // position portal camera - var m = portal.portalTransform.localToWorldMatrix * Portal.HalfRotation * - portal.linkedPortal.portalTransform.worldToLocalMatrix * - Player.Instance.GetEye(eye).localToWorldMatrix; - transform.SetPositionAndRotation(m.GetPosition(), m.rotation); - _camera.projectionMatrix = Player.Instance.camera.GetStereoProjectionMatrix(eye); - - // set camera clip plane to portal (otherwise the wall behind the portal would be rendered) - // calculating the clip plane: https://computergraphics.stackexchange.com/a/1506 - var n = -portal.portalTransform.forward; // clip plane normal - var portalPlane = new Plane(n, portal.portalTransform.position); // clip plane in world space - var clipPlane = _camera.worldToCameraMatrix.inverse.transpose * - new Vector4(n.x, n.y, n.z, portalPlane.distance); // vector format clip plane in camera space - if (-portalPlane.GetDistanceToPoint(transform.position) >= minNearClipPlane) - // only adjust the near clip plane if it doesn't intersect with the camera - _camera.projectionMatrix = _camera.CalculateObliqueMatrix(clipPlane); - - // render portal view - _camera.targetTexture = _textures[eye]; - UniversalRenderPipeline.RenderSingleCamera(scriptableRenderContext, _camera); - } - - screen.enabled = true; - } - } -} diff --git a/Assets/Portal/Runtime/PortalCamera.cs.meta b/Assets/Portal/Runtime/PortalCamera.cs.meta deleted file mode 100644 index 22788f5..0000000 --- a/Assets/Portal/Runtime/PortalCamera.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ad60e3973ab83f3468637a06970d7f1f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Portal/Runtime/RenderPortalCameras.cs b/Assets/Portal/Runtime/RenderPortalCameras.cs new file mode 100644 index 0000000..1d04d5f --- /dev/null +++ b/Assets/Portal/Runtime/RenderPortalCameras.cs @@ -0,0 +1,113 @@ +using System.Collections.Generic; +using EscapeRoomEngine.VR.Runtime; +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.Rendering.Universal; + +namespace EscapeRoomEngine.Portal.Runtime +{ + public class RenderPortalCameras : ScriptableRendererFeature + { + private enum PassType + { + Opaque, + Transparent + } + + private class PortalCameraRenderPass : ScriptableRenderPass + { + private static readonly List ShaderTagIds = new List + { + new("SRPDefaultUnlit"), new("UniversalForward"), new("UniversalForwardOnly") + }; + + private RenderStateBlock _renderStateBlock; + private CommandBuffer _commandBuffer; + + private readonly LayerMask _layers; + private readonly PassType _passType; + + public PortalCameraRenderPass(LayerMask layers, PassType passType) + { + _layers = layers; + _passType = passType; + + renderPassEvent = RenderPassEvent.AfterRenderingOpaques; + _renderStateBlock = new RenderStateBlock(RenderStateMask.Nothing); + + // set stencil + var stencilState = StencilState.defaultValue; + stencilState.enabled = true; + stencilState.SetCompareFunction(CompareFunction.Equal); + stencilState.SetPassOperation(StencilOp.Keep); + stencilState.SetFailOperation(StencilOp.Keep); + stencilState.SetZFailOperation(StencilOp.Keep); + _renderStateBlock.mask |= RenderStateMask.Stencil; + _renderStateBlock.stencilState = stencilState; + } + + public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) + { + // we need to store a reference to the command buffer before executing, because the reference in RenderingData is internal + _commandBuffer = cmd; + } + + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) + { + if (Player.Instance) + { + var drawingSettings = CreateDrawingSettings(ShaderTagIds, ref renderingData, _passType == PassType.Opaque ? renderingData.cameraData.defaultOpaqueSortFlags : SortingCriteria.CommonTransparent); + var filteringSettings = new FilteringSettings(_passType == PassType.Opaque ? RenderQueueRange.opaque : RenderQueueRange.transparent, _layers); + + foreach (var portal in FindObjectsByType(FindObjectsInactive.Exclude, FindObjectsSortMode.None)) + { + var linkedPortal = portal.linkedPortal; + if (linkedPortal) + { + // set which portal to render + _renderStateBlock.stencilReference = portal.PortalNumber; + + // prepare the camera + ref var cameraData = ref renderingData.cameraData; + var camera = cameraData.camera; + var cameraTransform = camera.transform; + var originalPosition = cameraTransform.position; + var originalRotation = cameraTransform.rotation; + var originalProjection = camera.projectionMatrix; + camera = linkedPortal.SetUpCamera(camera); + RenderingUtils.SetViewAndProjectionMatrices(_commandBuffer, camera.worldToCameraMatrix, GL.GetGPUProjectionMatrix(camera.projectionMatrix, true), false); + + // execute command buffer + context.ExecuteCommandBuffer(_commandBuffer); + _commandBuffer.Clear(); + + // render the portal + context.DrawRenderers(renderingData.cullResults, ref drawingSettings, ref filteringSettings, ref _renderStateBlock); + + // reset + RenderingUtils.SetViewAndProjectionMatrices(_commandBuffer, cameraData.GetViewMatrix(), cameraData.GetGPUProjectionMatrix(), false); + camera.transform.SetPositionAndRotation(originalPosition, originalRotation); + camera.projectionMatrix = originalProjection; + } + } + } + } + } + + private PortalCameraRenderPass _opaquePass, _transparentPass; + + public LayerMask layers; + + public override void Create() + { + _opaquePass = new PortalCameraRenderPass(layers, PassType.Opaque); + _transparentPass = new PortalCameraRenderPass(layers, PassType.Transparent); + } + + public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) + { + renderer.EnqueuePass(_opaquePass); + // renderer.EnqueuePass(_transparentPass); TODO: enable + } + } +} \ No newline at end of file diff --git a/Assets/Portal/Runtime/RenderPortalCameras.cs.meta b/Assets/Portal/Runtime/RenderPortalCameras.cs.meta new file mode 100644 index 0000000..947f457 --- /dev/null +++ b/Assets/Portal/Runtime/RenderPortalCameras.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: eaf6ad8627b74652be2715a93378d05f +timeCreated: 1682588767 \ No newline at end of file diff --git a/Assets/Scenes/StencilPortalScene.unity b/Assets/Scenes/StencilPortalScene.unity index 6d1ee7f..91ddafa 100644 --- a/Assets/Scenes/StencilPortalScene.unity +++ b/Assets/Scenes/StencilPortalScene.unity @@ -124,89 +124,6 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &72271246 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 72271247} - - component: {fileID: 72271250} - - component: {fileID: 72271249} - m_Layer: 0 - m_Name: Cylinder (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 2147483647 - m_IsActive: 1 ---- !u!4 &72271247 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 72271246} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.043, y: 0, z: 0.668} - m_LocalScale: {x: 0.13379, y: 0.13379, z: 0.13379} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1453220877} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &72271249 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 72271246} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 3e334d6799a0d0040a41fe4794da90f5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &72271250 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 72271246} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &98744914 GameObject: m_ObjectHideFlags: 0 @@ -377,89 +294,6 @@ LightProbeGroup: - {x: -2.5, y: 0.20000005, z: -0.5} - {x: -2.5, y: 0.20000005, z: -1.5000001} m_Dering: 1 ---- !u!1 &149744768 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 149744769} - - component: {fileID: 149744772} - - component: {fileID: 149744771} - m_Layer: 0 - m_Name: Cylinder (11) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 2147483647 - m_IsActive: 1 ---- !u!4 &149744769 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 149744768} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.302, y: 0, z: -0.716} - m_LocalScale: {x: 0.13379, y: 0.13379, z: 0.13379} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1453220877} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &149744771 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 149744768} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 3e334d6799a0d0040a41fe4794da90f5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &149744772 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 149744768} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &230809357 GameObject: m_ObjectHideFlags: 0 @@ -475,7 +309,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 2147483647 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &230809358 Transform: m_ObjectHideFlags: 0 @@ -490,6 +324,7 @@ Transform: m_Children: - {fileID: 1338880438} - {fileID: 1451317369} + - {fileID: 393237280} m_Father: {fileID: 1453220877} m_RootOrder: -1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -519,7 +354,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 259858787} m_LocalRotation: {x: 0.1297753, y: -0, z: -0, w: 0.9915434} - m_LocalPosition: {x: 0.118, y: 0.559, z: -0.185} + m_LocalPosition: {x: -0.302, y: 1.039, z: -0.164} m_LocalScale: {x: 0.13379, y: 0.28, z: 0.13379} m_ConstrainProportionsScale: 0 m_Children: [] @@ -584,6 +419,11 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: + - target: {fileID: 4586981498204149835, guid: ecbf9ce952d5f38458b8237a4483c562, + type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5061459391527264860, guid: ecbf9ce952d5f38458b8237a4483c562, type: 3} propertyPath: m_IsActive @@ -662,12 +502,12 @@ PrefabInstance: - target: {fileID: 6854256365667908692, guid: ecbf9ce952d5f38458b8237a4483c562, type: 3} propertyPath: m_LocalPosition.y - value: 1.0000001 + value: 1 objectReference: {fileID: 0} - target: {fileID: 6854256365667908692, guid: ecbf9ce952d5f38458b8237a4483c562, type: 3} propertyPath: m_LocalPosition.z - value: -1.1 + value: -1 objectReference: {fileID: 0} - target: {fileID: 6854256365667908692, guid: ecbf9ce952d5f38458b8237a4483c562, type: 3} @@ -689,6 +529,89 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: ecbf9ce952d5f38458b8237a4483c562, type: 3} +--- !u!1 &393237279 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 393237280} + - component: {fileID: 393237282} + - component: {fileID: 393237281} + m_Layer: 0 + m_Name: Capsule (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &393237280 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 393237279} + m_LocalRotation: {x: -0, y: -0, z: -0.3637752, w: 0.93148685} + m_LocalPosition: {x: 0.193, y: 0.475, z: 1.62} + m_LocalScale: {x: 0.22218, y: 0.22218, z: 0.22218} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 230809358} + m_RootOrder: -1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -42.664} +--- !u!23 &393237281 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 393237279} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 93b04c4f28fa9dc4e9014c610a57f954, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &393237282 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 393237279} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &410087039 GameObject: m_ObjectHideFlags: 0 @@ -807,7 +730,7 @@ MonoBehaviour: m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 2 ---- !u!1 &537650373 +--- !u!1 &545153746 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -815,38 +738,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 537650374} - - component: {fileID: 537650377} - - component: {fileID: 537650376} + - component: {fileID: 545153747} + - component: {fileID: 545153749} + - component: {fileID: 545153748} m_Layer: 0 - m_Name: Cylinder (3) + m_Name: Cylinder (8) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 2147483647 m_IsActive: 1 ---- !u!4 &537650374 +--- !u!4 &545153747 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 537650373} + m_GameObject: {fileID: 545153746} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.186, y: 1.48, z: -0.106} + m_LocalPosition: {x: 0.114, y: 0.642, z: 2.3390002} m_LocalScale: {x: 0.13379, y: 0.13379, z: 0.13379} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1453220877} m_RootOrder: -1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &537650376 +--- !u!23 &545153748 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 537650373} + m_GameObject: {fileID: 545153746} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -860,7 +783,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 94d63268ac1ac034d8c0af72dd04a346, type: 2} + - {fileID: 2100000, guid: 46455800cc2ce524c92336599f5ec772, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -882,13 +805,13 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &537650377 +--- !u!33 &545153749 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 537650373} + m_GameObject: {fileID: 545153746} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &603545547 GameObject: @@ -916,7 +839,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 603545547} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.524, y: 0, z: 1.626} + m_LocalPosition: {x: 0.319, y: 0, z: -0.21} m_LocalScale: {x: 0.13379, y: 0.13379, z: 0.13379} m_ConstrainProportionsScale: 0 m_Children: [] @@ -1113,172 +1036,6 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 613329380} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &701272124 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 701272125} - - component: {fileID: 701272128} - - component: {fileID: 701272127} - m_Layer: 0 - m_Name: Cylinder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 2147483647 - m_IsActive: 1 ---- !u!4 &701272125 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 701272124} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.437, y: 0, z: 0.178} - m_LocalScale: {x: 0.13379, y: 0.13379, z: 0.13379} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1453220877} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &701272127 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 701272124} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 46455800cc2ce524c92336599f5ec772, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &701272128 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 701272124} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &713975855 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 713975856} - - component: {fileID: 713975859} - - component: {fileID: 713975858} - m_Layer: 0 - m_Name: Cylinder (9) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 2147483647 - m_IsActive: 1 ---- !u!4 &713975856 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 713975855} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.123, y: 0, z: 2.247} - m_LocalScale: {x: 0.13379, y: 0.13379, z: 0.13379} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1453220877} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &713975858 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 713975855} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 3e334d6799a0d0040a41fe4794da90f5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &713975859 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 713975855} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &767636494 GameObject: m_ObjectHideFlags: 0 @@ -1305,7 +1062,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 767636494} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.287, y: 0, z: 1.639} + m_LocalPosition: {x: 0.287, y: 0, z: 2.3390002} m_LocalScale: {x: 0.13379, y: 0.13379, z: 0.13379} m_ConstrainProportionsScale: 0 m_Children: [] @@ -1412,172 +1169,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1231416613 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1231416614} - - component: {fileID: 1231416617} - - component: {fileID: 1231416616} - m_Layer: 0 - m_Name: Cylinder (4) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 2147483647 - m_IsActive: 1 ---- !u!4 &1231416614 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1231416613} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.552, y: 0, z: 0.98} - m_LocalScale: {x: 0.13379, y: 0.13379, z: 0.13379} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1453220877} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1231416616 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1231416613} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 94d63268ac1ac034d8c0af72dd04a346, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1231416617 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1231416613} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1277043236 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1277043237} - - component: {fileID: 1277043240} - - component: {fileID: 1277043239} - m_Layer: 0 - m_Name: Cylinder (8) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 2147483647 - m_IsActive: 1 ---- !u!4 &1277043237 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1277043236} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.473, y: 0, z: 2.657} - m_LocalScale: {x: 0.13379, y: 0.13379, z: 0.13379} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1453220877} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1277043239 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1277043236} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 3e334d6799a0d0040a41fe4794da90f5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1277043240 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1277043236} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1336295464 GameObject: m_ObjectHideFlags: 0 @@ -1604,7 +1195,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1336295464} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.57, y: 0, z: 0.39} + m_LocalPosition: {x: -0.154, y: 0, z: 1.9600002} m_LocalScale: {x: 0.13379, y: 0.13379, z: 0.13379} m_ConstrainProportionsScale: 0 m_Children: [] @@ -1714,7 +1305,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: d1f58490f6d04c64da01277723d63536, type: 2} + - {fileID: 2100000, guid: 7f259a434905b1b48a8984e5a62a84d2, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1797,7 +1388,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: d1f58490f6d04c64da01277723d63536, type: 2} + - {fileID: 2100000, guid: 7f45dac0366d7f541a5a3b1b30fc9a31, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1855,19 +1446,12 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 701272125} - {fileID: 1336295465} - - {fileID: 72271247} - - {fileID: 537650374} - - {fileID: 1231416614} - - {fileID: 1951919754} - {fileID: 767636495} - {fileID: 603545548} - - {fileID: 1277043237} - - {fileID: 713975856} - {fileID: 1681740148} - - {fileID: 149744769} - {fileID: 259858788} + - {fileID: 545153747} - {fileID: 613329381} - {fileID: 230809358} m_Father: {fileID: 612192276} @@ -1893,17 +1477,17 @@ PrefabInstance: - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} propertyPath: m_LocalPosition.x - value: 0.4 + value: 0 objectReference: {fileID: 0} - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} propertyPath: m_LocalPosition.y - value: -1.778 + value: 0 objectReference: {fileID: 0} - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} propertyPath: m_LocalPosition.z - value: -0.2 + value: 0 objectReference: {fileID: 0} - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} @@ -1940,11 +1524,21 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 2713893991261817724, guid: c50e7df1078c96f46bc6825f7e422fb7, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5635962022185625128, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} propertyPath: m_Name value: Portal In objectReference: {fileID: 0} + - target: {fileID: 7965773041589933745, guid: c50e7df1078c96f46bc6825f7e422fb7, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 94d63268ac1ac034d8c0af72dd04a346, type: 2} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -2071,7 +1665,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1681740147} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.438, y: 0, z: -0.215} + m_LocalPosition: {x: -0.18, y: 0, z: -0.12099999} m_LocalScale: {x: 0.13379, y: 0.13379, z: 0.13379} m_ConstrainProportionsScale: 0 m_Children: [] @@ -2148,7 +1742,7 @@ PrefabInstance: - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} propertyPath: m_LocalPosition.x - value: -0.3999997 + value: 0 objectReference: {fileID: 0} - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} @@ -2158,12 +1752,12 @@ PrefabInstance: - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} propertyPath: m_LocalPosition.z - value: 1.1400003 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} propertyPath: m_LocalRotation.w - value: -1 + value: -0.00000044703478 objectReference: {fileID: 0} - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} @@ -2173,7 +1767,7 @@ PrefabInstance: - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} propertyPath: m_LocalRotation.y - value: -0.0000001490116 + value: -1 objectReference: {fileID: 0} - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} @@ -2188,18 +1782,28 @@ PrefabInstance: - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: -360 + value: -180 objectReference: {fileID: 0} - target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 2713893991261817724, guid: c50e7df1078c96f46bc6825f7e422fb7, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5635962022185625128, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3} propertyPath: m_Name value: Portal Out objectReference: {fileID: 0} + - target: {fileID: 7965773041589933745, guid: c50e7df1078c96f46bc6825f7e422fb7, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 46455800cc2ce524c92336599f5ec772, type: 2} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -2223,86 +1827,3 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: ae59cddbf8fa37549bb38b1039feeb34, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &1951919753 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1951919754} - - component: {fileID: 1951919757} - - component: {fileID: 1951919756} - m_Layer: 0 - m_Name: Cylinder (5) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 2147483647 - m_IsActive: 1 ---- !u!4 &1951919754 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1951919753} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.812, y: 0, z: 0.821} - m_LocalScale: {x: 0.13379, y: 0.13379, z: 0.13379} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1453220877} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1951919756 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1951919753} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 3e334d6799a0d0040a41fe4794da90f5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1951919757 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1951919753} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} diff --git a/Assets/Test Assets/Materials/Holo Test A.mat b/Assets/Test Assets/Materials/Holo Test A.mat new file mode 100644 index 0000000..11e2807 --- /dev/null +++ b/Assets/Test Assets/Materials/Holo Test A.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Holo Test A + m_Shader: {fileID: -6465566751694194690, guid: a8038611270959146bc1906238005866, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Lines: + m_Texture: {fileID: 2800000, guid: b30c13edb6661cc45b14c983ecbb9601, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _FresnelPower: 2 + - _Fresnel_Power: 2 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _LinesPower: 0.55 + - _Lines_Power: 0.55 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _Speed: 0.02 + - _SrcBlend: 1 + - _Surface: 0 + - _Tiling: 256 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 8, g: 3.5137255, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _FresnelColor: {r: 8, g: 3.5137255, b: 0, a: 1} + - _Fresnel_Color: {r: 8, g: 3.5137255, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &3422464197433231880 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Assets/Test Assets/Materials/Holo Test A.mat.meta b/Assets/Test Assets/Materials/Holo Test A.mat.meta new file mode 100644 index 0000000..ea27fd0 --- /dev/null +++ b/Assets/Test Assets/Materials/Holo Test A.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7f259a434905b1b48a8984e5a62a84d2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Test Assets/Materials/Holo Test B.mat b/Assets/Test Assets/Materials/Holo Test B.mat new file mode 100644 index 0000000..4246ff6 --- /dev/null +++ b/Assets/Test Assets/Materials/Holo Test B.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Holo Test B + m_Shader: {fileID: -6465566751694194690, guid: a8038611270959146bc1906238005866, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Lines: + m_Texture: {fileID: 2800000, guid: b30c13edb6661cc45b14c983ecbb9601, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _FresnelPower: 2 + - _Fresnel_Power: 2 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _LinesPower: 0.55 + - _Lines_Power: 0.55 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _Speed: 0.02 + - _SrcBlend: 1 + - _Surface: 0 + - _Tiling: 256 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 7.999999, g: 0, b: 2.22282, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _FresnelColor: {r: 7.999999, g: 0, b: 1.8809087, a: 1} + - _Fresnel_Color: {r: 8, g: 3.5137255, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &3422464197433231880 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Assets/Test Assets/Materials/Holo Test B.mat.meta b/Assets/Test Assets/Materials/Holo Test B.mat.meta new file mode 100644 index 0000000..206514d --- /dev/null +++ b/Assets/Test Assets/Materials/Holo Test B.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7f45dac0366d7f541a5a3b1b30fc9a31 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Test Assets/Materials/Holo Test C.mat b/Assets/Test Assets/Materials/Holo Test C.mat new file mode 100644 index 0000000..39948b6 --- /dev/null +++ b/Assets/Test Assets/Materials/Holo Test C.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Holo Test C + m_Shader: {fileID: -6465566751694194690, guid: a8038611270959146bc1906238005866, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Lines: + m_Texture: {fileID: 2800000, guid: b30c13edb6661cc45b14c983ecbb9601, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _FresnelPower: 2 + - _Fresnel_Power: 2 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _LinesPower: 0.55 + - _Lines_Power: 0.55 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _Speed: 0.02 + - _SrcBlend: 1 + - _Surface: 0 + - _Tiling: 256 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 0, g: 1.9733808, b: 7.999999, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _FresnelColor: {r: 0, g: 2.4103277, b: 7.999999, a: 1} + - _Fresnel_Color: {r: 8, g: 3.5137255, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &3422464197433231880 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Assets/Test Assets/Materials/Holo Test C.mat.meta b/Assets/Test Assets/Materials/Holo Test C.mat.meta new file mode 100644 index 0000000..0d1d89a --- /dev/null +++ b/Assets/Test Assets/Materials/Holo Test C.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 93b04c4f28fa9dc4e9014c610a57f954 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/URP/URP-HighFidelity-Renderer.asset b/Assets/URP/URP-HighFidelity-Renderer.asset index e505c24..4ba8eba 100644 --- a/Assets/URP/URP-HighFidelity-Renderer.asset +++ b/Assets/URP/URP-HighFidelity-Renderer.asset @@ -48,10 +48,9 @@ MonoBehaviour: m_Name: Portal Stencil m_EditorClassIdentifier: m_Active: 1 - settings: - layer: - serializedVersion: 2 - m_Bits: 128 + layers: + serializedVersion: 2 + m_Bits: 128 --- !u!114 &11400000 MonoBehaviour: m_ObjectHideFlags: 0 @@ -71,7 +70,8 @@ MonoBehaviour: - {fileID: -1878332245247344467} - {fileID: -1381608776974771741} - {fileID: 7693142412764493824} - m_RendererFeatureMap: adc0de57c6d2eee5e359db2d238ad3ec00b851af4388c36a + - {fileID: 4760723987118474777} + m_RendererFeatureMap: adc0de57c6d2eee5e359db2d238ad3ec00b851af4388c36a19c6e02d3e7d1142 m_UseNativeRenderPass: 0 postProcessData: {fileID: 0} xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} @@ -111,6 +111,22 @@ MonoBehaviour: m_CopyDepthMode: 0 m_AccurateGbufferNormals: 0 m_IntermediateTextureMode: 1 +--- !u!114 &4760723987118474777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eaf6ad8627b74652be2715a93378d05f, type: 3} + m_Name: Render Portal Cameras + m_EditorClassIdentifier: + m_Active: 1 + layers: + serializedVersion: 2 + m_Bits: 119 --- !u!114 &7693142412764493824 MonoBehaviour: m_ObjectHideFlags: 0 @@ -124,7 +140,6 @@ MonoBehaviour: m_Name: Full Screen Depth m_EditorClassIdentifier: m_Active: 1 - settings: - layer: - serializedVersion: 2 - m_Bits: 256 + layers: + serializedVersion: 2 + m_Bits: 256