我正在尝试通过glDrawElementsInstanced
调用在每个顶点上渲染具有不同高度的多重网格。
为此,我通过纹理传递了每个顶点的高度,但是我受到了巨大的限制,我不能传递超过16384个浮点的纹理。所以我以为我可以使用UBO,但是以同样的方式进行限制,那我该怎么办?还有其他方法可以将浮点数发送到每个实例的每个顶点吗?还是我必须使用其他渲染方法?
如果必须更改我的渲染方法,什么是最好的替代方法,以保持最佳性能?
答案 0 :(得分:1)
着色器存储缓冲区与UBO的缓冲区非常相似,但没有大小限制。或者,您可以考虑对纹理使用3D索引编制(即,使用2D纹理数组),或者简单地将渲染分为适合当前最大值的多个块。