如何在OpenGL中的GPU上访问纹理数据



我不完全理解GPU上访问纹理数据的方式。如果可能的话,有人能解释一下吗?

  1. 当纹理单元的数量受到限制时,这是否限制了我可以使用glGenTextures()生成并使用glTexImage2D()上传到GPU的纹理数量?或者它只是限制了使用glBindTexture()可以绑定的纹理单元的数量?

  2. 我真正想做的是能够将我的所有纹理上传到GPU——即使有超过可用纹理单元数量的纹理。当需要纹理时,我会使用glBindTexture()将其绑定到纹理单元。这可能吗?

Ad。1.纹理单位等于可以同时绑定的纹理数量。

Ad。2.这正是你想要的方法——你可以上传任意多的纹理,只绑定当前绘制调用所需的纹理。GPU驱动程序的工作之一是自动在GPU和系统的RAM之间分页所需的数据(即当前绑定的纹理的纹理像素)。

相关内容

  • 没有找到相关文章

最新更新