Unity3D中的几何排放着色器

时间:2017-07-31 03:08:24

标签: unity3d shader geometry-shader

我正在尝试创建一个从网格的每个顶点发出四边形的cg着色器。我知道我正在制作一个几何着色器,但无法找到任何与Unity相配的几何加法着色器的文档或示例 - 大多数只修改顶点子着色器中的现有顶点。

对于网格上的每个顶点,我基本上都在寻找创建一个粒子系统,该粒子系统由在网格上每个现有顶点创建的四边形组成。

提前感谢任何指导或资源!

1 个答案:

答案 0 :(得分:0)

使用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_POINTS并接受单个顶点并输出4作为四边形(因此N将是{{1 }} 为了你)。另请参阅MSDN有关如何为其他输入声明4函数的文章。