Interactive Computer Graphics with WebGL

Go to class
Write Review

Free Online Course: Interactive Computer Graphics with WebGL provided by Coursera is a comprehensive online course, which lasts for 6-8 hours a week. The course is taught in English and is free of charge. Upon completion of the course, you can receive an e-certificate from Coursera. Interactive Computer Graphics with WebGL is taught by Edward Angel.

Overview
  • OpenGL is the standard application programming interface(API) to graphics systems forboth education and industry. Recent advances in hardware and software have focussed applicationdevelopment on the Web and for mobile devices such as smart phones. Over the past year therehas been enormous interest in WebGL, the version of OpenGL that runs within Web browsers and evenon newer smart phones. Consequently, for the first time both students and practitioners candevelop exciting three-dimensional interactive applications that areindependent of the particularplatform and can be accessed like any other Web application.

    In this course, wewill learn how to create three-dimensional, interactive applications usingWebGL that run within thelatest web browsers. By the end of the course, every student will have writtenand tested a completeinteractive three-dimensional application. Because WebGL is the JavaScript implementation ofOpenGL ES 2.0, all code will be developed in JavaScript. No prior knowledge of JavaScript isrequired as long as participants can program in C++, C# or Java. The content of thecourse will be based on the instructor's recent textbook (not required) andcourse which is the firstuniversity course to use WebGL as the API.

Syllabus
  • Week 1: Introduction and Background
        Lecture 1: Course Overview
        Lecture 2: Outline via Examples
        Lecture 3: Prerequisites and References
        Lecture 4: A Simple WebGL Example
        Lecture 5: Getting Started with WebGL
        Lecture 6: OpenGL and WebGL
        Lecture 7: HTML and Browsers
        Lecture 8: JavaScript
    Week 2: WebGL
        Lecture 1: Square Program
        Lecture 2: Shader Execution Model
        Lecture 3: Square Program: The HTML file
        Lecture 4: Square Program: The JavaScript File
        Lecture 5: WebGL Primitves and Viewing
        Lecture 6: Tessellation and Twist
        Lecture 7: The Sierpinski Gasket
        Lecture 8: Moving to Three Dimensions
    Week 3: The Open GL Shading Language and Interaction
        Lecture 1: Color
        Lecture 2: GLSL and Shaders
        Lecture 3: Input and Interaction
        Lecture 4: Animation
        Lecture 5: Buttons and Menus
        Lecture 6: Keyboard and Sliders
    Week 4: Displaying Geometry in WebGL
        Lecture 1: Position Input
        Lecture 2: Picking
        Lecture 3: Matrices
        Lecture 4: Representation
        Lecture 5: Geometry 1
        Lecture 6: Geometry 2
        Lecture 7: Homogeneous Coordinates
        Lecture 8: Some Caveats
    Week 5: Transformations
        Lecture 1: Affine Transformations
        Lecture 2: Rotation, Translation, Scaling
        Lecture3: Concatenating Transformation
        Lecture 4: Transformations in WebGL
        Lecture 5: Representing a Cube
        Lecture 6: Animating the Cube
    Week 6: Viewing in WebGL
        Lecture 1: Classical Viewing
        Lecture 2: Positioning the Camera
        Lecture 3: Projection
        Lecture 4: Projection in WebGL
        Lecture 5: Orthogonal Projection Matrices
        Lecture 6: Perspective Projection Matrices
        Lecture 7: Representing and Displaying Meshes
        Lecture 8: Lighting and Shading
        Lecture 9: The Phone Lighting Model
    Week 7: Lighting,  Shading and Texture Mapping
        Lecture 1: Lighting and Shading in WebGL
        Lecture 2: Polygon Shading
        Lecture 3: Per Vertex vs per Fragment Shading
        Lecture 4: Buffers in WebGL
        Lecture 5: Texture Mapping Overview
        Lecture 6: Approaches to Texture Mapping
        Lecture 7: WebGL Texture Mapping
    Week 8: WebGL Texture Mapping
        Lecture 1: WebGL Texture Objects
        Lecture 2: Texture Mapping to the Cube
        Lecture 3: Texture Mapping Variations
        Lecture 4: Reflection and Environment Maps
        Lecture 5: Bump Maps
        Lecture 6: Compositing and Blending
        Lecture 7: Imaging Applications
    Week 9: Using the GPU
        Lecture 1: The Mandelbrot Set
        Lecture 2: Generating the Mandelbrot Set in the CPU
        Lecture 3: Generating the Mandelbrot Set in the GPU
        Lecture 4: Framebuffer Objects
        Lecture 5: Renderbuffers
        Lecture 6: Render to Texture
    Week: 10: Render-to-Texture Applications
        Lecture 1: Picking by Color
        Lecture 2: Buffer Pingponging
        Lecture 3: Diffusion Example
        Lecture 4: Agent-Based Models