Article · Wikipedia archive · Last revised May 28, 2026

Multiple Render Targets

In the field of 3D computer graphics, Multiple Render Targets, or MRT, is a feature of modern graphics processing units (GPUs) that allows the programmable rendering pipeline to render images to multiple render target textures at once. These textures can then be used as inputs to other shaders or as texture maps applied to 3D models. Introduced by OpenGL 2.0 and Direct3D 9, MRT can be invaluable to real-time 3D applications such as video games. Before the advent of MRT, a programmer would have to issue a command to the GPU to draw the 3D scene once for each render target texture, resulting in redundant vertex transformations which, in a real-time program expected to run as fast as possible, can be quite time-consuming. With MRT, a programmer creates a pixel shader that returns an output value for each render target. This pixel shader then renders to all render targets with a single draw command.

Last revised
May 28, 2026
Read time
≈ 2 min
Length
385 w
Citations
5
Source

In the field of 3D computer graphics, Multiple Render Targets, or MRT, is a feature of modern graphics processing units (GPUs) that allows the programmable rendering pipeline to render images to multiple render target textures at once.1 These textures can then be used as inputs to other shaders or as texture maps applied to 3D models. Introduced by OpenGL 2.0 and Direct3D 9, MRT can be invaluable to real-time 3D applications such as video games. Before the advent of MRT, a programmer would have to issue a command to the GPU to draw the 3D scene once for each render target texture, resulting in redundant vertex transformations which, in a real-time program expected to run as fast as possible, can be quite time-consuming. With MRT, a programmer creates a pixel shader that returns an output value for each render target. This pixel shader then renders to all render targets with a single draw command.

A common use of MRT is deferred shading, a shading process which, unlike forward shading, performs lighting calculations on an entire 3D scene at once instead of on each individual object. To do this in real-time, MRT is used to store the required information for the lighting calculations in multiple render targets. In deferred shading, this set of textures is commonly called a geometry buffer, or G-buffer.23 These are then used after the entire scene has been drawn to calculate the lit final image. Typically one render target holds color and surface information of objects, while another contains the surface normals and depth information of the scene which are used to calculate the reflection of light. Additional render targets can be used to store information such as the specularity of the surface and ambient occlusion data. However, deferred-shading pipelines that rely on MRT can require large G-buffers and significant memory bandwidth, particularly when combined with multisample anti-aliasing (MSAA).45

See also

See also

References

References

  1. "Multiple Render Targets | PlayCanvas Developer Site". developer.playcanvas.com. Retrieved 2026-03-26.
  2. "Evolving the Real-Time Graphics Pipeline for Micropolygon Rendering" (PDF). graphics.stanford.edu. Stanford University.
  3. "Chapter 9. Deferred Shading in S.T.A.L.K.E.R." NVIDIA Developer. NVIDIA Developer (GPU Gems 2).
  4. "Deferred Attribute Interpolation for Memory-Efficient Deferred Shading". diglib.eg.org. The Eurographics Association.
  5. "Multisample anti-aliasing in deferred rendering". diglib.eg.org. The Eurographics Association.