4K Ultra High Resolution Development
What is 4K?
4K refers to ultra-high resolution (UHD) displays on the order of 4,000 horizontal pixels. A 4K panel is around 4 times the resolution of 1080p Blu-ray content. Especially for games 4K results in sharper crisper images with more detail. According to industry analyst IHS, 4K display prices are expected to come down dramatically in 2013 and most major panel vendors will begin producing 4K displays within the next year.
The 4K display standard contains two resolutions:
- 3840*2160: This is the standard resolution supported by TVs and monitors
- 4096*2160: Projectors will support this slightly wider aspect ratio format
Industry Support for 4K
There are 2 ways of delivering 4K content, HDMI and DisplayPort.
The current HDMI 1.4 standard only has bandwidth for 4K at 30hz. HDMI 2.0 will add support for 4K at 60Hz. Details should become clearer in late 2013. There are a few TVs on sale today that support 4K @ 30Hz through HDMI.
B) DisplayPort 1.2
DisplayPort can support 4K @ 60Hz using Multi-Stream Transport(MST). The graphics card provides signals for multiple displays but these are multiplexed on a single cable. Computer monitors such as the ASUS PQ321Q 31.5-in 4K 60 Hz Tiled Monitor take input using this format.
NVIDIA GPU support for 4K Resolutions
All GeForce GTX 600 and 700 series GPUs can support 4K resolutions through DisplayPort. The NVIDIA driver automatically detects 4K 60Hz tiled format, so no special user set up is required. In order to power games at this resolution with settings turned up NVIDIA recommends GTX 780 SLI or better.
What consumer 4K displays available today?
A variety of solutions are available today from manufactures like Asus and Sharp. Dell has also recently announced their 4K UltraSharp 32 display with availability in Q4 2013.
4K Development Tips and Tricks
1) Support 4K resolutions natively
The standard 4K UHD display resolution for monitors and televisions is 3840 x 2160 pixels. Projectors supporting the wider 4096 x 2160 pixels will also be available. Your game title should enumerate the available modes (using functions such as EnumDisplaySettings or GetDisplayModeList) and support native rendering to those resolutions.
2) Provide the Highest Resolution Textures
Texture content that is optimized to avoid magnification at 1080p resolution will magnify at 4K, leading to blurry textures when you get up close to surfaces. To maximize the quality at 4K screen resolution, provide the highest texel density you possibly can in your game by using the largest possible texture sizes. For example, for textures where the player can get close enough for 1:1 texel to pixel ratio, 4096 x 4096 textures will provide the highest quality. This is especially important for textures which provide detail, such as albedo textures, normal maps, and displacement maps, but can also be important for procedurally generated textures, such as light maps, which can be generated at higher resolution for display on 4K screens.
3) Enable Anisotropic Filtering
4K screens will resolve additional underlying detail, so maximizing texture detail is key. Using anisotropic filtering will add detail to the image, and be even more noticeable at 4K resolutions.
4) Optimize for SLI
4K UHD has four times the pixels of 1080p – which means four times the pixel workload. Scaling with SLI multi-GPU setups will be even more important to ensure the smoothest experience at 4K resolutions. Be careful to avoid the usual SLI pitfalls, such as interframe dependencies, CPU-GPU sync points, and improper use of queries.
You can find the SLI developer documentation here.
5) Provide Scaling for UI Elements
Resolution-dependent UI elements (bitmaps) will look smaller at 4K – which may be preferred by some game players, while others will find them too small. Providing scaling support or favoring resolution-independent UI techniques will guarantee the best experience for every gamer.
6) Perform Adaptive Tessellation Based on Screen Space Metrics
Tessellation is a great fit for 4K displays, as the additional detail will be even more impressive at high resolutions. To get the most of adaptive tessellation on 4K, make sure you're using adaptive techniques which take into account screen resolution when determining tessellation factor. You'll want to be using more triangles at 4K, and screen-space tessellation metrics will naturally provide this.
7) Beware of Magnification Artifacts
In addition to magnification of source textures (see “Provide the Highest Resolution Textures” above), you will get additional magnification at 4K of fetches from other offscreen render targets, such as shadow maps. This can result in unpleasant and unexpected artifacts. It's best to test these algorithms at 4K resolution and work around these issues, such as by increasing your shadow map resolution or filter quality.
8) Optimize Video Memory Consumption
4K resolution is obviously heavier on video memory consumption than lower resolutions. Four times the pixels will mean four times the memory used for screen sized buffers, in addition to any additional memory consumed by higher resolution source art (“Maximize Texture Resolution” above) or higher resolution intermediate surfaces such as shadow maps (“Beware of Magnification Artifacts” above).