CS 465 Fall 2013
Computer Graphics Systems and Design
CS 465 Links:
will be used in this class for announcements, and discussions.
You can also view your grades in the class.
- F. Durand,
A Short Introduction to Computer Graphics, last viewed 8/18/2013.
- E. Angel and D. Shreiner,
An Introduction to OpenGL Programming, last viewed 8/18/2013
- D. Shreiner, et.al., OpenGL Programming Guide, 8th edition, 2013.
Chapter 1 - 3, 5 - 7 Appendices A, C, D, and E as needed
Lecture Resources and Notes
Notes are usually Adobe Acrobat PDF files landscape 1 slide per page
format. If you print the notes, I strongly recommend you set your
printer to print in a 2 page or 4 page up mode.. This way you will get
readable notes with half the printed pages.
|| Due Date
| Project first review
|| 10 / 8 - 15 / 2013
|| Model your warbird and Ruber system. Animate the Ruber system.
Use simple shaders.
Warbird Simulation directory .
updated 10/6/13 Use TriModelViewer, spreadsheet errors fixed.
| Midterm (30% lec)
|| 10 / 24 / 2013
|| Midterm study guide
Practice quiz one
| Project second review
|| 11 / 12 - 19 / 2013
|| Fly your warBird.
Download new version of fragmentReview1.glsl shader
or update to correspond with version in Shader notes (update 10/9/2013).
updated 10/24/13 spreadsheet has better values for Duo and its moons.
| Project third phase
|| 12 / 10 / 2013
| submission specification.
| Final (40% lec)
|| 12 / 17 / 2013
5:30 to 7:30 pm
| final study guide
To avoid any misunderstanding by anyone (aka a student in one of my
classes), the following disclaimer has been patterned from a Microsoft
web page and is applied to code found herein or on any of Professor
Barnes' web pages.
WARNING: ANY USE BY YOU OF THE CODE PROVIDED IN THESE WEB PAGES IS AT
YOUR OWN RISK.
Professor Barnes provides this code "as is" without
warranty of any kind, either express or implied, including but not
limited to the implied warranties of merchantability and/or fitness
for a particular purpose.
Professor Barnes will not be held responsible for any inaccuracies,
bugs, documented or undocumented, in the sample code below.
SHOULD YOU WISH TO USE THESE EXAMPLES FOR COURSEWORK, YOU ARE DOING SO
AT YOUR OWN RISK.
Professor Barnes will not grant extra credit, time, debugging time, or
anything else should you find a bug in the code. I will say,
"Thanks for pointing that out!". Any I will try to correct it.
When getting the example source code files (*.cpp and *.glsl) it is
better to download than to copy and paste. Copy and paste can miss
parts. To download right click the file in your browser and either
"save target" or "save link as" (depends on your browser). Don't
click "OK" immediately. First make sure "*.*" or "all files" is
selected in the type field below the name field. Then click "OK".
- Installing and Building core OpenGL programs
- Directory of includes for use with Comp 465 assignments:
updated 9/2/2013: include465.h better include for __Xcode__ option,
updated 9/17/2013: triModel465.h corrected boundingRadius error,
added loadModelBuffer(...) function, with free() memory reclaimation
updated 10/11/2013: triModel465.h corrected for use with gnu's g++
now using std::abs(...) instead of abs(...)
updated 10/22/2013: include465.h to have a
updated 11/5/2013 to add texture.hpp support file
with functions to freeTexture() and loadRawTexture().
updated 11/14/2013 to add glmUtils.hpp support file
with functions to display glm vec3, vec4, mat4, and to get
reference vectors of a Transformation matrix.
updated 11/21/2013 glmUtils.hpp support file added functions:
float distance(v1, v2), and
bool colinear(v1, v2, epislon)
- Test FreeGlut and Glew installation with
- Directory for first example on how to create vertices, color, and
normals for a pyramid, have different viewpoints, different perspective,
and glut keyboard events.
Pyramid . updated 8/30/2013
- Directory for example on how to load and display an AC3D *.tri
model file in OpenGL core 3.3 :
TriModelViewer . updated 10/10/2013
The new 'w' option switches between wireframe and surface rendering.
- Console (no OpenGL graphics) examples glm functions for transformations
If using VS2012, create a Win32 console application. Please look at
project selection notes in the initial comments of the
modelViewProject.cpp file before building your VS 2012 project.
- Example of a single *.tri model used to draw 1,000 Shape3D objects.
ManyCubes directory .
File Shape3D.hpp is a C++ class that represents each instance of the
*.tri model. Example illustrates C for OpenGL application file and
C++ class for "scene graph".
- Example of loading in 3 *.tri model files and displaying them.
ManyModelsStatic directory .
Demonstrate 2 utility functions in loadTriModel(...) and
loadModelBuffer(...) in include file triModel465.h for loading in
models and setting buffers.
- Example of
IndexedPyramid directory .
Example of glDrawElements(...) vertices, indicies, colors, normals
that represent the vertex's shared surface normals.
- Example of
LightShader directory .
Ambient, Diffuse, and Specular shader calculations with
3 different views and 3 different light positions. Also shows using
"false colors" in shaders for debugging.
- Example of
TextureModel directory .
how to render an indexed buffer with DrawElements(...) and
a vertex buffer with DrawArrays(...) in the same frame.
Many on-line tutorials and references for OpenGL may
be for earlier releases that used the fixed functional pipeline. We
are using a shader-only approach with the SuperBible textbook. In
additon, several of these links are old -- from several semesters ago
(I haven't checked them recently).
- CSUN Computer Science student's
Dreamspark account . You can download professional development tools for this class: Windows 7 or 8, Visual Studio 2012, 2010, ...
Getting started with OpenGL
- C++ for Java programmers
- Etay Meiri's
OglDev Modern OpenGL Tutorials.
- M. Kilgard's GLUT on-line documenation .
- Interactive Computer Graphics: A Top Down Approach with Shader-Based OpenGL 6th ed.,
E. Angel asnd D. Shreiner, 2012,
example programs from 6th edition.
- OpenGL: SuperBible 5th edition, R. S. Wright, B. Lipchak,
N. Haemel, Addison-Wesley, 2011,
- Nate Robin's
OpenGL tutors a zipped file. These are the demos I've been
using in class.
- An OpenGL
light / material
tutorial (a windows exe file).
- Xiang, Z., Plastock, R., Schaum's Outline of Theory and Problems
of Computer Graphics , McGraw Hill, 2000.
- Game Developer Associations
- Kinetics, Simulation
- D.M. Bourg, Physics for Game Programmers, O'Reilly, 2002.
- E. Lengyel, Mathematics for 3D Game Programming and Computer Graphics,
Charles River, 2002.
- P. J. Schneider, D.H. Eberly, Geometric Tools for Computer Graphics,
Morgan Kaufmann, 2003.
- Algorithmic Modeling of objects and behavior
- Laurens Lapre's L system parser
Lparser and links to other L Systems
- Craig Reynold's
algorithms for flocking behavior and links to related work.
- G. W. Flake, Computer Explorations of Fractals, Chaos,
Complex Systems, and Adaptation, MIT, 2000.
- P. Martz,
Generating Random Fractal Terrain
- H.C. Sun, D.N. Metaxas,
Automating Gait Animation
Procedural Tree demo -- zipped file.
- P Prusinkiewicz,
Algorithmic Botany .
- M. Walter, et.al,
Integrating Shape and Pattern in Mammalian Models
- Y. Parish, et.al,
Procedural Modeling of Cities
- SDKs, Related sites, books, miscellaneous
- SDL -- game engine
Sound library works well w/ OpenGL.
VTK -- Visualization ToolKit
- D. Bourg, AI for Game Developers, O'Reilly, 2004.
- M. Buckland, Programming Game AI by Example, Wordware, 2005.
Game AI tutorials
Digital Game Developer discussion, resources.
- D. Luebke, M. Reddy, J.D. Cohen, A. Varshney, B. Watson, R. Huebner,
Level of Detail for 3D Graphics, Morgan Kaufmann, 2003.
- K. Brilliant, Building a digital human,
Charles River Media, 2003.