# GAMES101

## Course Introduction

- **University**: University of California, Santa Barbara (UCSB)
- **Prerequisites**: Linear Algebra, Advanced Mathematics, C++
- **Programming Language**: C++
- **Course Difficulty**: 🌟🌟🌟
- **Estimated Study Time**: 80 hours

Official Introduction:

> This course comprehensively and systematically introduces the four major components of modern computer graphics: (1) rasterization imaging, (2) geometric representation, (3) the theory of light propagation, and (4) animation and simulation. Each aspect is explained from basic principles to practical applications, along with the introduction of cutting-edge theoretical research. Through this course, you can learn the mathematics and physics behind computer graphics and enhance your practical programming skills.
> As an introduction, this course aims to cover as many aspects of graphics as possible, clearly explaining the basic concepts of each part to provide a complete, top-down understanding of computer graphics. A global understanding is crucial; after completing this course, you will realize that graphics is not just OpenGL or ray tracing but a set of methods for creating virtual worlds. The title of this course also contains the word "modern," indicating that the knowledge imparted is contemporary and essential for the modern graphics industry.

GAMES101 is a well-known graphics course in China. Unlike the traditionally math and algorithm-heavy perception of graphics, this course introduces the field of graphics in a very vivid way.

Each project is not code-heavy but is quite interesting. Through these projects, students will implement simple rasterization to render basic models and ray tracing for better rendering quality. Each project also includes optional extensions to enhance the quality and speed of the rendered models.

If you enjoy gaming, you might be familiar with real-time ray tracing, a technology that the course instructor, Lingqi Yan, has directly contributed to. By following the course videos and completing each project, you'll likely develop a strong interest in graphics and modern rendering techniques, just as I did.

## Course Resources

- **Course Websites**: [GAMES101](http://games-cn.org/intro-graphics/), [GAMES101](https://sites.cs.ucsb.edu/~lingqi/teaching/games101.html)
- **Course Videos**: [Bilibili](https://www.bilibili.com/video/BV1X7411F744?p=1), [Official Site](http://games-cn.org/graphics-intro-ppt-video/)
- **Course Textbook**: Fundamentals of Computer Graphics
- **Course Assignments**: [8 projects](http://games-cn.org/forums/topic/allhw/)

## Resource Summary

All resources and homework implementations used by @ysj1173886760 during the course are compiled at [ysj1173886760/Learning: graphics/GAMES101 - GitHub](https://github.com/ysj1173886760/Learning/tree/master/graphics/GAMES101).