This project aims at mapping various textures (bmp images) onto objects specified in the .obj format.
-
Viewing .obj files in a window, with rotate and scale enabled
-
Specular, ambient and diffused illumination implemented
-
Texture mapping has been implemented with the following parameters:
GL_REPEAT
GL_CLAMP_TO_BORDER
-
The texture coordinates have been generated using two different algorithms:
- Planar Mapping
- Spherical Mapping
Any combination of the above metrics can be used to obtained various kinds of texture mapping, some of which have been provided as examples.
-
The style of mapping can be modified by changing the third parameter of the function call
glTexParameteri
in texture.cpp to any ofGL_REPEAT
,GL_CLAMP_TO_BORDER
,GL_CLAMP_TO_EDGE
,GL_MIRRORED_REPEAT
- lGL
- glut
- GLEW
- glm
Please have a look at the Makefile too to know what all libraries are being linked
fixed_linear.sh
projective_linear.sh
reflective_sphere.sh
static_sphere.sh
Note: Remember to give the file executable permissions before executing.
The main executable is the texture-mapping
whose commandline parameters take an .obj
file, the vertex and fragment shaders and the bitmap ti be used as texture.
./texture-mapping <objfile(.obj)> <vertex shader(.v.glsl)> <fragment shader(.f.glsl)> <bitmap(.bmp)>
Rotation of the object happens as expected with the left mouse button and then dragging it. To pan press F1
and then F2
and then use the arrow keys. Use the Home
key to reset the view.