我目前正在处理一个着色器,其中顶点的数量不是由三角形的数量定义的,我的着色器每隔X个单位放置一个Cuber。
这意味着我事先无法知道它会创建多少个立方体,我不知道它会采用多少个顶点。
但是你必须放maxvertexcount[x]
。我应该在x
中添加什么?
我该如何解决这个问题?
注意:我是几何着色器的初学者,对它们几乎一无所知。
答案 0 :(得分:1)
你 做 知道每次调用需要多少个顶点(在输入中“取”)。
由原始拓扑定义;一个三角形(条带),例如取3和三角形相邻需要6.必须知道MaxVertexCount,因为每次调用你可以输出的顶点数有一个实现限制。
如果在单次调用中达到该限制,则必须强制GPU多次调用几何着色器(Shader Model 5.0功能)。 D3D将此过程称为"Geometry Shader Instancing",并使uint InstanceID : SV_GSInstanceID
标识正在执行的重复调用(实例)。
您对此问题的描述实际上难以明确回答,您是否可以包含一些HLSL代码来展示您实际上要做的事情?