使用曲面细分对带有孔的四边形进行三角测量

Jor*_*jon 5 opengl graphics shader tesselation geometry-shader

是否可以使用tesselation着色器对带有孔的四边形进行三角测量?例如,

在此输入图像描述 在此输入图像描述 在此输入图像描述

  1. 想象一下,我有一个Quad.
  2. 然后我想在四边形的中心打个洞.
  3. 需要有更多的顶点来制作这个洞.

问题是:

  • 我可以使用Tessellation着色器吗?如果是这样,怎么样?
  • 我应该使用几何着色器吗?

din*_*ony 2

这不是曲面细分着色器的典型应用,也不是所做的事情。基本上,您有一个粗糙的 3D 模型,它会传递到您的显卡。显卡实际上实现了曲面细分算法,该算法通过对图元进行曲面细分来创建更精细的 3D 模型。

您必须提供两个着色器:曲面细分控制着色器和评估着色器(在 OpenGL 术语中)

在曲面细分控制着色器中,您可以“参数化”曲面细分算法(内部和外部曲面细分因子等)。然后应用曲面细分算法。此后,曲面细分评估着色器用于例如为精细顶点插值顶点属性。

你想做的事情让我想起了CSG(http://en.wikipedia.org/wiki/Constructive_solid_geometry)。曲面细分着色器确实会创建新数据,但您可以只参数化算法。您无法“实现”曲面细分算法。广告几何着色器:确实,您可以发出(有限数量的)新基元,但它也不适用于您的问题。