Interior Mapping is a pixel shader technique that creates the illusion of a detailed 3D interior (rooms, furniture, lights) on a flat surface without adding actual geometry. This project addresses the problem of optimization for complex buildings, drastically reducing memory consumption (VRAM) and polygon counts while maintaining a high level of visual realism.
The implementation is inspired by the techniques used in Marvel’s Spider-Man 1 & 2.
- Engine: Unity
6000.4.1f1 - Tooling: Shader Graph, structured modularly through Subgraphs.
- Cubemap Integration: Room interiors are represented by Cubemaps - textures composed of 6 2D faces mapping the inside of a cube.
- Object Space Correction: The shader is implemented in Object Space to resolve visual distortions that occur when using tangent space.
- Procedural Variation: Uses random orientation for rooms so that identical textures appear unique across a building facade.
- Advanced Window Masking: Overlays a window texture with an alpha channel and randomized emission to simulate different lighting conditions in each room.
After hitting the Play button in the Unity Editor, you can explore the technique in action:
- The Scene: The demo environment contains two main buildings showcasing the interior mapping method.
- Camera Possession: You can "possess" the camera to move freely around the buildings.
- Observation: Move around to different angles to observe how the 3D rooms depth persists and changes perspective correctly based on your view position, despite being rendered on a completely flat surface.
This project was created by:
- Codarcea Alexandru-Christian
- Velișan George-Daniel
For more technical details, including Shader Graph screenshots and implementation results, please check the presentation folder:
- Presentation & Resources: Link
Based on the research by Joost van Dongen (2008).