在计算机科学的版图中,计算机图形学(Computer Graphics, CG)计算机视觉(Computer Vision, CV) 长期以来被视为两个独立的山头。

如果你在大学里选课,它们往往属于不同的实验室;如果你在招聘网站上投递简历,它们分属不同的岗位描述。初学者通常这样区分:

  • CG 是“无中生有”:从数据描述(几何、材质、光照)生成图像。
  • CV 是“管中窥豹”:从图像反推数据描述(识别对象、重建三维、理解语义)。

然而,当你在这两个领域深耕数年后,终会迎来一个顿悟时刻:你不再将它们看作互逆的过程,而是看到了一套统一的数学与物理法则在不同方向上的流动。所谓的CG与CV,不过是光线在数字世界中的“正向演绎”与“逆向归纳”。

这是一场关于“同宗同源”的探索。

1. 镜像双生:f(x)f(x)f(x)f−1(x)f^{-1}(x)f1(x)

最直观的顿悟,往往来自于数学公式的对称性。

如果我们把世界抽象为一个函数 I=f(S,L,C)I = f(S, L, C)I=f(S,L,C),其中:

  • SSS 代表场景几何与材质 (Scene Geometry & Materials)
  • LLL 代表光照 (Lighting)
  • CCC 代表相机参数 (Camera)
  • III 代表最终生成的图像 (Image)

计算机图形学(CG)的核心任务是求解 fff(渲染方程)。通过物理模拟、光栅化或光线追踪,计算出 III。这是一种正向过程

计算机视觉(CV)的核心任务则是求解 f−1f^{-1}f1(逆渲染/逆问题)。给定 III,试图解算出 S,L,CS, L, CS,L,C 中的一项或多项。这是一种逆向过程

顿悟点:
CV 中最棘手的难题(如不适定问题 Ill-posed problems),往往是因为 CG 中的信息丢失(3D投影到2D时的深度丢失)。理解了 CG 如何丢弃信息,才能在 CV 中设计出更好的先验(Priors)来找回信息。

2. 数学的血脉:同一个矩阵,不同的读法

当你深入代码层面,你会发现两者的“血缘”通过数学库紧密相连。

  • 线性代数是通用的语言:无论是 OpenGL 中的 ModelViewMatrix,还是 OpenCV 中的相机内参矩阵 KKK 和外参矩阵 [R∣t][R|t][Rt],它们描述的是同一个几何变换。CV 中的 SLAM(同步定位与建图)本质上是在计算相机的运动轨迹,而这正是 CG 渲染管线中相机变换矩阵的逆运算。
  • 射影几何的统一:CV 工程师为了标定相机而在棋盘格上寻找的“消失点”,正是 CG 艺术家为了透视正确而在画板上拉出的“透视线”。

顿悟点:
当你能在脑海中自由切换“世界坐标系”到“相机坐标系”再到“像素坐标系”的变换,并且明白齐次坐标(Homogeneous Coordinates)为何同时存在于图形学管线和多视图几何中时,界限就开始模糊了。

3. 物理的共振:光路的可逆性

真正的融合发生在物理层面。

CG 追求的是“真实感渲染”(Photorealistic Rendering),其圣杯是渲染方程(The Rendering Equation, Kajiya 1986)
CV 追求的是“基于物理的视觉”(Physics-based Vision),其核心是理解光线如何与物体表面交互。

  • BRDF(双向反射分布函数)
    • 在 CG 中,你是 BRDF 的使用者。你设定“这是金属,粗糙度0.5”,然后计算光线反射。
    • 在 CV 中,你是 BRDF 的解算者。你看着一张照片说“这里有高光,且高光锐利,所以它是光滑表面”。

顿悟点:
最好的 CV 模型,往往内嵌了一个隐式的 CG 渲染器。例如,为了从单张照片重建人脸 3D 模型,算法内部实际上是在“尝试”渲染不同的人脸形状,直到渲染出的图像与输入照片像素误差最小。这被称为Analysis by Synthesis(综合分析法)

4. 边界的坍塌:可微渲染与 NeRF

如果说过去十年是深度学习统治 CV 的时代,那么最近五年,则是 CG 与 CV 彻底融合的时代。技术的进步强行打破了学科壁垒。

  • 可微渲染(Differentiable Rendering)
    这是连接两者的桥梁。它让图形学的渲染过程变得“可导”。这意味着我们可以通过比对图像的像素误差,利用梯度下降(Backpropagation)直接优化 3D 模型的网格、纹理或光照。CG 的渲染管线变成了 CV 神经网络的一层。

  • NeRF(神经辐射场)与 Gaussian Splatting
    这是“顿悟”的终极体现。NeRF 是什么?

    • 它输入是一堆照片(CV 任务:重建)。
    • 它的输出是一个可以从任意角度观看的 3D 场景(CG 任务:渲染)。
    • 它的中间表示既不是网格也不是点云,而是一个神经网络(MLP)。
      NeRF 证明了:理解(Vision)和 表达(Graphics)是可以被统一在一个权重矩阵里的。
  • AIGC 与 生成式 AI
    Sora 或 Midjourney 生成视频的过程,本质上是模型学习到了海量图像背后的物理规律、光影关系和透视原理。AI 并没有显式地建模 3D,但它通过学习“看”(CV),学会了“画”(CG)。

5. 结语:迈向“视觉计算” (Visual Computing)

当我们站在现在回望,计算机图形学和计算机视觉的分野,更多是受限于早期算力和算法的无奈之举。

  • 算力不足时,CG 只能用光栅化骗过眼睛,CV 只能用边缘检测提取特征。
  • 算力充裕时,CG 开始用光线追踪模拟物理,CV 开始用 Transformer 理解全局。

如今,随着 3D AIGCXR(空间计算)具身智能(Embodied AI) 的兴起,两者正在回归它们的共同本质——对视觉信息的全链路处理

未来的工程师,或许不再自称“图形学工程师”或“视觉算法工程师”,而是Visual Computing Engineer(视觉计算工程师)。因为在代码的深处,光线是射入还是射出,已经不再重要;重要的是,我们终于学会了在数字世界中,完整地复刻与理解这个光怪陆离的物理世界。

这,就是同宗同源的顿悟。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐