CS 575 - Computer Graphics: OpenGL GLUT Programming

Credit Hours: 3 + 0 | Course Level: Undergrad
Course Synopsis

In this course, student will learn one of the standard APIs for computer graphics, OpenGL. We will also cover some techniques that are useful for writing computer games (hierarchical modeling, first person viewing, texture mapping), although that is not the emphasis of the course.

Course Learning Outcomes

  • OpenGL API - Architecture, GLUT, FreeGLUT, GLEW and Its Installation
  • Code::Blocks - Create, Compile and Build GLUT Program
  • 2D Graphics - GL_POINTS, GL_LINES, GL_RECTF, GL_POLYGON, GL_QUADS
  • Rotation - glTranslatef and Scaling - glScalef, Circle in GL
  • A Sample Project - Bouncing Ball Implementation
  • Handling Keyboard - glutKeyboardFunc and Mouse Inputs - glutMouseFunc
  • 3D Shapes using GLUT

Course Aims

  • Learn about OpenGL/GLUT Library
  • Understand 2D Graphic Systems
  • Building 3D Models and Transformations
  • Understand Camera, Lighting, Shading and Materials
  • Handling Keyboard and Mouse Inputs

Reference

Interactive Computer Graphics: A Top-Down Approach with OpenGL
By: Edward Angel – 5th Edition

Marks Distribution
Lectures
Lecture ID Topic Description Notes
# CGS1601 Introduction to Computer Graphics Interactive Computer Graphics and Its Applications CGS1601.pdf
# CGS1602 OpenGL API History of OpenGL APIs CGS1602.pdf
# CGS1603 GLUT in CODE::BLOCKS Using OpenGL and GLUT in Code::Blocks CGS1603.pdf
# CGS1604 2D Viewing - Drawing GL_POINTS, GL_LINES, GL_LINE_LOOP, GL_POLYGON, GL_QUADS CGS1604.pdf
# CGS1605 Rotation & Scaling glRotatef, glScalef CGS1605.pdf
# CGS1606 2D Circles GL_TRIANGLE_FAN CGS1606.pdf
# CGS1607 Bouncing Ball Animating a Circle as a ball CGS1607.pdf
# CGS1608 Handling Keyboard Inputs with GLUT glutKeyboardFunc, glutSpecialFunc CGS1608.pdf
# CGS1609 Handling Mouse Inputs with GLUT glutMouseFunc, glutMotionFunc CGS1609.pdf
# CGS1610 3D Shapes Pyramid, Cube CGS1610.pdf
SKILLS
  • Research & Development 90%
  • Project Management 80%
  • Client Communication 80%
  • Team Management 85%
  • Microsoft Project and Visio 80%
  • GUI Design 90%
  • Web & Mobile Application 95%
  • CMS Design & Development 85%
PROGRAMMING SKILLS
  • HTML 5 90%
  • CSS 3.0 90%
  • PHP / MySQL 90%
  • JS / JQuery 85%
  • JAVA 60%
  • C# / ASP.NET 50%
  • SQL 95%
  • C++ 90%
SEMANTIC WEB
  • XML / XML Schema 90%
  • XPath / XQuery 90%
  • RDF / RDFs 90%
  • SPARQL 80%
  • OWL 80%