Advanced Computer Graphics
CSCI B581 Fall 2015
[B581 syllabus (preliminary)]

InstructorMitja Hmeljak, mitjaªindiana∙edu 
Lecture: Section 12521 - Monday and Wednesday, 2:30--3:45pm in PY 115
Office hours: TBA
Assistant Instructor: Vraj Parikh, parikhvªindiana∙edu 
Lab: Section 14669 - Friday, 1:00pm--2:15pm in LH 030 (Lindley Hall)
Office hours: TBA
 Required: CSCI-C 343, MATH-M 301 or M 303 or equivalent experience (data structures & mathematics for vectors and matrices)
 Recommended: C212, JavaScript (or other C-like language) programming experience.
 Required: Interactive Computer Graphics with WebGL, 7th edition by Edward Angel and Dave Shreiner - 2014,
 Recommended: WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL by Kouichi Matsuda and Rodger Lea - 2013,
ISBN10: 0321902920, ISBN13: 9780321902924

3D Computer Graphics Programming with WebGLWebGL
WebGL programming. WebGL is the 3D graphics API implemented right into the web browser, without the need of plugins.
WebGL is based on OpenGL ES 2.0, exposed through the HTML5 Canvas element as Document Object Model interfaces. OpenGL ES 2.0 and WebGL are very similar: both are Shader-based API using GLSL, with semantically similar constructs. The WebGL specification is very close to the OpenGL ES 2.0 specification, with some concessions made for what developers expect out of memory-managed languages such as JavaScript.
PS: the small rotating 6-color cube in the top-left corner of this page is rendered by your browser, which supports WebGL and is currently running a small WebGL program, together with two shader programs running on your computer's GPU!

Course Description
• Introduction to graphics hardware and software.
• Two-dimensional graphics methods, transformations, and interactive methods.
• Three-dimensional graphics, transformations, viewing geometry, object modeling and interactive manipulation methods.
• Basic lighting and shading.
• Video and animation methods.
• Credit not given for both B581 and B481.

Mitja Hmeljak 2015