镶嵌与几何着色器


11

如果我错了,请纠正我,但是“几何着色器”和“细分曲面着色器”作业都将在“图形管线”中生成顶点。我想知道的是它们之间的区别,何时应该在另一个之上使用?


6
我懒得写一个完整的答案,但要点是Geometry Shader适用于非常小的固定放大水平,其中Tessellation阶段适用于大规模的动态多边形放大
MickLH 2014年

Answers:


14

实际上,几何着色器(GS)的“任务”是原始评估。

几何着色器可以进行镶嵌处理,但受到以下限制:a)输出元素数量的进程内上限,以及b)在单个着色器中执行...当然,着色器实例化可以缓解第二个问题,但是总体而言,几何着色器是在原始评估和/或值插值方面,它们比镶嵌细分时更有效。

相比之下,镶嵌着色器(TS)专门用于执行几何致密化,因此它们表现良好,对不断扩大的算法阵列具有鲁棒性(双关语意味深远),并且不受输出边界缓冲区的限制。

DanielRákos在GS / TS演进方面有一篇不错的文章:硬件细分的历史

何时应用每种情况都是“使用正确的工具完成工作”的一种情况,方法如下:在没有镶嵌处理程序的情况下构建粗略的草稿管道,以便在VS / GS / FS中正确评估基元。分别调整基于视图或场景的细分的范围,然后将TS插入GS之前以使原始图元致密,然后将其传递给您已经设计的GS。如果您想尝试其他TS,然后建立替代方案并将其交换到管道中,甚至可以使用实例化GS根据基元的属性动态选择正确的TS!

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.