示例#1
0
    void OnRenderImage(RenderTexture source, RenderTexture destination)
    {
        tempCamera.CopyFrom(sourceCamera);
        tempCamera.clearFlags      = CameraClearFlags.SolidColor;
        tempCamera.backgroundColor = Color.clear;
        tempCamera.SetTargetBuffers(colorBuffers, depthBuffer.depthBuffer);
        tempCamera.cullingMask = 1 << LayerMask.NameToLayer("clipRender");


        for (int i = 0; i < depthMax; i++)
        {
            Graphics.Blit(rts[0], rtTemp);// 这里不知道为什么需要复制出来 不能直接用rts【0】 当时我判断是不可同时读写所以复制一份就可以了
            Shader.SetGlobalInt("DepthRenderedIndex", i);
            tempCamera.RenderWithShader(MRTShader, "");
            Graphics.CopyTexture(rts[1], 0, 0, finalClips, i, 0);
        }

        if (showFinal == false)
        {
            Graphics.Blit(rts[rt.GetHashCode()], destination);
        }
        else
        {
            Graphics.Blit(null, destination, finalClipsMat);
        }
    }
示例#2
0
    void OnRenderImage(RenderTexture source, RenderTexture destination)
    {
        tempCamera.CopyFrom(sourceCamera);
        tempCamera.SetTargetBuffers(this.colorBuffers, this.depthBuffer.depthBuffer);
        tempCamera.cullingMask = 1 << LayerMask.NameToLayer("Lerpz");
        tempCamera.RenderWithShader(MRTShader, "");

        Graphics.Blit(rts[rt.GetHashCode()], destination);
    }
示例#3
0
        /// <summary>
        /// needed for "Equals"
        /// </summary>
        /// <returns></returns>
        public override int GetHashCode()
        {
            int hash = 13;

            hash = (hash * 7) + X.GetHashCode();
            hash = (hash * 7) + Y.GetHashCode();
            hash = (hash * 7) + Z.GetHashCode();
            hash = (hash * 7) + XR.GetHashCode();
            hash = (hash * 7) + YR.GetHashCode();
            hash = (hash * 7) + LT.GetHashCode();
            hash = (hash * 7) + RT.GetHashCode();
            hash = (hash * 7) + DpadDirection.GetHashCode();
            hash = (hash * 7) + buttons.GetHashCode();
            return(hash);
        }