相关疑难解决方法(0)

glActiveTexture和glBindTexture之间的差异和关系

从我收集的内容中,glActiveTexture设置活动的"纹理单元".每个纹理单元可以具有多个纹理目标(通常为GL_TEXTURE_1D,2D,3D或CUBE_MAP).

如果我理解正确,你必须先调用glActiveTexture纹理单元(初始化为GL_TEXTURE0),然后将(一个或多个)"纹理目标"绑定到该纹理单元?

可用的纹理单元的数量取决于系统.我在我的图书馆看到最多32个枚举的枚举.我想这实际上意味着我可以拥有GPU的极限(我认为是这样)168)在任何时候GPU内存中都有32个纹理?我想还有一个额外的限制,我没有超过GPU的最大内存(据说是1 GB).

我能正确理解纹理目标和纹理单元之间的关系吗?假设我允许每个16个单位和4个目标,这是否意味着有16*4 = 64个目标的空间,或者它不能那样工作?

接下来,您通常要加载纹理.你可以通过这样做glTexImage2D.第一个参数是纹理目标.如果这样工作glBufferData,那么我们基本上将"句柄"/"纹理名称"绑定到纹理目标,然后将纹理数据加载到该目标中,从而间接地将其与该句柄相关联.

怎么样glTexParameter?我们必须绑定一个纹理目标,然后再次选择同一个目标作为第一个参数?或者,只要我们有正确的活动纹理单元,纹理目标是否不需要绑定?

glGenerateMipmap 也在目标上运行......目标必须仍然绑定到纹理名称才能成功?

然后,当我们要引起我们的对象上有一个纹理,我们要不要选择积极的纹理单元,然后一个纹理目标?或者我们选择一个纹理单元,然后我们可以从与该单元相关的4个目标中的任何一个中获取数据?这是让我很困惑的部分.

opengl textures

129
推荐指数
3
解决办法
3万
查看次数

标签 统计

opengl ×1

textures ×1