https://github.com/asukaminato0721/acg-asukaminato0721
acg-asukaminato0721 created by GitHub Classroom
https://github.com/asukaminato0721/acg-asukaminato0721
Last synced: about 2 months ago
JSON representation
acg-asukaminato0721 created by GitHub Classroom
- Host: GitHub
- URL: https://github.com/asukaminato0721/acg-asukaminato0721
- Owner: asukaminato0721
- License: mit
- Created: 2024-04-15T02:49:12.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-24T09:24:13.000Z (9 months ago)
- Last Synced: 2025-04-02T12:53:29.715Z (about 2 months ago)
- Language: C++
- Size: 4.03 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Applied Computer Graphics 4860-1084
[](https://github.com/ACG-2024S/acg/actions/workflows/ubuntu.yml)
[](https://github.com/ACG-2024S/acg/actions/workflows/windows.yml)
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):
- https://utol.ecc.u-tokyo.ac.jp/lms/course?idnumber=2024_4886_4860-1084_01
## Instructors
Dr. Nobuyuki Umetani
- email: [email protected]
- url: http://www.nobuyuki-umetani.com/
- lab's web page: https://cgenglab.github.io/labpage/en/TA: Kenji Tojo
- url: https://kenji-tojo.github.io/## 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]](http://nobuyuki-umetani.com/acg2024s/introduction.pdf), [[4]](http://nobuyuki-umetani.com/acg2024s/digital_image.pdf) |
|(2)
Apr. 15| **Parametric curves / surfaces**
**Rasterization in 2D**, Digital Differential Analyzer | [task01](task01) | [[5]](http://nobuyuki-umetani.com/acg2024s/rasterization_2d.pdf) [[6]](http://nobuyuki-umetani.com/acg2024s/barycentric_coordinates.pdf) |
|(3)
Apr. 22| **Parametric representation**
Bézier curve, polynominal | [task02](task02) | [[7] ](http://nobuyuki-umetani.com/acg2024s/parametric_curve.pdf) [[8]](http://nobuyuki-umetani.com/acg2024s/polynominal.pdf) |
|(5)
May 7| **Coordinate transformation**
Affine, homography transformation | [task03](task03) | [[9]](http://nobuyuki-umetani.com/acg2024s/transformation.pdf) [[10]](http://nobuyuki-umetani.com/acg2024s/transformation_homogeneous_2d.pdf) [[11]](http://nobuyuki-umetani.com/acg2024s/transformation_homogeneous_3d.pdf) |
|(4)
May 13| **Graphics pipeline**
depth buffer method, shading, shadow, anti aliasing | [task04](task04) | [[12]](http://nobuyuki-umetani.com/acg2024s/rasterization_3d.pdf) [[13]](http://nobuyuki-umetani.com/acg2024s/graphics_pipeline.pdf) |
|(6)
May 20| **Ray Casting 1**
spatial data structure | [task05](task05) | [[14]](http://nobuyuki-umetani.com/acg2024s/shading.pdf) [[16]](http://nobuyuki-umetani.com/acg2024s/implicit_modeling.pdf) |
|(7)
May 27| **Ray Casting 2**
Rendering equation, Monte Carlo integration | [task06](task06) | [[15]](http://nobuyuki-umetani.com/acg2024s/rasterization_subpixel.pdf) [[17]](http://nobuyuki-umetani.com/acg2024s/ray_casting.pdf) [[18]](http://nobuyuki-umetani.com/acg2024s/monte_carlo_integration.pdf) [[19]](http://nobuyuki-umetani.com/acg2024s/ray_triangle_collision.pdf) |
|(8)
June 3| **Character animation**
Skeletal animation | [task07](task07) | [[21]](http://nobuyuki-umetani.com/acg2024s/jacobian.pdf) |
|(9)
June 10| Guest lecture by Dr. Rex West | | |
|(10)
June 17| **Character animation2**
linear blend skinning | [task08](task08) | [[20]](http://nobuyuki-umetani.com/acg2024s/character_deformation.pdf) |
|(11)
June 24| **Optimization**
Newton-Raphson method, gradient descent | | [[22]](http://nobuyuki-umetani.com/acg2024s/optimization.pdf) |
|(12)
July 1| **Laplacian mesh deformation**
Sparse linear system | [task09](task09) | [[23]](http://nobuyuki-umetani.com/acg2024s/mesh_laplacian.pdf) [[24]](http://nobuyuki-umetani.com/acg2024s/sparse_linear_system.pdf) |
|(13)
July 8| **Grid-based Fluid**
Poisson equation, Stam fluid | | [[25]](http://nobuyuki-umetani.com/acg2024s/fluid_simulation.pdf) |## 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](doc/submit.md)
| Task ID | Title | Thumbnail |
|:---|:---|:---|
| [task01](task01) | **Rasterization of lines and polygons**
DDA, winding number ||
| [task02](task02) | **Rasterization of parametric curves**
Quadratic Bézier curve, root of polynominal ||
| [task03](task03) | **Perspectively-correct texture mapping**
rasterization of triangle, barycentric coordinate ||
| [task04](task04) | **Vertex shader practice**
Rendering pipeline, mirror reflection, OpenGL ||
| [task05](task05) | **Fragment shader practice**
Ray marching method, CSG modeling, implicit modeling ||
| [task06](task06) | **Monte Carlo integration1**
Ambient occlusion, importance sampling, BVH ||
| [task07](task07) | **Monte Carlo integration2**
Multiple importance sampling ||
| [task08](task08) | **Skeletal Character Animation**
Linear blend skinning, articulated rigid body ||
| [task09](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
- [[1] Introduction](http://nobuyuki-umetani.com/acg2024s/introduction.pdf)
- [[2] C++ programming](http://nobuyuki-umetani.com/acg2024s/cpp.pdf)
- [[3] Git+GitHub](http://nobuyuki-umetani.com/acg2024s/git.pdf)
- [[4] Digital Image](http://nobuyuki-umetani.com/acg2024s/digital_image.pdf)
- [[5] Rasterization in 2D](http://nobuyuki-umetani.com/acg2024s/rasterization_2d.pdf)
- [[6] Barycentric Coordinates](http://nobuyuki-umetani.com/acg2024s/barycentric_coordinates.pdf)
- [[7] Parametric Curve](http://nobuyuki-umetani.com/acg2024s/parametric_curve.pdf)
- [[8] Polynominal Root finding](http://nobuyuki-umetani.com/acg2024s/polynominal.pdf)
- [[9] Coordinate Transformation](http://nobuyuki-umetani.com/acg2024s/transformation.pdf)
- [[10] 2D Homogeneous Transformation](http://nobuyuki-umetani.com/acg2024s/transformation_homogeneous_2d.pdf)
- [[11] 3D Homogeneous Transformation](http://nobuyuki-umetani.com/acg2024s/transformation_homogeneous_3d.pdf)
- [[12] 3D Rasterization](http://nobuyuki-umetani.com/acg2024s/rasterization_3d.pdf)
- [[13] Graphics Pipeline](http://nobuyuki-umetani.com/acg2024s/graphics_pipeline.pdf)
- [[14] Shading](http://nobuyuki-umetani.com/acg2024s/shading.pdf)
- [[15] Subpixel Effect](http://nobuyuki-umetani.com/acg2024s/rasterization_subpixel.pdf)
- [[16] Implicit Modeling](http://nobuyuki-umetani.com/acg2024s/implicit_modeling.pdf)
- [[17]Ray Casting](http://nobuyuki-umetani.com/acg2024s/ray_casting.pdf)
- [[18]Monte Carlo Integration](http://nobuyuki-umetani.com/acg2024s/monte_carlo_integration.pdf)
- [[19]Ray Triangle Collision](http://nobuyuki-umetani.com/acg2024s/ray_triangle_collision.pdf)
- [[20]Character deformation](http://nobuyuki-umetani.com/acg2024s/character_deformation.pdf)
- [[21] Jacobian&Hessian](http://nobuyuki-umetani.com/acg2024s/jacobian.pdf)
- [[22] Optimization](http://nobuyuki-umetani.com/acg2024s/optimization.pdf)
- [[23] Mesh laplacian](http://nobuyuki-umetani.com/acg2024s/mesh_laplacian.pdf)
- [[24] Sparse linear system](http://nobuyuki-umetani.com/acg2024s/sparse_linear_system.pdf)
- [[25] Fluid simulation](http://nobuyuki-umetani.com/acg2024s/fluid_simulation.pdf)## Reading Material
- Introduction to Computer Graphics by Cem Yuksel](https://www.youtube.com/watch?v=vLSphLtKQ0o&list=PLplnkTzzqsZTfYh4UbhLGpI5kGd5oW_Hh)
- [Scratchpixel 2.0](https://www.scratchapixel.com/)
- [Awesome Computer Graphics (GitHub)](https://github.com/luisnts/awesome-computer-graphics)
- [Skinning: Real-time Shape Deformation SIGGRAPH 2014 Course](https://skinning.org/)
- [Physics-based Animation2023S (Another course by the instructor) ](https://github.com/nobuyuki83/Physics-based_Animation_2023S)
- [Physics-based Animation2021S (Another course by the instructor) ](https://github.com/nobuyuki83/Physics-based_Animation_2021S)
- [Applied Computer Graphics 2022S (The same course two years ago)](https://github.com/nobuyuki83/Applied_Computer_Graphics_2022S)