|
|
@@ -1168,4 +1168,34 @@ layout (location = 3) in mat4 aInstanceMatrix;
|
|
|
|
|
|
这是因为 OpenGL 允许 **属性聚合**,当顶点属性是 `mat4` 时,OpenGL 会自动将其映射到连续的 4 个 `vec4` 属性
|
|
|
|
|
|
+### 抗锯齿
|
|
|
+
|
|
|
+超采样抗锯齿(Super Sample Anti-aliasing, SSAA)技术,通过比正常分辨率更高的分辨率(超采样)来渲染场景,当图像输出在帧缓冲中更新时,分辨率会被下采样(DownSample)至正常的分辨率。这些额外的分辨率会被用来防止锯齿边缘的产生,但是由于绘制更多的片段,会带来很大的性能开销
|
|
|
+
|
|
|
+#### 多重抗锯齿采样(MultiSample Anti-aliasing, MSAA)
|
|
|
+
|
|
|
+将屏幕理解为一个一个的像素格,每个像素的中心包含一个采样点,这个采样点被用来决定整个像素格的颜色
|
|
|
+
|
|
|
+| 三角形 | 渲染结果 |
|
|
|
+| --- | --- |
|
|
|
+|  |  |
|
|
|
+
|
|
|
+可以看到,一个采样点决定了整个像素格的颜色,最后导致的结果就是不光滑的边缘而显示的锯齿效果
|
|
|
+
|
|
|
+多重采样所作的就是将单一的采样点变为多个采样点(名称的由来)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+> 采样点数量可以任意,更多更多采样点可以带来更精确的覆盖率
|
|
|
+
|
|
|
+注意,使用 MSAA 仅仅是几何处理计算量增加,着色计算并没有变化。相比之下 SSAA 几何和着色计算都成倍增加
|
|
|
+
|
|
|
+> 在几何处理阶段需要对每个采样点进行**覆盖测试**和**深度测试**,但是对每个像素只进行一次着色计算
|
|
|
+
|
|
|
+不过 MASS 也有一定的局限性,如果像素内不同采样点的颜色差异较大,最后的结果可能会出现误差,最后出现伪影(如锯齿状高光)
|
|
|
+
|
|
|
+MASS 并没有消除锯齿,而是通过插值计算的方法使得观察物体时较为平滑
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|