Lecture Notes
Will be followed in the following order.- Intro & 2D Raster algorithms
- OpenGL and Shaders The OpenGL Pipeline
- 3D Viewing
Example program (1) - 3D Data Structures, 3D Data Management and 3D Models Example programs (1-1) (1-2) (1-3) (1-4) (2) (3) (4) (5) (6) (7)
- Texture Mapping I Example Program (1)
- Hidden Surface Elimination
- Lighting and Shadows I Example programs (1-1) (1-2) (1-3)
- Lighting and Shadows II Sample program (2) Sample program (3)
- Ray Tracing I Example programs (1) (2) (3+4) (5) (6) (7) (8) (9) (10) (11) (12) (13+14+15+16)
- Ray Tracing II (Solid Modeling)
- Texture Mapping II Example program (1b)
- Curves and Surfaces V (Surface Modeling)
Example programs (1) (2) (3) (4) (5) (6) (s)
Related Sites
- Stanford (Undergrad/Grad)
- MIT(Undergrad)
- CMU(Grad)
- Berkeley(Undergrad/Grad)
- Caltech(Grad)
- UIUC (Undergrad/Grad)
- Cornell (Undergrad/Grad)
- Columbia (Undergrad)
- USC(Undergrad) (Grad)
Midterm Exam
Game Download
This is the home page of CS535: Intermediate Computer Graphics.
Instructor:
Dr. Fuhua (Frank) Cheng
(cheng@cs.uky.edu)
This course covers 3D graphics primitives and OpenGL 3D shader programming. It will help you achieve the following educational objectives: (1) understand the concept of 3D viewing, lighting and rendering process; (2) understand the concept of hidden surface elimination, and know techniques that can be used for such a process, as well as criteria to determine if a method is appropriate for particular hidden surface elimination problems; (3) be familiar with the shading process; (4) understand the concept of shadow generation and know how to choose shadow-generation methods for 3D rendering problems; (5) understand how to use ray tracing technique to generate a high quality image, how to use CSG trees to represent solids, and how to render a CSG-represented solid; (6) understand how to use B-splines in 3D shape representation and how to perform subdivision and tessellation on B-spline based representations; (7) be able to write OpenGL programs to use shaders to render 3D scenes consisted of polygonal objects and objects bounded by free-form surfaces.
The course syllabus is available in HTML format and PPT format .
Campus resources , including engineering tutoring, UK Counseling Center and Center for Support and Intervention , you can use (for free). See Title IV Regulation here.Exam dates:
- Midterm date: October 17, 2024 (Thursday)
- Final Exam date & time: 10:30am-12:30pm, December 17, 2024 (Tuesday)
Get Prepared
- Verify the OpenGL version of your graphics card
- Install Visual Studio
- Prepare GLFW
- Prepare GLEW
- Prepare GLM
- Prepare SOIL2
- Prepare Shared "lib" and "include" Folders
- Create a Visual Studio Custom Project Template
- How to create a new openGL C++ Project
OpenGL
- The Khronos Group: the company that manages openGL
-
OpenGL documentation
Introduction
- GLFW documentation (FAQ)
- OpenGL textures
- OpenGL Tutorial sites
Site 1: Beginners tutorials
Site 2: Intermediate Tutorials
Site 3: Miscellaneous+FAQ
Site 4: Lighthouse3d site
- Android's web site for OpenGL
- Android's web site for related OpenGL instructions categories
- References on OpenGL
- Computer Graphics through OpenGL's website
- Segmentation Anything Model
Sample Programs for Programming Assignments
Homework Assignments
- Homework 1 (pdf file) (doc file) (due date: 9/5/2024)
- Homework 2 (pdf file) (doc file) (due date: 9/17/2024)
- Homework 3 (pdf file) (doc file) (due date: 9/27/2024)
- Homework 4-1 (pdf file) (doc file) (due date: 10/04/2024)
- Homework 4-2 (pdf file) (doc file) (due date: 10/11/2024)
- Homework 5 (pdf file) (doc file) (due date: 11/01/2024)
- Homework 6 (pdf file) (doc file) (due date: 11/15/2024)
- Homework 7 (pdf file) (doc file) (due date: 11/23/2024)
Homework Solution Sets
- Solution set of Homework 1
- Solution set of Homework 2
- Solution set of Homework 3
- Solution set of Homework 4-1
- Solution set of Homework 4-2
- Solution set of Homework 5
- Solution set of Homework 6
Programming Assignments
- Programming Assignment 1 (new due date: 10/03/2024) (Polygon clipping techniques)
- Programming Assignment 2 (due date: 11/07/2024)
- Programming Assignment 3 (due date: 12/07/2024)
(Polygon clipping techniques-I)