什么是计算机图形学中的镶嵌


16

在最近的游戏中,我注意到一种叫做“镶嵌”的东西,将其打开会破坏我的帧频。

我注意到,启用后它看起来像是“抗锯齿”。

有人可以给我更多有关GPU的功能的信息。


2
噢,亲爱的,有2个答案,还没有最好的图片计算机图形专家。
joojaa

Answers:


25

镶嵌是一项技术,可让您在图形卡上生成图元(三角形,直线,点等)。具体来说,它使您可以将当前几何图形反复细分为更精细的网格。

这样,您就可以在图形卡上加载相对较粗的网格,动态生成更多的顶点和三角形,然后在屏幕上显示一个看起来更加平滑的网格。

镶嵌示例

在大多数情况下,该细分会在每个单个帧中重新进行,这可能是启用此选项后帧速率下降的原因。

镶嵌是分多个阶段完成的,它是在顶点着色器之后完成的。

阶段

每个阶段的条款因API而异。在DirectX中,它是Hull Shader,Hardware Tessellation和Domain Shader。在OpenGL中,它们称为“镶嵌细分控制着色器”,“镶嵌细分基元生成”和“镶嵌细分评估着色器”。

第一个和最后一个阶段是可编程的,实际的镶嵌是由硬件在固定功能阶段完成的。

在Tesselation Control着色器中,设置细分的类型和数量。

然后,硬件镶嵌器根据“控制着色器”对几何进行划分。

最后,为每个新生成的顶点调用“镶嵌细分评估着色器”。在此着色器中,您可以设置要生成的图元的类型以及顶点的间距以及其他许多功能。就像顶点着色器一样,此着色器也可以用于执行各种基于顶点的计算。确保为每个生成的顶点至少调用一次。

如果要对基元做任何进一步的工作,可以添加几何着色器。


1
@Nicol谢谢。我相应地编辑了答案。
Dragonseel'2

7

它激活了管道中的3个阶段。

第一个是曲面细分控制着色器(D3D中的外壳着色器),它查看一组顶点,然后输出应如何将其划分为单独的三角形。

第二个是固定功能阶段,将生成所需的三角形。

第三阶段,细分细分评估着色器(D3D中的域着色器)针对每个生成的顶点运行,并将根据生成的顶点的重心坐标将其放置在正确的位置。

当网格距离相机更近时,此选项用于细节级别以生成更多三角形。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.