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);
    }
Exemple #2
0
    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);
    }