我不完全理解GPU上访问纹理数据的方式。如果可能的话,有人能解释一下吗?
-
当纹理单元的数量受到限制时,这是否限制了我可以使用
glGenTextures()
生成并使用glTexImage2D()
上传到GPU的纹理数量?或者它只是限制了使用glBindTexture()
可以绑定的纹理单元的数量? -
我真正想做的是能够将我的所有纹理上传到GPU——即使有超过可用纹理单元数量的纹理。当需要纹理时,我会使用
glBindTexture()
将其绑定到纹理单元。这可能吗?
Ad。1.纹理单位等于可以同时绑定的纹理数量。
Ad。2.这正是你想要的方法——你可以上传任意多的纹理,只绑定当前绘制调用所需的纹理。GPU驱动程序的工作之一是自动在GPU和系统的RAM之间分页所需的数据(即当前绑定的纹理的纹理像素)。