几何着色器,MaxVertexCount无法知道

时间:2014-06-06 13:05:51

标签: shader direct3d hlsl geometry-shader

我目前正在处理一个着色器,其中顶点的数量不是由三角形的数量定义的,我的着色器每隔X个单位放置一个Cuber。

这意味着我事先无法知道它会创建多少个立方体,我不知道它会采用多少个顶点。

但是你必须放maxvertexcount[x]。我应该在x中添加什么?

我该如何解决这个问题?

注意:我是几何着色器的初学者,对它们几乎一无所知。

1 个答案:

答案 0 :(得分:1)

知道每次调用需要多少个顶点(在输入中“取”)。

由原始拓扑定义;一个三角形(条带),例如取3和三角形相邻需要6.必须知道MaxVertexCount,因为每次调用你可以输出的顶点数有一个实现限制。

如果在单次调用中达到该限制,则必须强制GPU多次调用几何着色器(Shader Model 5.0功能)。 D3D将此过程称为"Geometry Shader Instancing",并使uint InstanceID : SV_GSInstanceID标识正在执行的重复调用(实例)。

您对此问题的描述实际上难以明确回答,您是否可以包含一些HLSL代码来展示您实际上要做的事情?