Realtime reflections?

Is realtime reflections even possible with decent performance? I’ve tried dynamic cubemaps and while it works it eats a TON of performance (from 200fps average to 30fps average). Is there a better way to do this?

I’ve been wondering about the same thing too, the only thing I’ve come up with is Camera.RenderToCubeMap and use that cubemap for the reflections, but yes, it absolutely destroys performance so it’s unusable (at least for me). I’m not sure if there’s a way with only a shader…

I’ve been trying to figure out how Marble Blast Ultra achieved this, some old xbox arcade game from a few years ago, it looked really good.

You’re talking about this right?

Yeah, I’ve been using RenderToCubeMap. I haven’t found any other way thus far. The only way I could get RenderToCubeMap to perform decent was to populate all 6 sides on the first frame then populate 1 side every 2 frames on late update. This worked to give relatively decent performance, but of course reflections won’t be super instant… but at least they’re usable.

If the surface is flat, you can have real reflection. (Ex.: A mirror in Doom 3)

A cubemap is usually used when the scene is not drastically changing, and they are pre-baked. However, if the scene was to change, you could re-baked it every nth frames. You could also use half-sphere map instead of cube maps. Two camera with a 180 degree opening instead of 6 with 90 degree could be used, but the overall quality would decrease.

An other technique is the post-process screen-space reflection, which is the use of on-screen (and in rendering buffer) information to extrapolate a reflection. The downside is, if a surface is not seen on-screen, it cannot be used in a reflection. (Ex.: seeing around a corner)

That sounds like the most interesting and ideal solution. Simply using the buffer. This would prevent double rendering and is basically using what is already there so performance hit should be non-existing. Ideally you only want reflections of what is actually seen anyway.

I’ve been watching Candela SSRR, but hasn’t released yet as it’s supposed to provide this.

You can also check http://forum.unity3d.com/threads/205549-Screen-Space-Local-Reflection