A new technique for rendering realistic buildings
Interior Mapping is a new technique that I have come up with.
It is a real-time pixel shader technique that renders the interior of a building when looking at it from the outside,
without the need to actually model or store this interior. Here is an example:
Interior Mapping is very useful for games in cities, like Grand Theft Auto, Saint's Row or Superman Returns.
As can be in this screenshot, games like these usually do not feature interiors:
With Interior Mapping, games like these could add interiors to the entire city with only a very small extra rendering and storage cost.
With Interior Mapping, raycasting in the pixel shader is used to calculate the positions of floors and walls behind the windows.
Buildings are modelled in the same way as without Interior Mapping and are rendered on the GPU.
The number of rooms rendered does not influence the framerate or memory usage.
The rooms are lit and textured and can have furniture and animated characters.
The interiors require very little additional asset creation and no extra memory.
Interior Mapping can be implemented in shader model 2.0 and above.
Interior Mapping is especially useful for adding more depth and detail to buildings in games and other applications that are situated in large virtual cities.
The paper that I wrote on Interior Mapping was selected for the CGI 2008 conference in Istanbul and presented there. It has been published in the conference proceedings. The full paper can be downloaded here:
Click here to view the test results
that are mentioned in the paper.
A real-time demo of Interior Mapping, including source code, can be downloaded here:
To run, this demo requires a Windows computer with a video card that supports shader model 2.0. For example an Nvidia 5200 or anything newer.
Go ahead and use it!
I would love to see Interior Mapping used in games, virtual worlds or anything else!
I do not charge any fee for usage or something like that,
I simply ask to be mentioned in the credits of the product somehow
and to receive an e-mail if you use it, because I would love to see
the results! I can be contacted here:
An explanation of how Interior Mapping works technically can be found in the paper.
Source code of all the sample implementations in Cg and Ogre is included in the
demo application. The file InteriorMapping.cg contains the actual shader implementations.