Coder Social home page Coder Social logo

acg-yuanweizhang's Introduction

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

acg-yuanweizhang's People

Contributors

nobuyuki83 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.