CSE 564: VISUALIZATION AND VISUAL COMPUTING, SPRING SEMESTER, 2018

INSTRUCTOR: PROFESSOR HONG QIN (qin AT cs DOT stonybrook DOT edu, or qin AT cs DOT sunysb DOT edu, NEW Computer Science Building Rm. 151, 631-632-8450)

LECTURE INFORMATION: TUESDAY and THURSDAY 1pm – 2:20pm, OLD CS BUILDING Rm. 2120

OFFICE HOURS: TUESDAY and THURSDAY 2:20pm - 4pm, or by appointment!

CREDITS: 3

TA: To be announced later!!!

TA OFFICE HOURS: tentatively scheduled at MONDAY and WEDNESDAY 4-5:30pm (Details to be announced later when we have our TAs)

SYNOPSIS (COURSE OBJECTIVES):

1.      This course emphasizes a “hands-on” approach to both the better understanding of scientific/information visualization concept/theory/algorithms and the effective utility of scientific/information visualization techniques in various visual computing applications.

2.      Provide graduate students a comprehensive knowledge on scientific/information visualization concepts, theory, algorithms, techniques, and applications for data acquisition/simulation procedures, data modeling techniques, commonly-used conventional visualization techniques, visualization and rendering processes, visualization of 2D, volumetric, higher-dimensional, and time-series datasets, human-computer interactions, and other key elements of visual computing.

3.      Demonstrate the significant of these mathematical and computational tools and visualization algorithms in visual computing and relevant areas.

4.      Time permitting, this course will also try to introduce some advanced visualization topics, including (but not just limited to), visual perception, cognitive science, information visualization basics, visual analytics, and the possible coupling of artificial intelligence with visualization.

PREREQUISITES:

1.      Mathematical skills: fundamental knowledge on calculus, linear algebra, analytic geometry, etc. (Basic mathematical training at the undergraduate level).

2.      Computer science background: programming skills, basic visualization/graphics/visual-computing courses (or knowledge) at the undergraduate level.

3.      Essentially, you will need to have an undergraduate education in computer science or engineering with basic knowledge on visualization/graphics/visual-computing.

4.      You will need to speak to the instructor if you are not sure about your background knowledge and course prerequisites.

SUGGESTED REFERENCES (PLEASE NOTE THAT, THERE ARE NO REQUIRED TEXTBOOKS):

1.      Computer Graphics with OpenGL, Fourth Edition, Donald Hearn, M. Pauline Baker, and Warren R. Carithers, Prentice Hall, 2011.

2.      OpenGL Programming Guide, 4th Edition: The Official Guide to Learning OpenGL, Version 1.4, Addison-Wesley, 2004.

3.      OpenGL Reference Manual, 4th Edition: The Official Reference Document to OpenGL, Version 1.4, Addison-Wesley, 2004.

OTHER RELEVANT JOURNALS:

1.      IEEE Transactions on Visualization and Computer Graphics

2.      IEEE Computer Graphics and Applications

3.      Computer Graphics (Proceedings of ACM SIGGRAPH)

4.      IEEE Computer Graphics and Applications

5.      ACM Transactions on Graphics

6.      Computer-Aided Design

7.      Computer Aided Geometric Design

8.      Computer Graphics Forum (Eurographics Journal)

9.      The Visual Computer

10.  Graphical Models

11.  and others!

LECTURE NOTES:

Primary material of this course will come from the recommended reference books listed above, as well as from other reference books. Additionally, material from recent articles or other relevant reference books will be presented. Numerous slides and video tapes on visualization will be shown. Students are advised to attend the class and follow the lecturing notes closely!

GRADING SCHEMES:

·         One Programming Assignment (due at 12:50pm on Tuesday February 20), 10%

·         Two in-class mid-term exams (tentatively scheduled on February 22 and April 17), the first mid-term exam is 10% (of the entire course grade), and the second mid-term exam is 15%, so total 25%

·         Paper reading and technical report for literature review (total seven papers, throughout the semester, deadline Tuesday April 24 at 12:50pm): 10%

·         Class attendance and asking questions during office hours: 5%

·         Final course project: 50%

·         Extra, bonus points: Up to 10% (additional paper reading, additional functionalities on your final projects, etc.), so please speak to the instructor to explore different options

The work submitted should be your own! Late submission will be penalized 25% per day. Furthermore, because a primary goal of the course is to teach professionalism, any academic dishonesty (e.g. plagiarism) will be viewed as a serious academic offense, thus as an evidence that the above goal has not been achieved and will be grounds for receiving a grade of F (Please refer to CEAS Procedures and Guidelines Governing Academic Dishonesty (1/81) for details).

Machine failure should not be a reason to delay assignment due dates unless there is a massive catastrophe , which will be announced by the instructor. Consider the possibility that machine failure may happen and then contention for machines will occur, my advice to all of you is that please start the assignments/project as early as possible!

FINAL COURSE PROJECT (50%):

·         One-page project proposal (Proposal submission deadline: Thursday March 1, at 12:50pm) : 5%

·         Mid-term demo with preliminary results (Mid-term demo deadline: Thursday April 5) : (3+6)% 

·         A working system + software codes (Deadline: Saturday May 5, 9am): 30%

·         Final project report (4-6 pages, deadline: Saturday May 5, 9am): 3%

·         Oral presentation and final demo (Deadline: at the end of the semester, tentatively set to be on Saturday-Sunday, May 5-6, 9am-7pm): 3%

Please note that, Paper Reading is carried out throughout the semester, and The Technical Report for Literature Review is due at 12:50pm, Tuesday April 24!!!

 

2018 FALL SEMESTER LECTURE NOTES (SPRING SEMESTER, 2018, NEW):

 

Course Introduction and Visual Computing Overview:

Visualization and Visual Computing: Introduction and Course Overview

Graphics Computing Overview

OpenGL Examples

 

Basic Transformation and Display Pipeline:

Computer Graphics Hardware and Display Devices

Basic Primitives Rendering: Line Drawing and 2D Scan Conversion

2D and 3D Geometry Transformations

Arbitrary 3D Rotation

Cameras and Geometric Coordinate Systems

From Transformation To Viewing

From World Coordinate System To Screen Coordinate System

Model Clipping

Raycasting: From Surface Rendering To Volume Visualization

 

Display Techniques:

Traditional Visualization

Color Theory

Local Illumination and Graphics Rendering

Ray Tracing

Non-Photorealistic Rendering (NPR)

Fundamental Algorithms for Data Visualization

Volume Rendering Framework (including Examples)

Full Volume Rendering (involving Color, Transfer Function Design, Shading, and Compositing)

Volume Visualization (supporting Surface Rendering with Polygons and Iso-Surface Display)

Other Volume Visualization Algorithms: Splatting, and Shear Warping

Volume Rendering Techniques Summary

Vector and Flow Field Visualization Techniques

Time permitting, I will also cover: Light, Radiometry, BRDF, and Radiosity,  and  Photon Tracing and Mapping

 

Data Modeling and Manipulation Techniques:

Basic Data Representations for Visualization

Field Functions, Height Surfaces, and Applications (including Segmentation and Registration)

Data Modeling and Techniques for Interpolation and Approximation

From Scalar Fields to Implicit Surfaces

Texture Mapping Techniques

 

Imaging and Image Processing Techniques:

Image Processing Primer

Image Vectorization

Overview on Medical Image Processing and Analysis

Finite Element Meshing and Modeling in Medical Imaging Applications (including Registration, Simulation, Surgical Planning, and Training)

 

Other Important Topics in Visual Computing and Computer Graphics:

Parametric Curves

Parametric Surfaces

Splines and Applications

Subdivision Surfaces

Solid Modeling

Procedural Modeling Fundamentals

Various Procedural Modeling Techniques

Radial Basis Functions and Applications

Geometry-driven Deformation and Free-form Deformation

Computer Animation: Concepts, Theory, and Techniques

Hidden Surface Removal

A Brief Introduction to Differential Geometry

 

 

 

 

 

 

 

 

 

 

FOR YOUR CONVENIENCE, I ALSO KEEP LECTURE NOTES FROM PREVIOUS YEARS (CSE528)!!!

Computer Graphics Introduction and Course Overview

Fundamental Elements of Computer Graphics and Visualization: A Brief Technical Review

Computer Graphics Rendering Pipeline

2D and 3D Transformations

The Basic Attributes of Camera Coordinate System

Graphics Hardware and Display Devices

Graphics Primitive Drawing and Clipping Operations

Parametric Curves

Parametric Surfaces

Computer Graphics Viewing Pipeline (Revisit Matrix Operations)

Subdivision-based Shape Modeling and Applications

Implicit Surface Modeling

Solid Modeling Overview

A Brief Introduction to Radial Basis Functions and Their Applications in Computer Graphics

Graphics Illumination and Shading Models

Technical Writing Overview

 

 

COMPUTER FACILITIES:

The programming assignments will make use of Unix and PC facilities at Department of Computer Science. In particular, all graduate students should have access to the Grad PC Lab (located in Rm.1239). The version of OpenGL in the Grad Lab is V1.1, the same as the TransLab. If you don't have access to the Lab, please talk to the instructor and email to root requesting the (grad) course accounts. Students with access to PCs at home and/or their own laptops with the compatible computing environment will likely be able to work on some or all of the assignments and the course project at home and/or give demos from their laptops.

OPENGL PROGRAMMING GUIDE AND ENVIRONMENTS:

In previous years, NT Transaction labs both upstairs and downstairs (in Computer Science Building) were available for CSE530 students, however, this year students in CSE530 will have to move to Grad PC Lab to conduct programming assignments and course projects. Meanwhile, if you can access Transaction Lab, you should be able to access some OpenGL examples (which should help you get familiar with OpenGLin case you knew little about it before) stored in its file system. Most of OpenGL examples appeared in various reference books are available on-line, generally speaking. The system manager of our Transaction lab has kindly managed to download OpenGL examples from several publically-available websites and put them under appropriate directories in order to help students to access OpenGL examples electronically and easily. Please note that, these examples are located in H:\cse328\pkg directory (this is because that the instructor also teaches CSE328 every fall semester). In general, they come from different sources. In particular, the directory: "H:\cse328\pkg\Opengl examples\Edward Angel second edition" contains all the examples and source codes that have been downloaded from Edward Angel (who is the author of a book entitled : Interactive Computer Graphics A Top Down Approach with OpenGL Second Edition)'s web site (the ftp site is ftp.cs.unm.edu under pub/angel/BOOK in case you are interested in getting more information regarding his book and examples in the first edition, etc.); the directory: "H:\cse328\pkg\Opengl examples\sgi\opengl11" contains OpenGL examples and source codes appeared in the book (OpenGL Programming Guide Version 1.1); the directory: "H:\cse328\pkg\Opengl examples\sgi\opengl12" contains OpenGL examples and source codes appeared in the book (OpenGL Programming Guide Version 1.2). The ftp site of SGI OpenGL examples is ftp://sgigate.sgi.com/pub/opengl/, in case you are interested in getting more information. In previous years, examples were also available in `H:\CSE530\OpenGL Examples'. These examples contain source codes which have been downloaded from Edward Angel (who is the author of a book entitled : Interactive Computer Graphics A Top Down Approach with OpenGL)'s web site. But, the directory is most like moved to elsewhere. Note that, the instructor has talked to our system manager to see if it is possible to also copy the OpenGL source codes from the above directories to the appropriate places in our Grad. PC Lab soon. Please stay tuned about this matter. I will update the links as soon as possible.

Please note that, the current OpenGL version in the NT translab is V1.1 only! There are many websites that can help you to be familiar with OpenGL programming techniques in particular and computer graphics technology in general. One great place for all sorts of general information is the Official OpenGL Web Site: http://www.opengl.org. This Website contains software, documentation, FAQs, and news! It is a good place to start any search for answers to your OpenGL questions. Please note that the two OpenGL programming books (A. Programming Guide; B. Reference Manual) contain many sample examples of OpenGL. These sample codes along with Mark Kilgard's OpenGL Utility Toolkit (GLUT) can be obtained freely via anonymous ftp (file-transfer protocol): ftp://sgigate.sgi.com/pub/opengl/opengl12.tar.Z or ftp://sgigate.sgi.com/pub/opengl/opengl12.zip, depending on which decompression/extraction tools you are currently using in your computer. For the Windows/NT/X version of GLUT, you can check out the following Web page for the details: http://reality.sgi.com/opengl/glut3/gluts.html. In addition, Nate Robins of University of Utah has written a suite of tutorial programs that demonstrate fundamental OpenGL programming concepts and techniques. You can get the source code for these tutorials at: http://www.cs.utah/edu/~narobins/opengl.html. The above Websites mostly contain information regarding OpenGL Version 1.2. For OpenGL Version 1.1, the source code samples can be found via anonymous ftp too: ftp://sgigate.sgi.com/pub/opengl/opengl/opengl1_1.tar.Z, to uncompress and extract the files from this tar archive, please use the following commands: umcompress opengl1_1.tar, tar xf opengl1_1.tar. Other important information about Version 1.1 are available at http://www.sgi.com/Technology/openGL. Other detailed information about OpenGL and its technical resources (including programming books) can also be found from SGI OpenGL home website

      

    

body>