diff --git a/Assets/Portal/Runtime/RenderPortalCameras.cs b/Assets/Portal/Runtime/RenderPortalCameras.cs index 1ec26ea..88bbfd3 100644 --- a/Assets/Portal/Runtime/RenderPortalCameras.cs +++ b/Assets/Portal/Runtime/RenderPortalCameras.cs @@ -81,8 +81,12 @@ namespace EscapeRoomEngine.Portal.Runtime context.ExecuteCommandBuffer(_commandBuffer); _commandBuffer.Clear(); + // frustum culling + camera.TryGetCullingParameters(true, out var cullingParameters); + var cullingResults = context.Cull(ref cullingParameters); + // render the portal - context.DrawRenderers(renderingData.cullResults, ref drawingSettings, ref filteringSettings, ref _renderStateBlock); + context.DrawRenderers(cullingResults, ref drawingSettings, ref filteringSettings, ref _renderStateBlock); // reset RenderingUtils.SetViewAndProjectionMatrices(_commandBuffer, cameraData.GetViewMatrix(), cameraData.GetGPUProjectionMatrix(), false); diff --git a/Assets/Scenes/StencilPortalScene.unity b/Assets/Scenes/StencilPortalScene.unity index 3c02d20..3fea674 100644 --- a/Assets/Scenes/StencilPortalScene.unity +++ b/Assets/Scenes/StencilPortalScene.unity @@ -535,6 +535,16 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.y value: -180 objectReference: {fileID: 0} + - target: {fileID: 6854256365856247454, guid: ecbf9ce952d5f38458b8237a4483c562, + type: 3} + propertyPath: m_ClearFlags + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6854256365856247454, guid: ecbf9ce952d5f38458b8237a4483c562, + type: 3} + propertyPath: m_FocalLength + value: 9.492393 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -823,7 +833,134 @@ MonoBehaviour: m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} - m_SoftShadowQuality: 2 + m_SoftShadowQuality: 3 +--- !u!1 &517533142 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 517533143} + - component: {fileID: 517533146} + - component: {fileID: 517533144} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &517533143 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 517533142} + m_LocalRotation: {x: -0, y: -1, z: -0, w: -0.00000004470348} + m_LocalPosition: {x: -0, y: 1.159, z: 5.053} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 612192276} + m_RootOrder: -1 + m_LocalEulerAnglesHint: {x: 0, y: -180, z: 0} +--- !u!114 &517533144 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 517533142} + 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: 1 + 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!20 &517533146 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 517533142} + 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: 0 + 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!1 &545153746 GameObject: m_ObjectHideFlags: 0 @@ -1021,6 +1158,7 @@ Transform: - {fileID: 1541557705} - {fileID: 1933565652} - {fileID: 1453220877} + - {fileID: 517533143} m_Father: {fileID: 0} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}