Direction
Having now done some research about OpenGL 2.0 and some of its features, the content of this course will most likely focus on techniques that are not required of the new OpenGL versions. The areas I most want to focus on are:
Lighting
- Materials
- Light characteristics(ambient, diffuse, specular, point, etc)
- Shadows
- Fog
Textures
- Standard texture mapping
- Environment Mapping
- Multitexturing
Basic NURBS
Collision Detection/Reaction
I am mostly interested in the applications of lighting and texture-mapping. So far it has been a bit difficult finding proper examples in JOGL of some of the topics above. Many examples use C++ or other OpenGL Java bindings, such as GL4java. Nehe Productions ( ), which was a great reference and tutorial site during CMSI 371, actually has a fair amount of JOGL basic/intermediate/advanced tutorials, some of which I've already checked out. I'll continue doing this in the upcoming days in addition to reading the OpenGL textbooks I own.


2 Comments:
The list looks good --- gives us something concrete on which to proceed. Given this list, I think the best approach now is to structure your work as a series of mini-programs, each of which demonstrate or exercise individual items in this list. Then, with the knowledge you gain from writing these programs, you can synthesize these elements overall in your senior project.
Let's now enter a discussion of defining the list of programs to write, with the intention that those programs will cover these areas thoroughly. I'll post an initial list of my own, and feel free to post your own ideas. Let's give ourselves until early next week to build and finalize that list.
Here's my proposed list of tasks based on the techniques that you have proposed to learn:
- Through all of this, I think we shouldn't forget about OpenGL's (and now JOGL's) portability. So, as part of your work, you should be able to build and run your code on the four platforms that we have in Keck: Windows XP (which you already do), Linux, Solaris, and Mac OS X. If you need closer guidance on any of these, let me know and I can spend some time getting you over platform/environment hurdles, so you can focus on just the build/run part.
- Again to maintain your flexibility, write at least one of these programs in C/C++ instead of Java/JOGL. You can choose the one that uses C/C++.
OK, now to the actual programs to write as part of your 499 coursework. Try to read up and take a stab at things yourself at first, then of course let's talk if you find yourself stuck at any point:
- Write a light and materials demo that demonstrates how different light and material settings affect an object's appearance. Display a specific object, then provide a rudimentary user interface (keyboard, mouse, your choice) that allows the user to change material settings for that object.
- Write a shadows demo that displays an object and projects that object's shadow on a surface. Allow the user to modify the location/direction of the light source projecting the shadow, to show how the shadow changes according to that light source.
- Because Nate Robins has pretty much taken care of putting together a decent fog demo, let's integrate your fog work in a broader curves demo. In this demo, define a model that represents a 3D object using mathematical curves (splines, NURBS). Display and render that model, and in the render, include the ability to place that object in fog; also, the program should demonstrate the resolution independence of curve-based modeling techniues.
- Finally, put together a textures demo that shows assorted texture mapping techniques. Make sure to expand this demo clearly beyond the functions already delivered by Nate Robins's textures tutorial.
Alright, that should be it; let's talk if you need any clarification or further instructions. These four programs combined will represent the "project" component of your 499.
Post a Comment
<< Home