2012-03-21 96 views
5

我不完全理解在GPU上访问纹理数据的方式。如果可能 - 任何人都可以解释这些?在OpenGL中,GPU如何访问纹理数据?

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

  2. 我真正喜欢做的事是能够到我的所有纹理上传到GPU - 即使有比可用纹理单元的数量。当需要纹理时,我只需使用glBindTexture()将其绑定到纹理单元。这可能吗?

回答

4

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

Ad。 2.这正是要走的路 - 您可以随意上传尽可能多的纹理,并仅绑定当前平局所需的纹理。这是GPU驱动程序自动将所需数据(即当前绑定的纹理的纹理像素)分页到GPU和系统的RAM中的工作之一。

+0

太棒了 - 感谢您的帮助! :)这正是我所希望的! – user1081465 2012-03-21 12:31:37