Over the last half a year I've been tinkering with voxel cone tracing global illumination, and come up with a result I really like. This post functions as a discussion of the general cone tracing technique, it's strengths and weaknesses, the ideas I added to the concept, and a litmus test for the demand for this solution as either a cheap starter project or a more costly quality addition to larger games. If you haven't researched voxel cone tracing yet, give it a Google. It's interesting stuff! Current Strengths Realtime physically accurate specular and diffuse reflections on any surface Infinite diffuse light bounces (explained below) Absolutely no baking Reacts immediately to changes in level geometry, lighting conditions Any surface can emit light in realtime Framerate independent relative to number of light sources Current Drawbacks DX11 only Much slower than baked results Does not cooperate with other surface shaders Rough voxel resolution sometimes makes for some chunky artifacts Diffuse reflections barely affected by occlusion No cascading volumes, distant objects not included The solution involves rendering the nearby geometry into a 128^3 3D texture and cone tracing through the volume in a custom surface shader. As I'm already rendering into the volume to begin with, I'm also doing diffuse cone traces during the 3D rasterization process using a previously rendered volume. The result of this is that for each new volume render, light is given another diffuse bounce. Performance Tested on my GTX770 With a 128^3 resolution volume it runs 120fps at 720p, 60+fps at 1080p, or 120fps at 1080p with a reduced 64^3 volume. The following screens come from a fullscreened editor window on a 1080p monitor. Notice the degradation in reflection quality and boost in speed from the lower volume resolution. Future Work Right now, the cone tracing is done right on a surface shader, so if developers want to add this solution as an afterthought on top of other shaders of theirs, they're going to have a bad time. I'm scheming a way to do the cone tracing in a deferred screenspace pass once I have all the color, normal, depth, specular, roughness and emission data per-pixel. Once that's up, people can use whatever shaders they want to to receive light, as well as specialized shaders for emission and specular reflections. On top of that, you'll notice dark patches or crusty edges where a cone-trace collides immediately with an adjacent surface, so I'm working towards adding screenspace reflections to supersede these voxel artifacts the solution to add some detail to the edges of objects. I coded my own ambient occlusion shader as a separate pass already. The thing is, right now I see voxel cone tracing as an outlier to game development. There's a significant subset of gamers that won't be able to use this solution. Even though it runs 120fps on my rig, I'm sure a lot of people will be disappointed by their computer's performance. As such, I don't see this technology being effective for First Person Shooters or other twitch based games, and may be better suited for a niche horror, exploration or simulation title. Fortunately, Steam's statistics indicate a majority of it's users have DX11 Product With that in mind, I've been thinking of releasing a cheap ConeTracingGI Starter Project with my current tech to encourage developers to experiment with the technology and search for their own improvements. Is the asset store the place to release this, or are developers looking for refined professional solutions more akin to Chris Kahler's dynamic GI? The other option is to continue refining the solution until it's plug-and-play with any existing project - targeting developers looking for extra bells and whistles to add to their existing game. The problem in this lies that developers may assume the solution will run quickly on their games and will be suited to their gameplay, when I feel this realtime cone tracing hasn't reached that point. To summarize: Overall I'm really digging this development process, and it's a lot of fun to tweak and experiment with! There's a lot of potential here and it feels like a real step forward towards next-gen game experiences, though not there quite yet. I'd love to hear your thoughts on the subject.