// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
    \example deferred-renderer-cpp
    \title Qt 3D: Deferred Renderer C++ Example
    \ingroup qt3d-examples-cpp
    \brief A C++ application that demonstrates rendering to an intermediate
    G-buffer.

    \e {Deferred Renderer} demonstrates using a two pass rendering method.
    First, all the meshes in the scene are drawn using the same shader that will
    output the following values for each fragment: world normal vector, color,
    depth, and world position vector.

    Each of these values will be stored in a texture, which together form what
    is called the G-buffer. Nothing is drawn onscreen during the first pass, but
    rather drawn into the G-buffer ready for later use.

    Once all the meshes have been drawn, the G-buffer is filled with all the
    meshes that can currently be seen by the camera. The second render pass is
    then used to render the scene to the back buffer with the final color
    shading by reading the values from the G-buffer textures and outputting a
    color onto a full screen quad.

    For more information, see \l{Deferred Renderer}.

    \include examples-run.qdocinc
*/
