代码之家  ›  专栏  ›  技术社区  ›  Andrew Dupuis

Unity3D中的几何体发射着色器

  •  1
  • Andrew Dupuis  · 技术社区  · 7 年前

    我正在努力创建一个cg着色器,它从网格的每个顶点发射一个四边形。我知道我正在考虑制作一个几何体着色器,但找不到任何与Unity配合良好的几何体添加着色器的文档或示例-大多数只修改顶点子着色器中的现有顶点。

    提前感谢您的指导或资源!

    1 回复  |  直到 7 年前
        1
  •  0
  •   Draco18s no longer trusts SE    7 年前

    使用 old answer of mine elsewhere 作为基础,您需要以下内容:

    • #pragma geometry geom
    • [maxvertexcount(N)]
      void geom(triangle v2g IN[3], inout TriangleStream<g2f> triStream)

    注意,上面的示例一次采用完整的三角形,尽管 there are other types N 在注释中,就是告诉GPU要发送多少垂直图像。在我的例子中,我发送了12个(原始三角形中的每条边4个),在你的例子中,你可以使用GL_点,取一个顶点,输出4个四元(所以 可能是 4 MSDN 关于如何申报 geom 用于其他输入的功能。