零基础如何学习计算机图形学?
零基础如何学习计算机图形学?
计算机图形学可以笼统的分为三个大方向,渲染rendering, 几何geometry和模拟simulation, 除掉三个大方向以外还有一些不那么主干的方向,比如3D打印3D printing, 数据可视化visualization,通用GPU编程(GPGPU)以及人机交互等等。
在2020年,三个大方向都有相当高质量的课程,并且都是大牛亲自上课。
1. 首先有UCSB闫老师出品(SIGGRAPH最佳博士论文奖得主,主攻Rendering)的Games101(现代计算机图形学入门),虽然里面包含了Rendering、Geometry和Simulation的内容,但是主要是Rendering入门,着重讲了光栅化(Rasterization)和光线追踪(Raytracing)的内容,几何和模拟都是简单带过,很适合初学者,也很容易看到很酷炫的效果。
GAMES101-现代计算机图形学入门-闫令琪
https://www.bilibili.com/video/BV1X7411F744?from=search&seid=16228307511649123560
2. 其次是由科大出品的数字几何处理-中国科学技术大学-傅孝明,主要是几何相关的内容,14个编程作业包你做到满意,刘利刚老师坐镇科大,也算是国内非常有名的图形学实验室了。
数字几何处理-中国科学技术大学-傅孝明
https://www.bilibili.com/video/BV1B54y1B7Uc?from=search&seid=13085399300730920132
3. 最后是由麻省理工学院 胡渊鸣出品的GAMES201:高级物理引擎实战指南2020,主要介绍了Taichi编程语言和物理模拟编程,这个可能是最难的,并不是单纯的CS课程,就我个人的观课体验,要跟上这门课coding能力是其次的,力学知识和数值计算知识是最需要的,论坛里各种流体力学的大神炫技,着实让人羡慕。
GAMES201:高级物理引擎实战指南2020
https://www.bilibili.com/video/BV1ZK411H7Hc?from=search&seid=5195290021208890151
如果一个初学者将以上三块拼图拼齐,自诩为图形学入门应当是问题不大。
最后强调一点,计算机图形学是一门综合多学科的活跃的研究性学科,不是朴素的工程实践。把计算机图形学和OpenGL/DirectX/Unreal4/Unity等等开发实践画等号是完全的错误。企图通过学习某某引擎,某某API,某某游戏开发来学习计算机图形学只能是管中窥豹。
这里再补充一些我读过的一些书面材料:
-
入门必读: 虎书 Fundamentals of Computer Graphics. Shirley的力作,大学经典教材,基本覆盖了图形学里需要的所有基础知识(几何上感觉欠缺了点)。
-
Shirley的三本小书,ray tracing in one weekend/one week/the rest of life. 指望着这三本书入门是不现实的,尤其是第三本,如果你没有看虎书的第14章(蒙特卡罗积分)和第20章(辐射度量学),基本上不太可能明白第三本书的原理。
-
PBRT,质量上佳。这本书是斯坦福CS348B的教材,开课老师是这本书的作者和Pat Hanrahan(19年图灵奖得主)。这本书适合于已经写过渲染器的人读,初学者翻开等于劝退。
-
OpenGL programming Guide. OpenGL红宝书。不如http://learnopengl.com和opengl官方文档。
-
smallpt(99行代码的光线追踪)。放弃它把,shirley的三本小书里的渲染器完成度更高。基本上是对Path tracing的最直接翻译, 知道了理论来看它并不难。
-
scrachpixels 文章有点零碎,质量不错,适合有知识点不懂的时候来查阅。
-
massively parallel processors。配合Udacity的CS344(Intro to Parallel Programming). 很好的cuda入门材料。
浙公网安备 33010602011771号