Bumps in NTU: Can you feel it ?

Introduction
A texture mapped surface usually lacks of realism. For a given wall, we can see that it is not prefectly smooth. There are some 'roughness' or simply put 'bumps' on the surface itself. In order to achieve such surface with realism, bump mapping (a term) is used. What it does is to use a bump (normal) maps with lights in the scene to create 'depths' in the surface.

There are many ways to do this, one simple method is to use any picture/photo editor and apply some filters such as noise, embross, bumps, etc onto the texture. Using the 'new' texture, we can just simply map it back to the surface. Another method, as mentioned eariler, is to use bump (normal) maps. Together with the original texture and bump map, we can create the 'roughness' feel on our surface.


Approach
I choose the latter method which is to make use bump (normal) maps, ie texture + bump maps = bump mapped surface.

However, it is not as simple as it seems, in the programming stage addition knowlegde is required. A normalised cube map is created and used to store the light vectors. After which, together with the normalised cube map + bump (normal) maps + texture will be mapped on the surface to create the 'bumpy-effect'. More details explanations for the cube map can be found here.


Implementation
I had used the normal map generator by ATI Technologies Inc. to generate my bump (normal) maps. I had chose 2 surfaces on bump mapping. (Though the requirement is one surface, I enjoyed doing it so much that I just had to do another surface.)


Roof Texture Map
Roof Bump (Normal) Map


Pillar Texture Map


Pillar Bump (Normal) Map

In this assignment, I was required to reuse the previous assignment scene. However, I had decided to revamp my program by hardcoding the model instead of reading the OBJ file generated by Maya. In addition, real textures (taken from the scene itself) were used on some part of the surfaces to create realistic scene.

Final Product
Finally, the whole scene is complete!


Day Scene

Day Scene with Bump maps


Night Scene


Night Scene with Bump maps


Close-Up Day Scene


Close-Up Day Scene with Bump maps

Notice the bumps between the scenes!

Conclusion
With the implementation of Bump mapping, scenes could be rendered with more realism without much processing power from the CPU. Bump mapping is a 'hack' to create uneven surfaces using bump (normal) maps, resulting in fewer polygon counts. From assignment 2 to this assignment, using limited polygon counts, complex scenes can be rendered more efficient and faster.

Download Code and Executable

Acknowledgments
1. I wish to thank Dr Edmond C. Prakash for this opportunity to do some hands-on on the concepts learned in lecture.

2. Paul for his tutorial and code on bump mapping.


-Home-