CS560/CS460 Computer Graphics (Summer 2017, Enginet Course)

(May 29 – August 13, 2017)

Department of Computer Science

SUNY at Binghamton

Instructor:

Dr. Lijun Yin

Office:

Q18

Email:

lijun@cs.binghamton.edu

Web Page:

http://www.cs.binghamton.edu/~lijun/CS560_460_Summer/2017SummerCS560-460.htm

TAs:

Mr. Umur Ciftci

TA Email:

Ncilsal2@binghamton.edu

 

TA Office Hours

Tuesday and Thursday 1:00pm – 2:00pm at Engineering Building G-Pod G13

Blackboard

http://blackboard.binghamton.edu/

Course Description

This course will introduce the concepts, structure, techniques and algorithms for use of modern interactive computer graphics systems. Graphics hardware & software structure. Techniques and algorithms for basic graphics input/output functions. 2D and 3D transformations and projections, techniques for 3D object modeling, rendering (synthesis), and animation.

Prerequisites: Linear algebra; C or C+ programming or CS360/CS375.

Textbook  

Following books are recommended as references:

 

                                               Note: This course will mainly use OpenGL Version 3.1.

 

Course Requirements

Your grade will be based on the following criteria:

CS560/CS460:

Assignments (75%)

Course Project (25%)

 

 

NOTE 1: FOR ALL QUESTIONS REGARDING ASSIGNMENTS (BOTH THEORY AND PROGRAMMING) AND LECTURE NOTES,

Please contact TA (Mr. Umur Ciftci) by email.  If you are in Binghamton area, you can also make an appointment to discuss with the TA.

 

NOTE 2: The course lecture videos will be posted in the blackboard. You can view the recorded lecture videos from there.  You can also download the lecture notes in the following section (“Syllabus”).

 

NOTE 3: For all the assignments, you are required to upload them to the blackboard by due dates.

 

NOTE 4: The term project will be due on August 13, 2017.

 

 

Syllabus

Please note that this syllabus is approximate, and subject to change. Programming assignments are due 2 weeks after they are assigned.

Date

Topic

READINGs

Assignment

5/29

Introduction

[1] Ch. 1 and Class Notes 

 

Demo

 

Graphics system

[1] Ch.2 and Class notes

[1] Ch.4.2

 

 

 

 

 

 

Graphics Programming and OpenGL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Class Notes

[4] Ch.1 and [4] Appendix C P649-P651

 

 [4] Ch.2 (P27 – P66)

[4] Appendix G P675

Demo

 

 

Extra notes

  •  Recommended sample:

 

 

(1) Sample for VS2005

(2)   Sample for VS2008 and

(3)   Sample for VS2012

(4)   Sample for VS2013

(5)   Tutorial on creating a MFC project

     

     

 

 

 

  • Following samples are alternative choices for programming (but not recommended)

 

 

(1) Sample for Unix Programming by using GLUT

(2) Sample for Windows VC++ by using GLUT

 

GLUT3.7

GLUT_MENU 

 

Reference Sites for Programming

 

Basic raster graphics algorithm for drawing 2D primitives (scan converting, antialiasing)

 

class-notes1

class-notes2

[1] Ch.4

[1] Ch.7

[2] Ch.3.2.2, Ch.3.17 (p132-141)

 

 

 

Assignment 1

 

Cont’d

Demo

 

 Extra tutorial for MFC and OpenGL programming  (1) (2)

 

 

 

Filling and Clipping

 

[1] Ch.4 (p196-210)

[2] Ch.3 (p87-93)

[3] Ch.6.5- Ch.6.9

[4] Ch. 3.12.4, Ch.19.1.3

class-notes

Supplemental materials

 

 

Cont’d

2D geometric transformation

2D Viewing (window-to-viewport)

[1] Ch.5

Class-notes

 

Demo

 

 Con’d

 

 

 

 

3D geometric transformation 

[1] Ch.5 class-notes

 

 

3D Viewing

[1] Ch.7

 class-notes (PDF);

 

reference material

  Assignment 2

  Sample program (VS 2012)

  Sample program (VS 2013)

 

Handout for OpenGL Commands

 

Cont’d (3D Viewing and Clipping)

 

 [1] Ch.7

 

 

 

Cont’d

 

Class-notes (PPT: 3D viewing and clipping)

 

 

 

3D object modeling

 

 

Texture mapping

 

 

 

 

 

 [1]Ch.14, Ch.8

Class-notes

 

[4][6] Ch.3 

 

Demo

 

 

 

 

 

 

 

  Texture map (and Interpolation)

 

 

 [1] Ch.10.17

class-notes

 

 

Demo

 

 

 

 

 

 

 

Term Project Topics and Specifications

 

 

 

 

 

 

 

 

Curve and Surface

 

[1] Ch.8

class-notes

 

 

 

 

 

 

B-Spline

 

 

 

[1] Ch.8

class-notes

 

 

 

Visible surface determination

 

 

 

Class-notes

[1] Ch.9

  Assignment 3

 

(1)   Supplemental Materials:

 

Sample program 5 (VS 2013)

Sample program 5 (VS 2012)

Sample program 5 (VS 2008)

Sample program 5 (VS 2005)

 

 

(2)   Supplemental Materials of Ray Tracing: 

 Ray Tracing_SupplementalMaterial.ppt and

RayTracingFormulas_Sphere1_SupplementalMaterial.pdf

 

 

(3)   Supplemental Materials of Shader and .OBJ

GL Shading Language_SupplementalMaterial.ppt and

GLSL_SKELETON_VS2012.rar

    

3D Models: teapot.obj, car.obj, and robot.obj

 

Course Project

 

 

Project Specification

 

Project Topics

 

 

 

Surface rendering

(shading and illumination)

 

 

 

 

[1] Ch.10

Class-notes

 

 

 

 

Shading (Flat, Gouraud, Phong)

 

 

 [1]Ch. 10

class-notes

 

 

 

 

Ray-tracing and Radiosity

 

 

Animation

 

 

 

 

 

 

 

 

Fractal 

 

[1]Ch.10.11

 class-notes_(ray tracing)

 

class-notes (radiosity)

 

[1] Ch.13

class-notes  (animation)

 

Supplemental materials (speed control for animation)

 

 

[1] Ch.8.23

Class-notes (Fractal)

 

 

 

Collision

 

 

Fluid simulation

 

Color

 

Color transfer

 

 

Physics based modeling

 

Applications: Morphable model

 

Class-notes (Collision)

 

 

 

Class-notes (Fluid Simulation)

 

 

Class-notes (color)

 

Notes (color transfer supplemental materials 1 and 2)

 

Notes (physics based modeling supplemental material 1)

 

 

Extra materials: Shaders and Volume Rendering

Introduction: shaders  (class-notes)

 

Introduction: Volume Rendering (Class-notes 1 and 2)

8/15

Final Project Due

 

 

 

 

 

Advice

The standard rules on plagiarism apply.