



Complex shaders might not run optimally Pesce14 Olsson15.or for dynamic decals color can be splatted before main pass (but that costs an access to the offscreen buffer regardless or not a decal is there) Pesce14.Alternatively, for static decals mesh can be cut and texture layering used (more shader variations) Pesce14.Expensive & more difficult decaling / destruction masking Andersson11, Decals needs to be multiplass, lit twice.Shader permutations not efficient Andersson11 Pesce14 Olsson15.Shading small triangles is inefficient Lauritzen10.Everything must be resident at the same time.Memory footprint of all inputs Lauritzen10.Shaders quickly encounter the instruction count limit of Shader Model 2.0 Koonce07.Lighting / texturing variations have to be dealt with dynamic branches which are often problematic for the shader compiler (must allocate registers for the worst case …), conditional moves(wasted work and registers) or shader permutations(combinatorial explosion) Pesce14.Adding new lighting models or light types requires changing all effect source files Koonce07.Shaders often require more than one render pass to perform lighting, with complicated shaders requiring worst-case O(n) render passes for n lights Koonce07 Lauritzen10.Computing which lights affect each body consumes CPU time, and in the worst cast, it becomes an O(n × m) operation Koonce07, Ineffective light culling Lauritzen10, Light culling not efficient Andersson11 Pesce14.

Any material, except ones that require screen-space passes like Jimenez’s SS-SSS Pesce14.Easy to integrate with shadowmaps (can render them one-at-atime, or almost) Pesce14.Least memory necessary (least bandwidth, at least in theory).Doesn’t have a “constant” up-front investment, you pay as you go (more lights, more textures…).Fastest in its baseline case (single light per pixel, “simple” shaders or even baked lighting) Pesce14.MSAA and related techniques through hardware features (much less memory storage is required) OlssonBilleterAssarsson13 Olsson15.Transparency via alpha blending OlssonBilleterAssarsson13 Olsson15.Multiple lights require either loops / branches in the shaders or shader permutations Pesce14.Accurate culling of light influence on geometry requires CSG splits Pesce14.Lights are bound to draw calls (via uniforms) Pesce14.Single pass over geometry generates “final” image Pesce14.Object rendering pass does everything KimBarrero11.Shadow attenuation (sampling shadow maps).Do everything we need to shade a pixel Lauritzen10.Efficient Rendering Study Notes (2022.07.19) Game Development Studies Efficient Rendering Study Notes (2022.07.19) Efficient Rendering Study Notes (2022.07.19) | Alegruz’s Homepage Skip to the content.
