CS560/CS460 Computer Graphics (Spring 2018)

Department of Computer Science

SUNY at Binghamton

Instructor:

Dr. Lijun Yin

Time:

Tuesday and Thursday  7:35pm – 9:00pm

Location:

EB-J23

Office:

Q18

Office Hours:

Tuesday and Thursday: 11am-12pm.

Email:

lijun@cs.binghamton.edu

Web Page:

http://www.cs.binghamton.edu/~lijun/CS560_460_Spring2018/2018SpringCS560-460.htm

TA:

Mr. Huiyuan Yang

TA Email:

hyang51@binghamton.edu

TA Office Hours

Monday and Friday 11am – 12pm at G25

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: CS240 or CS375; Linear algebra; C or C+ programming or CS360

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 – 46%

Quiz and Term Examination (10% + 20%)

Term Project – 24%

 

 

Computer Facilities

For programming assignments, Windows based programming platform is preferred. However, Linux or iOS platforms are also feasible if you are familiar with.

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

1/16/2018

Introduction

[1] Ch. 1 and Class Notes 

 

Demo

 

 

 

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

 

Extra tutorial for MFC and OpenGL programming 

Extra Note (1)

Extra Note (2)

 

  •  Recommended sample:

 

 

(1)   Sample for VS2017

(2)   Sample for VS2015

(3)   Sample for VS2013

(4)   Sample for VS2012

 

(5)   Tutorial on creating a MFC project

     

     

 

 

 

  • Following samples are alternative choices for programming using GLUT

 

(1) GLUT example

(2) Sample for Unix Programming by using GLUT

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

 

GLUT3.7

GLUT_MENU 

 

Reference Sites for Programming

 

Graphics system

[1] Ch.2 and Class notes

[1] Ch.4.2

 

 

 

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

 

 

 

 

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

 

 

Cont’d

2D geometric transformation

2D Viewing (window-to-viewport)

[1] Ch.5

Class-notes

 

Demo

Assignment 2 

 

 Con’d

 

 

 

 

3D geometric transformation 

[1] Ch.5 class-notes

 

 

3D Viewing

[1] Ch.7

 class-notes

 

reference material

 

 

Cont’d (3D Viewing and Clipping)

 

 [1] Ch.7

 Assignment 3

 

Sample program for 3D viewing (VS 2015)

Sample program for 3D viewing (VS 2013)

Sample program for 3D viewing (VS 2012)

 

Readme_GLUT

Sample program (GLUT + VS)

Sample program (GLUT + Linux)

Sample program (GLUT + MacOSX)

Handout for OpenGL Commands

 

 

Cont’d

 

 Students’ programming demo (Assignment 2)

 

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

 

 

 

Assignment 4

 

3D models: teapot; car; robot.

 

2D image: flower.bmp

 

Sample Program (Visual Studio 2013)

 

 

Sample Program (Visual Studio 2012)

 

 

 

 

 

 

Term Project Topics and Specifications

 

 

 

 Students’ programming demo (Assignment 3)

 

Term Project Specification

 

Term Project Topics

 

 

 

Curve and Surface

 

[1] Ch.8

class-notes

 

 

Quiz

 

 

 

B-Spline

 

 

 

[1] Ch.8

class-notes

 

 

 

Visible surface determination

 

 

 

Class-notes

[1] Ch.9

 Assignment 5  

 

 

Sample program 5 (VS 2013)

 

Sample program 5 (VS 2012)

 

 

 

Hand-out3

 

 

 

(3)   Supplemental Materials of Shader and .OBJ

GLShadingLanguageSupplementalMaterial.ppt 

and

 

GLSL_SKELETON_VS2013.zip

Note-for-GLSL-Sample Program Setup

 

GLSL_SKELETON_VS2012.rar

 

 

 

 

Cont’d

 

 

 

Students’ demos of Assignment 4

 

Surface rendering

(shading and illumination)

 

 

 

 

[1] Ch.10

Class-notes

 

 

 

 

Shading (Flat, Gouraud, Phong)

 

 

 [1]Ch. 10

class-notes

 

 

 

 

Extra materials: Shaders

Introduction: shaders  (class-notes)

 

 

 

Ray-tracing

 

 

Animation

 

 

 

 

 

 

 

 

Fractal 

 

[1]Ch.10.11

 class-notes_(ray tracing)

 

[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: Volume Rendering

 

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

Students’ demos of Assignment 5

 

Assignment 5 (key) and sample Q for final.

 

Project presentation

 

 Name List of Presentation

Final Exam

 

Wed. May 16, 2018

03:15 PM

05:15 PM

LN G410

Advice

All the assignments and projects should be done completely on your own.  It is not tolerated for either copying others’ work or giving your solution to anyone else. The standard rules on plagiarism apply. 

Please review the academic honesty document at the link: http://www.binghamton.edu/watson/about/honesty-policy.pdf. Cheating and copying will NOT be tolerated.