Using Python and OpenGL each student will independently design, develop, test and submit an interactive computer graphics program
Using Python and OpenGL each student will independently design, develop, test and submit an interactive computer graphics program with the following characteristics:
- A scene containing-
- A background containing an appropriate texture map ( you must demonstrate knowledge and skill in application of 2D images to 3D objects to form surfaces and coverings in complex 3D scenes)
- A surface (floor, ground, etc.) appropriately colored or texture mapped. ( you must demonstrate knowledge and skill in the application of materials and textures to create “realism” in complex scenes)
- At least five independent, non-primitive stationary objects (i.e. house, trees, fences, etc.). (you must demonstrate knowledge and skill in the creation of complex (non-primitive) multi-part objects within a complex scene).
- Must include lighting and the use of materials as appropriate for the model. (you must demonstrate knowledge and skill in the use of lighting and material properties to render objects in a complex scene in an appropriately realistic manner)
- Must have at least two omni-directional lights (of different colors) and one spotlight. (you must demonstrate knowledge and skill in the application and control of lighting in a complex 3D scene)
- At least one of the stationary objects must have two or more manipulable (under user control) component objects. (you must demonstrate knowledge and skill in the ability to animate scenes by being able to transform objects or components of objects relative to other objects or components of objects in a complex 3D scene. You must also demonstrate knowledge and skill in the ability for create an effective user interface that will enable a user (other than the creator) to interact with and manipulate objects or components of objects in the 3D scene)
- At least one movable object (for example, car airplane, train, dog,…) that must be capable of moving on a non-linear path under user control. (you must demonstrate knowledge and skill in the ability to animate objects to carry out planned behaviors with or without user control)
- At least one animated character that must be able to move with at least somewhat realistic joint/limb movements. ( you must demonstrate knowledge and skill in the ability to move or otherwise transform objects or components of objects in coordination with other objects or components of objects)
- A pop-up window (under user control) to display “important textual information (i.e. status of an event, position of an object). An alternative would be a static side panel but the contents would have to be changeable depending on the user selected context. Another alternative would be to display status information continuously on the webpage where the canvas is located. (you must demonstrate knowledge and skill in the ability to create a 3D graphics application in the context of a broader application. In other words, in addition to a computer graphics display, it must be a reasonably full featured application. It must, for example, include a user interface and the usually interface controls that you would expect.)
- The user must able to change viewpoints (eye position) to at least five fixed positions (front, left, right, back and top (view from above)). The user must also be able to pan, zoom (in and out) and orbit the scene (this can be constrained appropriate to the model. i.e. can’t go behind the background). (you must demonstrate knowledge and skill in the ability to flexibly change camera positions or points of view within a complex 3D scene)
- The project must be submitted to the instructor with appropriate user documentation and a brief description of what the project is and what it is supposed to do.
- The project will be demonstrated to the class at the end of the semester.
The project must be developed in original source code (Python and OpenGL) and may not be built in a game engine or similar applications. The application must be executable in a standard Python 3.x environment.
The instructor or other qualified person must be able to run the program on multiple platforms. This, in part, means that any tools or libraries required to build and run the program must be documented and submitted to the instructor and must be defined in installation instructions.
This should be considered an opportunity to be creative. However the results will need to satisfy the requirements described in this document. Alternative proposals for a final project may be considered, but they must be comparable in scope and complexity and must be approved by the instructor.
The project will have four components –
- A set of specifications defining what the project will do and how it will work.
- The completed program (including all required supporting files).
- A user/instruction manual. The user manual must describe the functionality of the model and how to use it. The technical part of the manual must describe the software architecture of the program.
- A demonstration of the program to the class.