Lecture at graduate school of information science and technology in the university of Tokyo, spring semester, 2022
ITC-LMS (for Slack and GitHub Classroom invitations):
Dr. Nobuyuki Umetani
Monday 3rd period, 13:00pm - 14:30pm
Computer graphics is a technology to computationally represent objects' geometry, appearance and movement. This course is an introduction to the techniques generally seen in computer graphics. The aim of the course is to get familiar with applied mathematics such as linear algebra, vector analysis, partial differential equations, numerical analysis and optimization through the topics in computer graphics. There are C++ programming assignments to acquire research-oriented graphics programming skills such as OpenGL, Eigen matrix library, Git and cmake.
Topics:
Day | Topic | Assignment | Slide |
---|---|---|---|
(1) Apr. 11 |
Introduction graphics pipeline |
[3] | |
(2) Apr. 18 |
Coordinate transfrormation barycentric transformation |
task00 | [4] , [5] |
(3) Apr. 25 |
Coordinate transformation2 | task01 | - |
(5) May 2 |
Rasterization | task02 | [6] |
(4) May 9 |
Ray Casting I | task03 | [7] |
(6) May 16 |
Ray Casting II | task04 | [8] |
(7) May 23 |
Parametric curves / surfaces | task05 | [9] |
(8) June 6 |
Character deformation | task06 | [10], [11] |
(9) June 13 |
Optimization | task07 | [12] |
(10) June 20 |
Laplacian mesh deformation | task08 | [13] |
(11) June 27 |
Guest lecture by Dr. Ryoichi Ando | - | - |
(12) July 4 |
Grid-based Fluid Ⅰ | task09 | [14] |
(13) July 11 |
Grid-based Fluid Ⅱ | - | [15] |
There are many small programming assignments.
To do the assignments, you need to create your own copy of this repository through GitHub Classroom.
These assignments need to be submitted using pull request functionality of the GitHub.
Look at the following document.
Task ID | Title | Thumbnail |
---|---|---|
task00 | build C++ Program with CMake | |
task01 | 2D Homography Transformation | |
task02 | GLSL Vertex Shader (Fisheye Lens) | |
task03 | GLSL Fragment Shader (Sphere Tracing / SDF) | |
task04 | Importance Sampling (Ambient Occlusion) | |
task05 | Rasterization of Cubic Bézier Curves (Sturm's Method) | |
task06 | Linear Blend Skinning (Articulated Rigid Body, Inverse Binding Matrix) | |
task07 | Inverse Kinematics (Levenberg–Marquardt method) | |
task08 | Laplacian Mesh Deformation (Quadratic Programming, Sparse Matrix) | |
task09 | Poisson Image Editing((Gauss-Seidel method, pybind11)) |