I posted the following on the Card Kingdom development blog.
The research topic I am working on as part of the graduate program is adding transparency into a deferred rendering pipeline. If you haven’t noticed, I’ve been posting a lot about deferred rendering. The main reason I wanted to redo our old forward rendering pipeline as a deferred one is because it’s a new and interesting rendering technique. Learning and experiencing new techniques to keep up to date with the latest technology and practices is essential in the software field, let alone the highly volatile games industry.
While implementing and researching the deferred rendering technique, one thing that stands out as a drawback to the process is that there is no support for transparent objects. Forward rendering has this advantage built in because all lighting is calculated per light when the geometry is rendered. Transparent objects can have proper lighting information and blend correctly with objects behind them. In deferred rendering, the lighting calculations are done after all the geometry is rendered. All surfaces that are occluded lose that information for the lighting phase and transparency cannot be rendered properly or at all.
The main questions I will be looking at are “what are some of the methods that can be used to render transparency?”, “what are the best solutions?”, and “is there anyway to make the best solution better?” I will be working and researching this topic, implementing some solutions, and finally documenting my results and processes. This is an interesting problem and, if mitigated properly, could make deferred rendering a viable solution for all applications.