ABSTRACT

This chapter presents an Order-independent transparency (OIT) implementation relying on the new features of the DirectX 11 API from Microsoft. It explores some similarities with the A-buffer algorithm, whereby translucent fragments are stored in buffers for later rendering. The creation of per-pixel linked lists also requires a way to avoid any contention when multiple pixel shader invocations perform memory operations into a buffer. When the per-pixel linked lists are parsed for rendering, the blending part of the algorithm is modified so that a different code path is executed based on the fragment’s blend mode id. Certainly the size of the nodes buffer is likely to be very large, and may place an unreasonable burden on the video memory requirements of the OIT technique. OIT has been an active area of research in real-time computer graphics for a number of years. The OIT algorithm allows significant performance savings compared to other existing techniques.