27 3D 图形(3D Graphics)

124 阅读4分钟

27. 3D 图形-3D Graphics_哔哩哔哩_bilibili

1. 简介

在第 27 集中,视频主要介绍了 3D 图形的基础知识和渲染技术。从基本的线框渲染和 3D 投影,到更加复杂的多边形填充、遮挡处理、光照算法和纹理映射,视频详细介绍了这些技术及其在计算机图形学中的应用。此外,还提到了 GPU 在加速 3D 渲染中的重要作用。

2. 从 2D 到 3D 图形

2.1 基本概念

在 3D 图形学中,点的坐标不仅包含 X 和 Y,还包含 Z 坐标。由于电脑屏幕是 2D 的,图形算法需要将 3D 坐标“拍平”到 2D 平面上,这个过程叫做 3D 投影。主要的 3D 投影类型包括:

  • 正交投影:平行线在投影中保持平行。
  • 透视投影:平行线在远处汇聚于一点,类似人眼看到的效果。

2.2 线框渲染

线框渲染 是一种将多边形的边用线条连起来的渲染方法。可以想象将筷子做成立方体,再用手电筒照射形成的影子。这种方法很基本,但在实际应用中,往往需要更加复杂的填充和渲染技术。

3. 多边形与网格

3.1 多边形选择

在 3D 图形中,复杂形状通常由三角形(多边形)构成,因为三点可以唯一确定一个平面,而其他形状不一定具备这种稳定性。因此,三角形是图形学中的基本构建块。

3.2 网格

由多个多边形组成的集合称为 网格。网格越密集,其表面越光滑,细节也越丰富。然而,这也会增加计算量,因此游戏设计者需要平衡模型的真实度与多边形数量。

4. 多边形填充

4.1 扫描线渲染

扫描线渲染 是一种经典的多边形填充算法,通过逐行计算多边形与扫描线的交点并填充像素。尽管这种方法有效率,但产生的锯齿效应需要用 抗锯齿 技术来改善。

4.2 抗锯齿

抗锯齿通过调整像素颜色来柔化锯齿边缘,改善绘图质量。这个技术在很多地方使用,例如字体和图标。

5. 遮挡处理

5.1 画家算法

画家算法 通过从远到近的顺序渲染多边形,类似画家先画背景再画前景元素。

5.2 Z-Buffering

Z-Buffering 是另一种遮挡处理方法,通过记录每个像素的深度(距离),在渲染时仅保留最近的多边形,大大提高了处理速度。

5.3 Z-Fighting

当两个多边形距离相同时,可能会出现 Z-Fighting,一种多边形闪烁的现象,这是浮点计算中常见的问题。

6. 光照与着色

6.1 光照模型

为了使 3D 场景更真实,需要对物体表面进行光照处理。平面着色(Flat Shading)是最基本的算法,会显著显示多边形边界,但有更高级的着色算法如高洛德着色(Gouraud Shading)和冯氏着色(Phong Shading),可以使表面看起来更平滑。

7. 纹理映射

纹理映射 是在多边形表面应用图案或图像的过程,通过将纹理图像的颜色映射到多边形表面,实现更丰富的视觉效果。

8. GPU 在 3D 渲染中的作用

现代图形处理离不开 GPU。GPU 专为图形计算设计,具有许多并行处理核心,例如 GeForce GTX 1080 TI 拥有 3584 个核心,能够每秒处理数亿个多边形,大幅加速 3D 渲染。

9. 总结

  • 3D 图形需要将 3D 坐标投影到 2D 平面。
  • 多边形(尤其是三角形)是构建 3D 模型的基本单元。
  • 扫描线渲染和抗锯齿技术在多边形填充中广泛应用。
  • 遮挡处理可通过画家算法或 Z-Buffering 实现。
  • 光照和着色技术提高了 3D 图形的真实感。
  • 纹理映射使表面细节更加丰富。
  • GPU 强大的并行处理能力使得快速 3D 渲染成为可能。

这些技术共同促成了现代 3D 图形的发展,丰富了我们的视觉体验。