Assignment 5: Rendering with Texture Maps

Description

This assignment will introduce you to rendering with texture maps (filtered and not) in OpenGL. You will create two meshshop plugins that cooperate to draw meshes with user controlled texture projections. A filter plugin will analyze the mesh and calculate texture coordinates for each vertex and store them in a property of the mesh called "vertex_texture_coordinates". This plugin should be able to apply some standard projections and some of your own invention. Next, a display plugin will render the meshes using the mapping stored in the mesh (if it exists). You will accomplish this by loading a user selected texture from disk and binding it to an OpenGL texture ID. You should make the appropriate calls to enable texturing with the settings the user selects. Your drawing loop should submit texture coordinates for each vertex of each triangle.

Resources

You must use the latest version of the meshshop base code in order to complete this assignment. Check it out with svn.

Recommended plugin options:

filter plugin options
	projection
		spherical
		planar
		your_projection_1
		your_projection_2
	scale
		slider for scale values

display plugin options
	texture name
		select texture filename
	texturing
		on and off
	minification filter (many texels in one pixel)
		GL_NEAREST
		GL_LINEAR
		GL_NEAREST_MIPMAP_NEAREST
		GL_NEAREST_MIPMAP_LINEAR
		GL_LINEAR_MIPMAP_NEAREST
		GL_LINEAR_MIPMAP_LINEAR
	magnification filter (one texel over many pixels)
		GL_NEAREST
		GL_LINEAR