/Applied_Computer_Graphics_2024S

Lecture at The UTokyo on computer graphics

Primary LanguageC++MIT LicenseMIT

Applied Computer Graphics 4860-1084

CI_Linux CI_Win

teaser

Lecture at graduate school of information science and technology in the university of Tokyo, spring semester, 2024

UTOL (UTokyo-LMS) (for Zoom URL, Slack and GitHub Classroom invitations):

Instructors

Dr. Nobuyuki Umetani

TA: Kenji Tojo

Time

Monday 2nd period, 10:25am - 12:10pm

Course Description

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, shader programming, Eigen matrix library, Git and cmake.

Topics:

  • affine transformation & homography
  • character animation (forward & inverse kinematics)
  • visualization (rasterization / ray casting)
  • optimization ( continuous optimization / dynamic programming )
  • parametric curves & surfaces
  • variational mesh deformation
  • grid-based fluid simulation

Lecture Schedule

Day Topic Assignment Slide
(1)
Apr. 8
Introduction
Didigital image
[1], [4]
(2)
Apr. 15
Parametric curves / surfaces
Rasterization in 2D, Digital Differential Analyzer
task01 [5] [6]
(3)
Apr. 22
Parametric representation
Bézier curve, polynominal
task02 [7] [8]
(5)
May 7
Coordinate transformation
Affine, homography transformation
task03 [9] [10] [11]
(4)
May 13
Graphics pipeline
depth buffer method, shading, shadow, anti aliasing
task04 [12] [13]
(6)
May 20
Ray Casting 1
spatial data structure
task05 [14] [16]
(7)
May 27
Ray Casting 2
Rendering equation, Monte Carlo integration
task06 [15] [17] [18] [19]
(8)
June 3
Character animation
Skeletal animation
task07 [21]
(9)
June 10
Guest lecture by Dr. Rex West
(10)
June 17
Character animation2
linear blend skinning
task08 [20]
(11)
June 24
Optimization
Newton-Raphson method, gradient descent
[22]
(12)
July 1
Laplacian mesh deformation
Sparse linear system
task09 [23] [24]
(13)
July 8
Grid-based Fluid
Poisson equation, Stam fluid
[25]

Grading

  • 20% lecture attendance
    • Attendance is counted based on writing a secret keyword on LMS. The keyword is announced for each lecture.
  • 80% small assignments
    • see below

Assignemnts

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.

How to Submit the Assignments

Task ID Title Thumbnail
task01 Rasterization of lines and polygons
DDA, winding number
task02 Rasterization of parametric curves
Quadratic Bézier curve, root of polynominal
task03 Perspectively-correct texture mapping
rasterization of triangle, barycentric coordinate
task04 Vertex shader practice
Rendering pipeline, mirror reflection, OpenGL
task05 Fragment shader practice
Ray marching method, CSG modeling, implicit modeling
task06 Monte Carlo integration1
Ambient occlusion, importance sampling, BVH
task07 Monte Carlo integration2
Multiple importance sampling
task08 Skeletal Character Animation
Linear blend skinning, articulated rigid body
task09 Laplacian Mesh Deformation
Quadratic programming, sparse linear system

Policy

  • Do the assignment by yourself. Do not share the answers of the assignments.
  • Late submission of an assignment is subject to grade deduction.
  • Score each assignment will not be open soon (instructor needs to adjust weight of the score later).
  • The assignments might not be graded soon.

Slides

Reading Material