140 likes | 147 Views
Dive into the basics of OpenGL for gaming, including 3D engine fundamentals, demo program structures, and object rendering processes explained by speaker Ted Bisson, a senior programmer at Blizzard Entertainment. This presentation covers OpenGL application, 3D hardware, DirectX comparison, and demo system setup. Enhance your understanding of viewports, matrices, vertex lists, lights, textures, and more in computer graphics and the game industry. Join us for insights on utilizing OpenGL in game development.
E N D
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
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?