Esempio n. 1
0
        void IssueComposite(CommandBuffer cb)
        {
            var id = Shader.PropertyToID("SubtractionDepth");

            cb.GetTemporaryRT(id, -1, -1, 24, FilterMode.Point, RenderTextureFormat.Depth);
            cb.SetRenderTarget(id);
            cb.ClearRenderTarget(true, true, Color.black, 1f);

            foreach (var subtractee in Subtractee.GetAll())
            {
                subtractee.IssueDrawFront(cb);
            }

            for (int i = 0; i < maskDrawNum; ++i)
            {
                foreach (var subtractor in Subtractor.GetAll())
                {
                    subtractor.IssueDrawMask(cb);
                }
            }

            cb.SetRenderTarget(BuiltinRenderTextureType.CameraTarget);
            cb.SetGlobalTexture("_SubtractionDepth", id);
            cb.DrawMesh(quad, Matrix4x4.identity, compositeMaterial);
        }
Esempio n. 2
0
        void IssueDrawBackDepth(CommandBuffer cb)
        {
            var id = Shader.PropertyToID("SubtracteeBackDepth");

            cb.GetTemporaryRT(id, -1, -1, 24, FilterMode.Point, RenderTextureFormat.Depth);
            cb.SetRenderTarget(id);
            cb.ClearRenderTarget(true, true, Color.black, 0f);

            foreach (var subtractee in Subtractee.GetAll())
            {
                subtractee.IssueDrawBack(cb);
            }

            cb.SetGlobalTexture("_SubtracteeBackDepth", id);
        }