Reference no: EM134466
Development:
1. Modeling
Your program should be able to load standard 3ds file format geometric models.
Since the sample 3ds file loader only works with a basic polygons and textures (a single object without material, light, etc) some 3ds files may not work.
Here are working 3ds files to use for this final project. I will use these files and some other compatible files for grading purposes.
2. Rendering
Basic OpenGL Fixed function lighting:
Users should be able to add up to three lights in a scene. Each light should be controlled independently. Light control parameters are RGB ambient, diffuse, and specular intensity, point/directional light, lighting direction, spotlight, and attenuation.
Create menu or appropriate GUI for material parameters. Users should be able to manipulate the parameters for material; ambient, diffuse, specular in each RGB channel and shininess.
Custom Shaders:
Your program should be able to render your custom vertex shaders and fragment shaders. Shaders can be developed just like any other code (using a text editor) but shader authoring tools you've researched would be helpful since they often provide IDE environments. Include some default shaders introduced in the following list of web tutorials: normal mapping, per-pixel lighting, phong shading. These three shaders must be included. Additionally include your own two custom shaders. The quality of shaders will be an important factor for grades.
3. User Interface and Control
Users should be able to pan, rotate (just like the trackball.h) and zoom in/out the camera.
Users should be able to translate and rotate light source in 3D space.
You need to use Qt Creator UI for menu, dialog box, radio button, slider etc.