我正在尝试创建一个从网格的每个顶点发出四边形的cg着色器。我知道我正在制作一个几何着色器,但无法找到任何与Unity相配的几何加法着色器的文档或示例 - 大多数只修改顶点子着色器中的现有顶点。
对于网格上的每个顶点,我基本上都在寻找创建一个粒子系统,该粒子系统由在网格上每个现有顶点创建的四边形组成。
提前感谢任何指导或资源!
答案 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
函数的文章。