示例#1
0
    public void OnPreRender()
    {
        this._viewProj = Matrix4x4.op_Multiply(GL.GetGPUProjectionMatrix(Matrix4x4.Perspective(this._camera.get_fieldOfView(), this._camera.get_aspect(), 0.01f, this._camera.get_farClipPlane()), true), this._camera.get_worldToCameraMatrix());
        this._preLightPass.Clear();
        bool flag = SystemInfo.get_graphicsShaderLevel() > 40;

        if (this.Resolution == VolumetricLightRenderer.VolumtericResolution.Quarter)
        {
            Texture texture = (Texture)null;
            this._preLightPass.Blit(texture, RenderTargetIdentifier.op_Implicit((Texture)this._halfDepthBuffer), this._bilateralBlurMaterial, !flag ? 10 : 4);
            this._preLightPass.Blit(texture, RenderTargetIdentifier.op_Implicit((Texture)this._quarterDepthBuffer), this._bilateralBlurMaterial, !flag ? 11 : 6);
            this._preLightPass.SetRenderTarget(RenderTargetIdentifier.op_Implicit((Texture)this._quarterVolumeLightTexture));
        }
        else if (this.Resolution == VolumetricLightRenderer.VolumtericResolution.Half)
        {
            this._preLightPass.Blit((Texture)null, RenderTargetIdentifier.op_Implicit((Texture)this._halfDepthBuffer), this._bilateralBlurMaterial, !flag ? 10 : 4);
            this._preLightPass.SetRenderTarget(RenderTargetIdentifier.op_Implicit((Texture)this._halfVolumeLightTexture));
        }
        else
        {
            this._preLightPass.SetRenderTarget(RenderTargetIdentifier.op_Implicit((Texture)this._volumeLightTexture));
        }
        this._preLightPass.ClearRenderTarget(false, true, new Color(0.0f, 0.0f, 0.0f, 1f));
        this.UpdateMaterialParameters();
        if (VolumetricLightRenderer.PreRenderEvent == null)
        {
            return;
        }
        VolumetricLightRenderer.PreRenderEvent(this, this._viewProj);
    }
    public void OnPreRender()
    {
        Matrix4x4 matrix4x = Matrix4x4.Perspective(this._camera.fieldOfView, this._camera.aspect, 0.01f, this._camera.farClipPlane);

        matrix4x       = GL.GetGPUProjectionMatrix(matrix4x, true);
        this._viewProj = matrix4x * this._camera.worldToCameraMatrix;
        this._preLightPass.Clear();
        bool flag = SystemInfo.graphicsShaderLevel > 40;

        if (this.Resolution == VolumetricLightRenderer.VolumtericResolution.Quarter)
        {
            Texture source = null;
            this._preLightPass.Blit(source, this._halfDepthBuffer, this._bilateralBlurMaterial, (!flag) ? 10 : 4);
            this._preLightPass.Blit(source, this._quarterDepthBuffer, this._bilateralBlurMaterial, (!flag) ? 11 : 6);
            this._preLightPass.SetRenderTarget(this._quarterVolumeLightTexture);
        }
        else if (this.Resolution == VolumetricLightRenderer.VolumtericResolution.Half)
        {
            Texture source2 = null;
            this._preLightPass.Blit(source2, this._halfDepthBuffer, this._bilateralBlurMaterial, (!flag) ? 10 : 4);
            this._preLightPass.SetRenderTarget(this._halfVolumeLightTexture);
        }
        else
        {
            this._preLightPass.SetRenderTarget(this._volumeLightTexture);
        }
        this._preLightPass.ClearRenderTarget(false, true, new Color(0f, 0f, 0f, 1f));
        this.UpdateMaterialParameters();
        if (VolumetricLightRenderer.PreRenderEvent != null)
        {
            VolumetricLightRenderer.PreRenderEvent(this, this._viewProj);
        }
    }