Skip to content

The homework for GAMES101: Introduction and Fundamentals of Computer Graphics.

Notifications You must be signed in to change notification settings

XuanInr/GAMES101-Homework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GAMES101-Homework

This project is the homework for GAMES101: Introduction and Fundamentals of Computer Graphics. Thanks to Prof. Yan for giving me the opportunity to appreciate the brilliance of computer graphics.

Homepage:GAMES101 Homepage
Course on Bilibili:GAMES101 Lectures

  • Homework 0: Basis
    Environment configuration and library Eigen foundation.
    The homework for the course uses a virtual machine environment, and this project uses Windows with Visual Studio + Eigen + OpenCV.

  • Homework 1: Transformation
    Fundamentals of linear transformation. The main content includes the perspective projection matrix and the MVP transformation.
    The homework involves drawing a triangle and controlling its rotation using the keyboard, as shown in the following figure:
    Hw1

  • Homework 2: Rastzerization
    Fundamentals of rasterization. The main content includes determining pixel and triangle positions, signal analysis and anti-aliasing, and Z-buffer.
    The homework involves drawing and coloring two triangles and judging the relationship between them, as shown in the following figure:
    Hw2

  • Homework 3: Shading
    Fundamentals of shading. The main content includes the Blinn Phone lighting model, barycentric coordinates, bilinear interpolation and texture mapping.
    The homework requires the drawing of a given model and texture mapping. The lighting model is used to calculate the illumination of the object firstly. Then, the rendering accuracy is improved by interpolating the barycentric coordinates, and finally the texture is drawn by using the texture map.
    The first part of this homework is shown in the following figure:
    Hw3_p1
    Other methods of shading. Bump mapping achieves virtual distance changes by perturbing local positions without modifying the model. Displacement mapping achieves ideal results by applying distance changes to the vertices of the mesh.
    The second part of this homework is shown in the following figure:
    Hw3_p2

  • Homework 4: Geometry
    Fundamentals of geometry. The main content includes implicit and explicit representations of geometric models, Bezier curves and surfaces, mesh subdivision and mesh simplification.
    The homework requires drawing a Bezier curve with four artificially placed control points, as shown in the following figure:
    Hw4

  • Homework 5: Ray Tracing
    Fundamentals of Ray Tracing. The main content includes Whitted-style ray tracing, the MT algorithm for finding intersections between rays and triangular surfaces.
    The homework requires completing the rendering result of the Whitted-style ray tracing, as shown in the following figure:
    Hw5

  • Homework 6: BVH
    Fundamentals of Ray Tracing. The main content includes the creation of bounding boxes, spatial partitioning and object partitioning.
    The homework requires the implementation of the BVH algorithm to determine the intersection between the ray and objects, as shown in the following figure:
    Hw6

  • Homework 7: Path Tracing
    Fundamentals of path tracing. The main content includes radiometry, Monte Carlo integration, and path tracing algorithms.
    The homework requires implementing a path tracing algorithm and rendering the Cornell Box model. The tasks are completed according to the pseudo code in the document, but the effect is not yet perfect, as shown in the following figure:
    Hw7

About

The homework for GAMES101: Introduction and Fundamentals of Computer Graphics.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published