Games101-Lecture 05 Rasterization 1 (Triangles)

重点归纳:

  1. 如何透视投影范围的定义
  2. MVP 之后的视口变换
    • 何为屏幕
    • 何为像素
  3. 一些绘制设备与显示设备
    • 隔行扫描技术
    • 帧缓冲
  4. 光栅化
    • 模型的表示
    • 采样
      • 边界情况
      • 如何减小计算规模
  5. 真实的像素

一、透视投影(续)

如何定义透视投影的四棱台的范围

- 长宽比(aspect ratio)
- 垂直的可视角度(vertical field-of-view)

水平可视角度和垂直可视角度的互相转换

二、视口变换(Viewport Transform)

在 MVP 变换完成后, 无论是正交投影还是透视投影都会得到一个标准立方体$\large Cube [-1 , 1]^3$

接下来要做的就是把这个标准立方体(Canonical Cube)绘制到屏幕上

1. 什么是屏幕?

- 由像素组成的一个数组
- 数组的大小被称为分辨率: 1080P、4K
- 屏幕是典型的光栅化显示设备
- 光栅一词来源于德语, 在德语中是屏幕的意思

2. 什么是像素?

- 在图形学中, 像素被抽象成显示颜色的最小单元
- 像素是红绿蓝(RGB)三通道的混合
- 像素是图元(picture element)的一种简称

3. 屏幕中像素的坐标表示?

- 以像素左下角的坐标来代表像素的坐标
- 像素中心的坐标需要在x、y轴方向偏移0.5

4. 视口变换(Viewport Transform)

- 将标准立方体的x、y轴坐标缩放到屏幕的分辨率
- z轴坐标不变

$$\large M_{viewport}=\left(\begin{array}{cccc} \frac{width}{2} & 0 & 0 & \frac{width}{2} \\ 0 & \frac{height}{2} & 0 & \frac{height}{2} \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right)$$

三、绘制设备与显示设备

绘制设备:

- 数控绘制机(CNC Sharpie Drawing Machine)
- 激光切割机(Laser Cutters)
- etc..

显示设备:

- 示波器(Oscilloscope)
- 阴极射线管(CathodeRay Tube)

隔行扫描技术

- 利用人眼的视觉暂留
- 一张只画奇数行, 一张只画偶数行
- 视频压缩也可以采取类似做法
- 缺点: 画面可能撕裂

帧缓冲: 将内存中的一块区域映射到屏幕上

其他显示设备:

- LCD(Liquid Crystal Display), 液晶显示器, 利用偏振过滤光
- LED, 发光二极管, 控制发光强度
- 墨水屏, 刷新率很低, 电极吸附带点墨水
- 视网膜屏幕, 分辨率超过人眼的屏幕

四、光栅化(Rasterization)

光栅化: 将模型的网格绘制到光栅显示设备, 把多边形拆成多个像素

1. 模型的表示

网格分为多边形网格、四边形网格、三角形网格等

三角形网格的优点

- 三角形, 最基本的多边形
- 其他的多边形都可以拆成三角形
- 三角形一定是在一个平面内
- 很好定义内外, 且容易叉积求得, 不像别的多边形可能有凹陷, 有洞
- 可以根据三角形三个顶点的属性得到三角形内部的点的属性(插值)

四边形网格的优点: 方便展 UV 等

2. 采样

空间中的点是连续的, 而屏幕上的像素是离散的, 那么就在将空间中的三角形绘制到屏幕上时需要进行采样

函数的采样

对像素中心进行采样

$$ indise(t, x, y)=\{\begin{array}{cc}1 & \text{Point(x,y) in triangle t}\\ 0 & otherwise\end{array}$$

1
2
3
for (int x = 0; x < xmax; ++x)
for (int y = 0; y < ymax; ++y)
image[x][y] = inside(tri,x + 0.5, y + 0.5);

边界情况

使用叉积来计算一个点是否在三角形内部, 如果该点在边界上, 则自己定义其在内部还是在外部, 一般遵循 top-left rule

减小计算规模

使用 AABB 包围盒(Axis-Aligend Bounding Box)来减少需要检查的像素数量

也可以使用增量三角形遍历的方式

五、真实的像素

像素内部结构

- 并非一个方块
- bayer pattern
- 绿色的密度最高, 人眼最能分辨绿色

Q: 这幅图有什么问题?

A: 采样率不够导致了走样, 需要抗锯齿

Games101-Lecture 05 Rasterization 1 (Triangles)

https://fly.meow-2.com/post/computer-graphics/Games101-05.html

作者

Meow-2

发布于

2022-06-01

更新于

2022-11-06


评论