opengl - 使用曲面分割对带有孔的四边形进行三角剖分

标签 opengl graphics shader geometry-shader tesselation

是否可以使用镶嵌着色器对带有孔的四边形进行三角剖分?例如,

enter image description here enter image description here enter image description here

  • 假设我有一个 Quad。
  • 然后我想在四边形的中心打一个洞。
  • 需要更多的顶点来制作那个洞。

  • 以及问题:
  • 我可以使用 做到这一点吗?镶嵌 着色器?如果是这样,如何?
  • 我应该使用 几何 着色器?
  • 最佳答案

    这不是曲面分割着色器的典型应用,也不是这样做的。基本上,你有一个粗略的 3d 模型,它被传递到你的显卡。显卡实际上实现了曲面分割算法,它通过曲面分割图元创建了更精细的 3d 模型。

    您必须提供两个着色器:镶嵌控制和评估着色器(在 OpenGL 术语中)

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

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

    关于opengl - 使用曲面分割对带有孔的四边形进行三角剖分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16629854/

    相关文章:

    math - 着色器语言中的逆FFT?

    opengl - GL_R16 和 GL_R16UI 之间的区别?

    opengl - 用opengl写阿拉伯语文本

    c++ - 将绘图窗口 "deeper"的控制传递给程序?

    Java Applet 不适用于 Eclipse 中的任何代码

    python - Python 中的简单 3D 图形

    c++ - 受窗口大小影响的 OpenGL 帧缓冲区

    opengl - 有没有超过 GL_MAX_VIEWPORTS 的有效方法?

    c - 使用绘图库制作 GUI

    opengl - 如何将固定功能 Material 和光照传递给片段着色器?