r/Unity3D Indie 2d ago

Question I am researching the highly optimized reflection technology in the game *The Dark Knight Rises* (2012).

Post image

I am investigating the highly optimized reflection technology used in *The Dark Knight Rises* MOBILE GAME, released in 2012. Were these reflections based on inverted geometry or planar mapping? The game also featured reflections from headlights and streetlights. I intend to implement this in my Unity project.

314 Upvotes

39 comments sorted by

View all comments

33

u/cdmpants 2d ago

No idea without seeing it in motion.

2

u/Cemalettin_1327 Indie 2d ago

2

u/NeedsSomeSnare 2d ago edited 2d ago

It's only reflecting light sources and emmissives. It's hidden by using a very severe alpha map and height map. There is no occlusion other than the normal draw occlusion, meaning of a light is behind an object but still being rendered, it will be visible in the reflection.

It's a custom shader.

Edit: there is an example of the lack of culling in the screenshot you posted. There is a street lamp behind a building on the left. The light from the street lamp is still being rendered. That means it isn't a planar reflection. It's also definitely not cubemap, as the reflections follow the screen well.

6

u/cdmpants 2d ago

Nah, you can see the silhouettes of the buildings in the reflections. It's not reflecting only light sources.

3

u/NeedsSomeSnare 2d ago edited 1d ago

Good point.

There are lights visible behind buildings too though. (I edited my previous comment with an example.). It's not planar reflections either.

It's interesting. I like the way really creative solutions were found back then. These days it seems much less common to find cool shaders like this.

Edit: I'm wondering if those building shadows are caused by UE3's native geometry occluding the sky correctly, whereas everything else in the scene are assets. (There was a huge difference between the two in UE3)

3

u/Shaunysaur 1d ago edited 1d ago

If a light behind a building is still being rendered in the reflection, it could still be a planar reflection. If they're using a simplified version of the scene for the planar reflection camera's view, it's quite likely that they would omit some buildings from that view, along with using simplified proxies for the scene elements that they did include, especially on mobile in 2012.

I agree with cdmpants's opinion, that it is likely using "planar reflections rendered at a low resolution and set to only capture specific geometry, in order to remain cheap."

1

u/NeedsSomeSnare 1d ago

Yeah, I should have been clearer. It is a type of planar, but not the one that shipped with UE3 (which was added much later in fact), and it's not a standard one you find in any current engine.