Skip to content

help.RealtimeRendering

Thomas Mann edited this page Jan 19, 2024 · 5 revisions

Real-time Rendering for Artists

This page collects technical concepts and terminology that might sound intimidating. To be clear, you will not need to know or even understand any of the things mentioned here. But as you become more and more experienced, your ambitions will increase, and then knowing these concepts will help you get the most out of your project.

Mip-maps

You will notice that many operators provide a setting to Generate Mipmaps. The idea behind this is that, with generated and stored smaller and smaller copies of our image, each one has half the resolution. For a 1024px image, this results in 10 levels (512, 256, 128, 64, 32, 16, 8, 4, 2, 1).

Scaling down is normally done with a very good filter. This means when looking at an object from a large distance, the GPU can show this scaled-down version to avoid flickering.

Adding mip-maps will increase the memory impact of your texture by roughly 30%. It will also take considerable time to generate these images. They are automatically generated for all images loaded from files.

In most situations, you can ignore this overhead, but if you want (or need) to optimize performance, this change can be significant.

Here are some rules of thumb for when to use mip-maps:

  • For textures used by billboards or sprites
  • For textures (especially normal maps) used for PBR-rendering
  • For textures that can be cached (e.g., with [Once]+[RenderTarget])

Avoid when:

  • Texture is animated
  • For chained image effects
  • For post-render effects

Multi-Sampling Anti-Aliasing (MSAA)

Z-Buffer

Texture Formats

Cube Maps

The Render Pipeline

Shaders

HLSL (DirectX's Shader Language)

Compute Shaders

Pixel (or Fragment) Shaders

Vertex Shaders

Physically Based Rendering (PBR)

Ray Marching

Mesh Rendering


DirectX Specific

The following are advanced DirectX specific concepts, that are called different on other APIs like Vulkan.

Shader Resource Views (SRV)

Unordered Access Views (UAV)


Tooll3 Specific Concepts

Graph Rendering (Directed Acyclic Graphs)

Evaluation Context

Caching

Clone this wiki locally