private void SetFitToView(Camera lightCamera, Camera viewCamera) { List <Vector3> sceneBoundVertexs = BoundVertexsDetector.GetSceneBoundVertexs(sceneAABB); List <Vector3> viewBoundVertexs = BoundVertexsDetector.GetPerspectiveCameraFrustumVertexs(viewCamera); SetLightCameraFrustum.SetFitToView(lightCamera, gameObject, sceneBoundVertexs, viewBoundVertexs); }
private void Capture() { Camera viewCamera = Camera.main; MinMax[] depthRanges; List <Vector3>[] splitBounds = SplitScene.Execute(mSceneBoundVertexs, viewCamera, mRelativeSplitArray, out depthRanges); for (int i = 0; i < splitBounds.Length; i++) { mLightCamera.targetTexture = mDepthMaps[i]; SetLightCameraFrustum.SetFitToView(mLightCamera, mLightObj, mSceneBoundVertexs, splitBounds[i]); mLightCamera.RenderWithShader(mCaptureShader, "RenderType"); Shader.SetGlobalFloat("_shadowDepth" + i, ToCameraShaderDepth(depthRanges[i].min, viewCamera)); Shader.SetGlobalTexture("_shadowDepthMap" + i, mDepthMaps[i]); SetProjectionMatrix.Execute(mLightCamera, "_LightProjection" + i); } }
private void SetFitToScene(Camera lightCamera) { List <Vector3> sceneBoundVertexs = BoundVertexsDetector.GetSceneBoundVertexs(sceneAABB); SetLightCameraFrustum.SetFitToScene(lightCamera, gameObject, sceneBoundVertexs); }