예제 #1
0
        internal void Record(CommandBuffer commandbuffer)
        {
            ThrowIfDisposed();

            scene.BeginDebugMarker(commandbuffer, "BoxBlur");
            {
                renderer.Record(commandbuffer);
            }
            scene.EndDebugMarker(commandbuffer);
        }
        internal void Record(CommandBuffer commandbuffer, int swapchainIndex)
        {
            ThrowIfDisposed();

            scene.BeginDebugMarker(commandbuffer, "G-Buffer");
            {
                renderer.SetPushData(swapchainIndexPushDataBinding, swapchainIndex);
                renderer.Record(commandbuffer);
            }
            scene.EndDebugMarker(commandbuffer);
        }
예제 #3
0
        internal void Record(CommandBuffer commandbuffer)
        {
            ThrowIfDisposed();

            scene.BeginDebugMarker(commandbuffer, "Bloom");
            {
                renderer.Record(commandbuffer);

                //Insert barrier because bloom rendering needs to be done before we can blur it
                Renderer.InsertOutputReadBarrier(commandbuffer);

                blurTechnique.Record(commandbuffer);
            }
            scene.EndDebugMarker(commandbuffer);
        }
예제 #4
0
        internal void Record(CommandBuffer commandbuffer, int swapchainIndex)
        {
            ThrowIfDisposed();

            scene.BeginDebugMarker(commandbuffer, "AmbientOcclusion");
            {
                renderer.SetPushData(swapchainIndexPushDataBinding, swapchainIndex);
                renderer.SetPushData(targetSizePushBinding, aoTarget.Size);
                renderer.Record(commandbuffer);

                //Insert barrier to wait for rendering of ao-target to be done before starting the blurring
                Renderer.InsertOutputReadBarrier(commandbuffer);

                blurTechnique.Record(commandbuffer);
            }
            scene.EndDebugMarker(commandbuffer);
        }
        internal void Record(CommandBuffer commandbuffer)
        {
            ThrowIfDisposed();

            scene.BeginDebugMarker(commandbuffer, "GaussianBlur");
            {
                for (int i = 0; i < iterations; i++)
                {
                    if (i != 0)
                    {
                        //Insert barrier to wait for last blur 'step' to be done
                        Renderer.InsertOutputReadBarrier(commandbuffer);
                    }

                    rendererHor.Record(commandbuffer);

                    //Insert barrier to wait for rendererA is done before starting rendererB
                    Renderer.InsertOutputReadBarrier(commandbuffer);

                    rendererVer.Record(commandbuffer);
                }
            }
            scene.EndDebugMarker(commandbuffer);
        }