小编agn*_*u17的帖子

glUseProgram之间的OpenGL纹理绑定

我正在Android上的OpenGL ES 2.0中实现一个引擎.我有多个着色器,对象可以采用多个纹理.

我的目标是最小化对OpenGL的纹理绑定调用,因此我保留每个着色器的当前绑定纹理列表,并且仅glBindTexture()在纹理更改时调用.

例如,我有一个天空盒着色器,我只用它绘制一个对象(天空盒立方体),然后这个着色器在其生命周期中只需要一个纹理绑定.

当我绘制具有相同纹理的多个对象时,也可以获得收益.

我的症状是,如果我在绘制之前不重新绑定天空盒纹理,则在天空盒上使用不同的(先前绘制的)对象的纹理.此先前绘制的对象使用不同的着色器.

因此,当我再次使用着色器程序时,恢复纹理绑定是错误的吗?

ps.:我对天空盒使用单个2d纹理,而不是立方体贴图.

android opengl-es

2
推荐指数
1
解决办法
1345
查看次数

标签 统计

android ×1

opengl-es ×1