Efficient Ordered Transparency Rendering for Static 3D Meshes

Conor Mcsweeney


Supervised by Xianfang Sun; Moderated by Paul L Rosin

In traditional rasterized 3D graphics, correct rendering of transparency in a scene is a difficult problem. Transparent pixels/triangles must be rendered from furthest to nearest in the scene to appear correct, as the result of alpha-blended transparency is order dependent.

A complete general solution requires significant real-time computation that has only become possible on consumer-grade GPUs in the last few years (per-pixel linked lists). Approximate general solutions can be obtained with less computation (per-object sorting, order-independent transparency techniques), though these usually produce non-ideal results and require a compromise between performance and visual quality.

In many real-time applications such as games, the issue is typically worked around via careful design of scenes, different blending types, sparing use of transparency or simply accepting the poor visual quality.

In some cases, scenes or large parts of scenes may be rendered as a single object with a static mesh, where only the position and orientation of the object or viewpoint is changing. This occurs often in games, scientific visualizations, etc. Dynamic scene elements such as character models are more often restricted to fully opaque geometry, which is trivial to render correctly prior to the transparency pass.

With this in mind, I would like to look at the possibility of taking advantage of the static nature of these meshes by pre-processing them such a way that, with minor pipeline adjustments, they can be rendered with correct ordering from all possible viewpoints. For meshes with simple shapes this may seem quite simple, but I intend to look at the general case and handle more complex meshes.

The goal of this project would be to produce an interactive OpenGL/WebGL application that demonstrates effective use of the developed solution.

Initial Plan (08/02/2021) [Zip Archive]

Final Report (13/05/2021) [Zip Archive]

Publication Form