纹理或UBO的大小限制,需要帮助才能找到其他解决方案

时间:2019-07-12 00:11:55

标签: opengl

我正在尝试通过glDrawElementsInstanced调用在每个顶点上渲染具有不同高度的多重网格。

为此,我通过纹理传递了每个顶点的高度,但是我受到了巨大的限制,我不能传递超过16384个浮点的纹理。所以我以为我可以使用UBO,但是以同样的方式进行限制,那我该怎么办?还有其他方法可以将浮点数发送到每个实例的每个顶点吗?还是我必须使用其他渲染方法?

如果必须更改我的渲染方法,什么是最好的替代方法,以保持最佳性能?

1 个答案:

答案 0 :(得分:1)

着色器存储缓冲区与UBO的缓冲区非常相似,但没有大小限制。或者,您可以考虑对纹理使用3D索引编制(即,使用2D纹理数组),或者简单地将渲染分为适合当前最大值的多个块。