Berkeley CS184: 计算机图形学导论
简介
UC Berkeley 的计算机图形学课程,由 Ren Ng 教授主讲。课程涵盖图形学三大核心领域:建模(Modeling)、动画(Animation)、渲染(Rendering)。学生将通过一系列编程项目,从零构建完整的图形学系统,包括 3D 模型加载、物理模拟、光线追踪等。
CS184 的特点是理论与实践并重:每个知识点都对应一个动手项目,让你在实践中理解图形管线的每个环节。课程使用 C++ 和 OpenGL,要求学生具备一定的编程基础。
先修要求
- C++ 编程能力:课程项目使用 C++,需要熟悉指针、内存管理、面向对象
- 线性代数:矩阵变换、向量运算是图形学的基础数学工具
- 微积分:理解光照模型和物理模拟需要基本的微积分知识
- 数据结构:树、图等数据结构在场景图和加速结构中广泛使用
难度
🌟🌟🌟🌟(中高)
课程有一定数学和编程门槛,但讲解清晰,项目设计合理,适合有一定基础后学习。
学时
约 80-100 小时(15 周课程,每周约 5-7 小时)
- 课堂讲授:每周 2 小时
- 编程项目:每周 3-5 小时(共 5 个项目)
- 阅读和复习:每周 1-2 小时
课程资源
- 课程主页:inst.eecs.berkeley.edu/~cs184/
- 课程视频:YouTube 上有部分学期的录像
- 项目代码:GitHub 上有开源的项目框架
自学建议
-
按顺序完成每个项目。 CS153W 的项目设计是递进的,每个项目都建立在前一个的基础上。不要跳过任何一个。
-
先理解数学,再写代码。 在做每个项目前,先确保你理解了背后的数学原理。比如做光线追踪前,先搞懂光线-三角形求交的几何推导。
-
善用调试工具。 图形学调试很痛苦——一个错位的矩阵可能让整个场景消失。学会使用
printf调试法,逐步验证每个变换的结果。 -
参考 Real-Time Rendering。 课程推荐的参考书《Real-Time Rendering》是实时渲染领域的圣经,建议配合课程阅读相关章节。
-
结合 Godot 实践。 你在用 Godot 4 做游戏开发,可以尝试将 CS184 中学到的渲染技术应用到 Godot 的自定义着色器中,加深理解。