Computer Graphics and the Game Industry Speaker: Ted Bisson

advertisement
Computer Graphics
and the Game Industry
Speaker: Ted Bisson
Computer Graphics and Games
For today:
• Who am I?
• A brief introduction to OpenGL
• The Game Industry
Who am I?
Ted Bisson
• USF class of 1998,
Mathematics and Computer Science
• Senior Programmer, Blizzard Entertainment
Diablo II, Diablo II: Lord of Destruction
OpenGL
What is OpenGL?
OpenGL
Application
OpenGL
3D Hardware
OpenGL
OpenGL vs. DirectX
• DirectX runs on Windows platforms
• OpenGL is relatively universal
• DirectX is better optimized for Windows platforms
But it’s ok, they are more the same than different!
OpenGL: 3D Engine Basics
• Viewports
• Matrices
• Vertex Lists
• Triangle Lists
• Lights
• Textures
The Demo Program
Structure of the Demo
System
WinMain, Draw, Utility, COpenGL
Primitives
CVector, CMatrix, CColor, CFile, CLine, CPath
Containers
CLineList, CVertexList, CTriangleList
Draw Objects
CDisc, CModel
Structure of the Demo
WinMain
// Initialization
Create a window ();
Initialize OpenGL ();
// Message loop
while (not done)
{
if (there is a message)
{
Pass to appropriate message handler.
} else {
DrawProcess ();
}
}
Structure of the Demo
DrawProcess
// Render the current scene.
sRenderScene ();
// Synchronize to constant frame rate.
if (time to update scene)
sUpdateScene ();
Structure of the Demo
sRenderScene
// Begin processing the scene, this includes
// clearing the memory buffer.
// Submit objects to be rendered.
// End scene processing.
// Present the rendered scene.
Structure of the Demo
Submitting objects to the API
// Specify modes, and begin submitting data.
glPolygonMode (GL_FRONT, GL_FILL);
glBegin (GL_TRIANGLES);
// For each object, submit vertex data.
glColor3f (red, green, blue)
glNormal3f (normal_x, normal_y, normal_z);
glVertex3f (position_x, position_y, position_z);
// Indicate the end of this object.
glEnd ();
OpenGL
Questions about OpenGL?
Download