Graphics Reference
In-Depth Information
blur, the results can be excellent for still images. However moving images can still suffer
from temporal artifacts (due to the fundamental limitation of working in screen space with
no subpixel information), although those are generally reduced compared to not having
any anti-aliasing at all. The algorithm will also fail frequently on thin, wire-like geometry,
where the resulting aliasing patterns are very low frequency.
The original reference implementation provided by Intel runs entirely on the CPU,
using streaming SIMD instructions. Using the CPU can reduce the GPU load and can be an
effective use of otherwise idle CPU cores; however, the cost of transferring render target
data to and from the GPU can significantly reduce overall performance. Instead, it is likely
to be more desirable to keep the implementation entirely on the GPU, which can be done
using only pixel shaders (Biri, Herubel, & Deverly, 2010). A compute shader implemen-
tation is also possible and could potentially benefit from the added flexibility and shared
memory resources.
11.6 Transparency
The concept of deferred rendering works extremely well for opaque geometry, since we
can make the assumption that for each pixel (or subsample, in the case of MSAA), only one
surface is visible. This allows us to use a g-buffer to store the surface information, since we
have one g-buffer texel available for each shaded pixel. But transparent geometry causes a
problem with this approach, since it breaks our assumption of 1 surface per pixel. Instead
we have 0 or 1 opaque surfaces visible, with an unbounded number of transparent surfaces
layered on top of it. Because of this, we have to deal with transparency as a special case
when using deferred rendering.
11.6.1 Forward Rendering
The simplest way to handle transparent geometry is to fall back to forward rendering. The
opaque geometry can be rendered and fully shaded using deferred techniques, and after-
wards, the transparent geometry can be forward rendered and blended right on top of it.
For simple transparent materials that don't require dynamic lighting or shadowing, this ap-
proach works well, without any major problems. However, if dynamic lighting is required,
it essentially means that a full forward rendering pipeline has to be implemented side by
side with the deferred pipeline. This negates one of the biggest advantages of deferred
rendering, which is simplifying the rendering implementation. In fact, with this case, we
end up with a Tenderer that is more complex than a traditional forward Tenderer, since two
separate pipelines are needed. The transparent geometry will also suffer from all of the
Search WWH ::




Custom Search