一、图形学概述:从像素到世界的魔法

大家好,我是这门课的主讲。在图形学领域摸爬滚打了十几年,今天咱们来聊聊这个「用代码画画」的学科。

计算机图形学,说白了就是研究怎么用计算机生成、处理和显示图像。你看到的每一帧电影特效、每一个游戏画面、每一次VR体验,背后都是图形学在撑腰。

核心定义:计算机图形学(Computer Graphics)是研究如何利用计算机生成、处理和显示视觉信息的学科。它关注的是「从数据到图像」的整个过程。

1.1 发展简史:从线条到照片级真实

我刚开始学图形学时,翻到60年代的资料,觉得那会儿的「图形」简直像小孩涂鸦。但你别小看这些涂鸦,它们奠定了整个行业的基础。

  • 1960年代: Ivan Sutherland 发明了 Sketchpad,这是第一个交互式图形系统。嗯,那时候还没有鼠标,用的是光笔。
  • 1970年代: 出现了第一个光栅显示器和帧缓冲器。我记得有本书上说,当时1MB的显存要花几万美元。
  • 1980年代: 图形工作站兴起,皮克斯就是这时候成立的。他们用 RenderMan 渲染了第一部全CG短片。
  • 1990年代: GPU 诞生了!NVIDIA 的 GeForce 256 号称「世界上第一个GPU」。我当年攒钱买了一块,兴奋得睡不着。
  • 2000年代至今: 可编程渲染管线、光线追踪、深度学习超采样... 现在的图形技术已经能骗过你的眼睛。

我的经验: 学习图形学,一定要理解「硬件是怎么想的」。GPU 本质上是一个极度并行的计算器,你写的每一行 shader 代码,都会被成千上万个线程同时执行。

1.2 应用领域:图形学无处不在

你可能会问:「学这玩意儿能干啥?」我告诉你,能干的太多了。咱们一个一个看。

游戏

这是图形学最「亲民」的应用。从《我的世界》的方块到《赛博朋克2077》的霓虹灯,背后都是渲染管线的功劳。我曾经参与过一个手游项目,为了在低端机上跑出60帧,我们不得不把阴影贴图的分辨率砍到512x512。嗯,优化永远是个技术活。

影视

好莱坞大片里,你看到的爆炸、怪兽、外星人,十有八九是CG做的。《阿凡达》里潘多拉星球的每一片叶子,都是艺术家和工程师共同「种」出来的。我记得有个同事专门研究怎么渲染「毛发」,一干就是三年。

VR/AR

虚拟现实和增强现实,对图形学的要求极高。为什么?因为延迟超过20毫秒,人就会头晕。我测试过早期的VR设备,那感觉... 就像晕船。现在的技术好多了,但要做到「以假乱真」,还有很长的路要走。

科学可视化

这个领域可能不太为人所知,但非常重要。气象预报、分子结构、地质勘探... 这些数据如果不变成图像,普通人根本看不懂。我见过一个医学可视化项目,把CT扫描数据重建成了3D模型,医生可以直接「飞进」血管里看血栓位置。

领域 核心需求 典型技术
游戏 实时渲染、高帧率 延迟渲染、LOD、GPU 裁剪
影视 照片级真实、离线渲染 光线追踪、全局光照、毛发渲染
VR/AR 低延迟、高刷新率 异步时间扭曲、注视点渲染
科学可视化 数据准确、交互流畅 体渲染、等值面提取、大规模数据调度

避坑指南: 我曾经犯过一个错误——在科学可视化项目里直接用了游戏引擎的默认渲染设置。结果颜色映射完全不对,医生根本看不清病灶边界。记住:不同领域对「真实」的定义完全不同。游戏要「好看」,科学要「准确」。

1.3 知识体系总览

下面这张图,是我自己整理的图形学知识体系。你可以把它当成一张「地图」,后面每一章都会对应到其中的一个节点。

计算机图形学 数学基础 线性代数、微积分 几何、概率统计 渲染技术 光栅化、光线追踪 着色、纹理、阴影 几何处理 网格、曲线曲面 细分、简化 GPU 编程 Shader、CUDA 并行计算、优化 动画与仿真 骨骼、蒙皮、物理 粒子、流体 人机交互 输入、反馈、UI VR/AR 交互 应用领域:游戏 · 影视 · VR/AR · 科学可视化

这张图里,数学基础是「内功」,渲染、几何、GPU编程是「招式」,动画和交互是「应用」。咱们这门课会从内功开始练起,一步步走到招式。

学习建议: 别急着写代码。先花一周时间把线性代数和三维空间变换搞明白。我见过太多人上来就写 shader,结果连 MVP 矩阵都搞不清楚,debug 到崩溃。

1.4 为什么选择 GPU 渲染?

你可能会想:「CPU 也能渲染啊,为什么非要 GPU?」

原因很简单:。而且不是快一点点,是快几百倍。

CPU 是「全能选手」,什么都能干,但一次只能干几件事。GPU 是「专项选手」,只会干图形计算,但一次能干几千几万件事。你想想看,渲染一帧 1080p 的图像,需要处理 200 万个像素,每个像素又要做几十次计算。用 CPU 算,一秒钟能算几帧?用 GPU 算,一秒钟能算几百帧。

我在项目中遇到过最极端的例子:一个离线渲染任务,用 CPU 渲染一帧需要 2 小时,换成 GPU 光线追踪,只要 3 分钟。嗯,这就是差距。

核心观点: 现代图形学 = 数学 + 算法 + GPU 编程。这三样缺一不可。数学是「道」,算法是「法」,GPU 编程是「术」。道法术三者兼备,你才能写出真正高效的图形程序。

好了,第一章就到这里。记住我今天说的:图形学不是魔法,是数学和工程的结合。后面每一章,我都会带着你从原理到实践,一步步把「魔法」变成「手艺」。

专注资料整理