Skip to content

Latest commit

 

History

History
119 lines (89 loc) · 7.02 KB

README.md

File metadata and controls

119 lines (89 loc) · 7.02 KB

Applied Computer Graphics 4860-1084

Build_Win Build_Linux

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):

Instructor

Dr. Nobuyuki Umetani

Time

Monday 3rd period, 13:00pm - 14:30pm

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, 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. 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]

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
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))

Policy

  • Do the assignment by yourself. Don't share the assignments with others.
  • Don't post the answers of the assignment on Slack
  • 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)

Slides

Reading Material