コード例 #1
0
        void OnRenderImage(RenderTexture source, RenderTexture destination)
        {
            Graphics.Blit(source, (RenderTexture)null);
            if (_asyncImageSaver == null)
            {
                return;
            }
            var rgbRt = _asyncImageSaver.GetTemporaryRenderTexture(_segmentedImageSetup.ImageWidth,
                                                                   _segmentedImageSetup.ImageHeight, source.depth, GraphicsFormat.R8G8B8A8_SRGB);

            Graphics.Blit(source, rgbRt);
            var depthRT = _asyncImageSaver.GetTemporaryRenderTexture(_segmentedImageSetup.ImageWidth,
                                                                     _segmentedImageSetup.ImageHeight, source.depth, GraphicsFormat.R8G8B8A8_SRGB);

            Graphics.Blit(source, depthRT, _segmentedImageSetup.DepthRenderMaterial);
            _asyncImageSaver.SetRgbAndDepthRenderTexture(rgbRt, depthRT);
        }
コード例 #2
0
        void OnPostRender()
        {
            if (_asyncImageSaver == null)
            {
                return;
            }
            // Draw full Screen Quad
            var outputRenderTexture = _asyncImageSaver.GetTemporaryRenderTexture(_segmentedImageSetup.ImageWidth, _segmentedImageSetup.ImageHeight, 24, GraphicsFormat.R8G8B8A8_SRGB);

            var previousRenderTarget = RenderTexture.active;

            RenderTexture.active = outputRenderTexture;

            GL.Clear(true, true, new Color(0, 0, 0, 0));
            GL.PushMatrix();
            _segmentedImageSetup.SegmentedOutputMaterial.SetPass(0);
            GL.LoadOrtho();

            GL.Begin(GL.QUADS);             // Quad

            GL.TexCoord2(0, 0);
            GL.Vertex3(0f, 0f, 0);

            GL.TexCoord2(0, 1);
            GL.Vertex3(0f, 1f, 0);

            GL.TexCoord2(1, 1);
            GL.Vertex3(1f, 1f, 0);

            GL.TexCoord2(1, 0);
            GL.Vertex3(1f, 0f, 0);

            GL.End();

            GL.PopMatrix();

            _asyncImageSaver.SetSegmentedRenderTexture(outputRenderTexture);
            RenderTexture.active = previousRenderTarget;
        }