Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
(Redirected from Multi-res shading)

Multi-resolution shading or multi-res shading is a VR rendering technology that is part of Nvidia's GameWorks VR suite and later of its VRWorks SDK. In multi-res shading, the rendering accounts for the distortion caused by the lenses of the HMD. The center of the image, an area little affected by the distortion, is rendered at a higher resolution than the edges of the image, where distortion occurs.[1] Nvidia states that multi-res shading improves performance without a perceptible loss of image quality.[1]

Nvidia announced the technique on 31 May 2015, in conjunction with Computex 2015, when it grouped its VR technologies under the GameWorks VR name.[2] It depends on a hardware feature of the company's Maxwell GPUs that sends scene geometry to several viewports in a single pass, and Nvidia claimed a 1.3x to 2x increase in pixel shader performance.[2] The technique was used in PC VR titles such as Raw Data and Everest VR, and later in the non-VR game Shadow Warrior 2.[3] Nvidia's later GPU architectures added related techniques for reducing excess pixel shading: Lens Matched Shading on Pascal and Variable rate shading on Turing.[4][5]

Reviewed 27 September 2026. New and reworded text checked against the cited NVIDIA, Reed SIGGRAPH 2015, AnandTech, Tom's Hardware, Road to VR, HPG 2016 paper, Valve GDC 2016, TechSpot and HEXUS sources; the older Tom Peterson video claim was not re-checked. About review dates.

How it works

Normally, an image on a screen, rendered by GPU, is flat. In an HMD, users view the image through lenses that allow the users to focus and increase field of view. When viewed from lenses, a flat image is greatly distorted. To counter this, the VR runtime software has to perform an extra process to "de-distort" or warp the image before it is passed through the lenses and onto the user's eyes. Because of this warp process, the edges of the image are compressed and have fewer pixels. Multi-res shading does not render the entire flat image at the pixel density needed for its center. Instead, it renders an image whose pixel density more closely approximates that of the warped image, saving the processor from rendering a significant number of pixels.[1]

Multi-res shading performs this function by dividing the image into a 3x3 grid of nine viewports. Only the center viewport is rendered in full resolution. It renders the outer viewports at lower resolution because they are compressed and shrink during the distortion process. Multi-res shading improves the performance of the VR app by rendering fewer pixels.[1]

The over-rendering problem

In his SIGGRAPH 2015 talk on GameWorks VR, Nathan Reed of Nvidia explained that the lenses of a VR headset introduce pincushion distortion, so the rendered image must be barrel-distorted in the opposite way to cancel it; chromatic aberration must also be corrected in software.[1] GPU rasterization hardware is designed around linear perspective projections and cannot render directly into such a nonlinear view, so VR software first renders a normal perspective image and then resamples it into the distorted view as a post-process.[1] According to Reed, on the Oculus Rift and HTC Vive the recommended rendered image size was close to double the pixel count of the final distorted image. The center of the image keeps its size in the distortion pass, while the outskirts are squashed, so many of the pixels rendered and shaded near the edges are thrown away.[1]

Viewports and single-pass rendering

Each viewport in the multi-res grid is still a standard rectilinear perspective projection, so the GPU can render into the set of viewports natively. The center viewport keeps its size, and the left, right, top and bottom regions are scaled down.[1] Nvidia's developer documentation says developers can choose how the grid is divided and how aggressively the outer regions are scaled, depending on the content and how it moves.[6]

Replicating scene geometry to several viewports by resubmitting draw calls, instancing or geometry shader expansion would normally add enough overhead to cancel the savings from shading fewer pixels. Reed stated that Maxwell GPUs can broadcast geometry to many viewports of arbitrary shapes and sizes in hardware, with the draw calls submitted once and the geometry pipeline run once, so the multi-resolution render target can be drawn in a single pass.[1] Nvidia's Pascal VR documentation names the two Maxwell features behind the technique as Viewport Multi-Cast and Fast Geometry Shaders.[7]

Pixel savings

Reed described two example settings. A "conservative" setting never drops below one rendered pixel per display pixel anywhere in the image; it saves about 25% of the pixels, which in a perfectly pixel-bound case works out to a 1.3x performance improvement. A more aggressive setting saves 50% of the pixels, a 2x speedup if perfectly pixel-bound, but "could visibly affect image quality, depending on your scene".[1] Overall, Reed said developers could save "anywhere from 20% to 50% of the pixels" depending on how far they scaled down the outer regions.[1] Nvidia's developer page notes that the gains are largest when an application is pixel bound.[6]

According to Nvidia engineer Tom Peterson, multi-res shading can save about 50% of the pixel load.[8]

When Tom's Hardware saw an Nvidia demonstration at the May 2015 announcement, its reporter could not see a difference at the edges of the image in most cases; a visible blur and shake at the outer edges appeared only when Nvidia raised the compression past about 50 percent.[9]

Integration and support

Multi-res shading should be used by a game engine developer. It cannot be turned on from the driver directly.[1] Reed noted that besides enabling multi-res in the main rendering pass, developers also have to modify most screen-space post-processing passes that operate on the multi-res render target, such as bloom, SSAO and motion blur, and deferred shading renderers need changes to their lighting passes.[1]

At the time of the SIGGRAPH 2015 talk the SDK was still in development. Reed said it would take the form of DirectX 11 and OpenGL extensions and, because it relied on Maxwell's fast viewport broadcast, would be available only on Maxwell GPUs: the GeForce GTX 900 series, Titan X and Quadro M6000.[1] Nvidia's current VRWorks page lists support for DirectX 11, DirectX 12 and OpenGL, on Maxwell and Pascal GPUs ("GeForce GTX 900 series and Quadro M5000 and higher").[6]

Game engines

Road to VR reported in November 2015 that, at the VRX 2015 conference in San Francisco, Nvidia's Tony Tamasi announced that Epic Games would add GameWorks VR multi-res shading and VR SLI support to Unreal Engine 4.[10] Nvidia's press release from that month said Epic had achieved a 50 percent performance increase in its UE4-based Reflections Subway demo by applying multi-res shading.[11] Nvidia later distributed its VRWorks features through an Unreal Engine 4 branch on GitHub; the VRWorks 4.12 graphics branch added Lens Matched Shading, which Nvidia said improves upon multi-res shading.[12]

For Unity, Nvidia released a VRWorks plugin on the Unity Asset Store for Unity 2017.1 beta 2 and later. Road to VR reported in July 2017 that it included multi-res shading (for Maxwell and Pascal GPUs) alongside Lens Matched Shading, Single Pass Stereo and VR SLI.[13][14]

Use in games

Nvidia reports that multi-res shading raised the frame rate of Everest VR by 40%,[6] and it lists Everest VR and Raw Data among the VR titles whose performance the technique improved.[3] Nvidia's VR Funhouse, a free game for the HTC Vive released in July 2016 as a showcase of the company's VR technology, also used multi-res shading.[15][16]

Shadow Warrior 2 (October 2016) was the first non-VR title to use the feature, applying it to reduce resolution at the edges of an ordinary monitor image.[17] Nvidia said the game offered Conservative and Aggressive modes, which rendered the border regions at 60% and 40% resolution respectively, supported GeForce GTX 900 and 10-series cards, and could improve performance by up to 30%.[3] In an independent test with mid-range GeForce cards including the GTX 970 and GTX 1060, Tom's Hardware found measurable frame-rate gains, largest at 4K. It also found that the game's implementation removed or reduced some lens flares, reflections and lighting effects, including in the center of the screen, and recommended against the Aggressive mode because of its effect on image quality.[17]

Comparison with related techniques

Research evaluation

In a 2016 High-Performance Graphics paper, Intel researchers Robert Toth, Jim Nilsson and Tomas Akenine-Möller compared several ways of rendering for lens-distorted, wide field-of-view headsets, including multi-res shading in a 3x3 configuration (the number of planes used in Nvidia's programming guide).[18] They described it as a single projection plane divided into a grid of co-planar sub-projections with individually controlled resolution, a significant improvement over a single projection but one that cannot be used for fields of view above 180 degrees.[18] The authors suggested that it was probably designed to use the GL_NV_viewport_array2 OpenGL extension, which lets it be rendered in a single pass.[18]

Their optimized pixel counts per eye, for configurations without matched resolutions along sub-projection edges, were:[18]

Headset Single projection (megapixels) Multi-res shading 3x3 (megapixels)
StarVR 10.49 - 11.30 4.86 - 5.14
HTC Vive Pre 2.72 - 3.28 1.77 - 1.98
Oculus Rift DK2 1.93 1.39

The lower value in each range uses masking of pixels that do not reach the distorted image. The paper's own multi-plane projection method, which can tilt sub-projections, needed fewer pixels still; the authors found a 2x2 multi-plane layout better than multi-res shading 3x3 for high-distortion lenses and the reverse for low-distortion lenses, and a 3x3 multi-plane layout consistently needed fewer pixels than multi-res shading 3x3.[18] They also noted that any method using several sub-projections makes image-space effects such as bloom, blur and SSAO harder to apply before distortion, because filter footprints can extend into neighboring sub-projections.[18]

Fixed foveated rendering

In his 2016 Game Developers Conference talk "Advanced VR Rendering Performance", Valve's Alex Vlachos discussed fixed foveated rendering as a way to reduce over-rendering at the periphery: with a standard projection matrix, pixel density per degree increases toward the periphery, while with VR optics it increases at the center. He reported that using Nvidia's multi-resolution shading gained "an additional ~5-10% GPU perf with less CPU overhead".[19]

Lens Matched Shading

With the Pascal architecture (GeForce GTX 1080, 2016), Nvidia introduced Simultaneous Multi-Projection and a VR feature built on it called Lens Matched Shading.[4] Nvidia's Pascal VR documentation calls multi-res shading "only a piecewise linear approximation to the ideal solution"; Lens Matched Shading adds an extra transform per viewport that lets the shading rate vary continuously, splitting each eye's view into four quadrants.[20][7] The GTX 1080 whitepaper describes Maxwell's multi-resolution capability as "a precursor to Pascal SMP" and gives an example in which Lens Matched Shading reduced the first-pass image from 2.1 to 1.4 megapixels per eye, which Nvidia said translates to a 50% increase in throughput available for pixel shading.[4][20] Multi-res shading remained available on Pascal GPUs.[6]

Variable rate shading

With the Turing architecture in 2018, Nvidia added variable rate shading (VRS), which changes the number of pixels processed by a single pixel shader operation; each 16 by 16 tile of pixels maps to its own shading rate entry.[5] In its VRWorks blog post introducing Turing VRS, Nvidia described multi-res shading as "more suited for applications that need limited flexibility in terms of pixel shading patterns" and noted that because rasterization happens at a lower resolution in both multi-res shading and Lens Matched Shading, both "require a separate upscaling pass".[5]

See also

References

  1. ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 Nathan Reed (2015-08-17). "NVIDIA GameWorks VR (SIGGRAPH 2015 slides with speaker notes)". Nathan Reed's coding blog. NVIDIA. https://www.reedbeta.com/talks/gameworks-vr/GameWorks_VR_SIGGRAPH_2015.pdf. Retrieved 2026-09-27.
  2. ↑ 2.0 2.1 Ryan Smith (2015-05-31). "NVIDIA Announces GameWorks VR Branding, Adds Multi-Res Shading". AnandTech. https://web.archive.org/web/2020/https://www.anandtech.com/show/9305/nvidia-announces-gameworks-vr-branding-adds-multires-shading. Retrieved 2026-09-27.
  3. ↑ 3.0 3.1 3.2 Andrew Burnes (2016-10-13). "Shadow Warrior 2 Available Now, Includes NVIDIA Multi-Res Shading For 30% Faster Performance". GeForce News. NVIDIA. https://www.nvidia.com/en-us/geforce/news/shadow-warrior-2-nvidia-multi-res-shading. Retrieved 2026-09-27.
  4. ↑ 4.0 4.1 4.2 "NVIDIA GeForce GTX 1080 Whitepaper: Gaming Perfected". NVIDIA. NVIDIA. 2016. https://international.download.nvidia.com/geforce-com/international/pdfs/GeForce_GTX_1080_Whitepaper_FINAL.pdf. Retrieved 2026-09-27.
  5. ↑ 5.0 5.1 5.2 Swaroop Bhonde (2018-09-24). "Turing Variable Rate Shading in VRWorks". NVIDIA Technical Blog. NVIDIA. https://developer.nvidia.com/blog/turing-variable-rate-shading-vrworks. Retrieved 2026-09-27.
  6. ↑ 6.0 6.1 6.2 6.3 6.4 "VRWorks - Multi-Res Shading". NVIDIA Developer. NVIDIA. https://developer.nvidia.com/vrworks/graphics/multiresshading. Retrieved 2026-09-27.
  7. ↑ 7.0 7.1 "Pascal VR Tech". NVIDIA Developer. NVIDIA. https://developer.nvidia.com/pascal-vr-tech. Retrieved 2026-09-27.
  8. ↑ https://www.youtube.com/watch?v=88RnIVcvuRY
  9. ↑ Fritz Nelson (2015-05-31). "Nvidia GameWorks VR Multi-Res Shading And Other Parlor Tricks". Tom's Hardware. https://www.tomshardware.com/news/nvidia-gameworks-vr,29197.html. Retrieved 2026-09-27.
  10. ↑ Paul James (2015-11-09). "Unreal Engine to Add NVIDIA Gameworks VR Support, Including VR SLI". Road to VR. https://roadtovr.com/unreal-engine-to-add-nvidia-multi-res-shading-and-vr-sli-support/. Retrieved 2026-09-27.
  11. ↑ "NVIDIA VR Platforms Deliver Massive Performance Boost for Virtual Reality". NVIDIA Newsroom. NVIDIA. 2015-11-18. https://nvidianews.nvidia.com/news/nvidia-vr-platforms-deliver-massive-performance-boost-for-virtual-reality-6622453. Retrieved 2026-09-27.
  12. ↑ "VRWorks Unreal Engine Branch adds support for VR SLI, Lens Matched Shading, and Single Pass Stereo". NVIDIA Developer. NVIDIA. https://developer.nvidia.com/vrworks-unreal-engine-branch-adds-support-vr-sli-lens-matched-shading-and-single-pass-stereo. Retrieved 2026-09-27.
  13. ↑ "Unity's Main Branch Now Supports NVIDIA VRWorks for Enhanced Rendering Features". Road to VR. 2017-07-13. https://roadtovr.com/nvidia-vrworks-coming-unity/. Retrieved 2026-09-27.
  14. ↑ "VRWorks Support for Unity Now Available". NVIDIA Developer. NVIDIA. https://developer.nvidia.com/nvidia-vrworks-support-unity-engine-now-available. Retrieved 2026-09-27.
  15. ↑ Tim Schiesser (2016-07-14). "Nvidia releases Ansel, VR Funhouse, and new GeForce drivers". TechSpot. https://www.techspot.com/news/65593-nvidia-releases-ansel-vr-funhouse-new-geforce-drivers.html. Retrieved 2026-09-27.
  16. ↑ Mark Tyson (2016-07-15). "Nvidia releases GeForce Game Ready 368.81 WHQL VR drivers". HEXUS. https://m.hexus.net/tech/news/software/94600-nvidia-releases-geforce-game-ready-36881-whql-vr-drivers/?print=1. Retrieved 2026-09-27.
  17. ↑ 17.0 17.1 Yannick Guerrini (2017-01-01). "Testing Nvidia's Multi-Res Shading In Shadow Warrior 2". Tom's Hardware. https://www.tomshardware.com/reviews/shadow-warrior-2-nvidia-multi-res-shading,4803.html. Retrieved 2026-09-27.
  18. ↑ 18.0 18.1 18.2 18.3 18.4 18.5 Robert Toth, Jim Nilsson, Tomas Akenine-Möller (2016). "Comparison of Projection Methods for Rendering Virtual Reality". High-Performance Graphics 2016, Eurographics Association. http://fileadmin.cs.lth.se/graphics/research/papers/2016/VR/VR.pdf. Retrieved 2026-09-27.
  19. ↑ Alex Vlachos (2016). "Advanced VR Rendering Performance". Game Developers Conference 2016. Valve. http://media.steampowered.com/apps/valve/2016/Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016.pdf. Retrieved 2026-09-27.
  20. ↑ 20.0 20.1 Ben Lang (2016-05-17). "NVIDIA Explains Pascal's 'Lens Matched Shading' for More Efficient VR Rendering". Road to VR. https://www.roadtovr.com/nvidia-explains-pascal-simultaneous-multi-projection-lens-matched-shading-for-vr/. Retrieved 2026-09-27.