Week 1

Input File / Factory Support
Implemented input file support for the Window, Scene, Objects, and EEI (Physics HW). To appropriate have the factories working and to prepare project for further work, I remove the excessive use of static classes and functions, including Scene, Objects, and Lights. Static references are replaced with object references to allow interaction with GLUI.

Factory support has been installed for geometry to allow for dynamic creation for objects. I plan on applying factory support for materials, as well. I had problems with factory-connection until I added error-checking for the factory map. Geometry includes GLUT shapes (sphere, cone, cube, torus, and polyhedron) and Vertex-based polygons (line, triangle, and quads).

Material support has been implemented into input files. This allows easy access to create renderable objects with materials. Since materials have textures, I need to allow for texture support in input files.

Meshes can be loaded through input files. Only the geometry loads due to the primitive state of materials/textures functionality for input files.

 

Improve Camera
Although I am still having problems with the camera, I was able to find a loophole around it for now. The GLUI now supports rotate camera using the translate x, y, and z buttons. For viewing pleasure, default viewports have been installed including front, side, top, and perspective.

Improve Lights
The light listener has been repaired to support multiple “point” lights. The problem was in the defining lights. I was using GLenum as the storage input and it seems that value wasn’t passing appropriately. I used an integer value (0-8) to represent an index that will apply to GL_LIGHT0 to identify the light appropriately.

Other light features have been implemented, including direction, attenuation, and spot light attributes (exponent, direction, and cutoff). The light listener is still primitive but has most of the light rendering features. Although lights can be applied using the listener, I am pondering if I should implement lights via the input file.

Physics
Since this wrapper was previously used in my Artificial Intelligence class and now my Physics class, I decided to implement a Physics-based system to allow for animation with my wrapper. This could lead to transforming this project into a Graphics / Physics Engine. All geometry has basic physics attributes, such as velocity, acceleration, and position. The timer function traverses through the animated objects.

Weekly Notes
Project-specific sections:

> Week 1 Notes
> Week 2 Notes
> Week 3 Notes
> Week 4 Notes
> Week 5 Notes
> Week 6 Notes
> Week 7 Notes
> Week 8 Notes
> Week 9 Notes
> Week 10 Notes
> Week 11 Notes
> Week 12 Notes
> Week 13 Notes
> Week 14 Notes
> Week 15 Notes
> Week 16 Notes
> Week 17 Notes
> Week 18 Notes
> Week 19 Notes
> Week 20 Notes

Home | About Raina3D | About Us | Thanks | Contact
Copyright (c) 2005-2009 Raina3D All rights reserved.