OPENGL ES2.0如何不使用glActiveTexture而显示多个图片

cut 发布于 2012/10/04 16:37
阅读 11K+
收藏 0

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

用opengl es 2.0显示多个图片的话,我只会一种方式,先将图片生成纹理,然后用下面的方式渲染

// 第一张图
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, iTexID1);
glUniform1i(ProgramID, 0);
//....设置顶点
//.....glDrawArrays或者glDrawElements
// 第二张图
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, iTexID2);
glUniform1i(ProgramID, 1);
//....设置顶点
//.....glDrawArrays或者glDrawElements

虽然这种方法可以画出多个图片,但存在个问题,GL_TEXTURE0的最大值跟硬件有关,而标准的OPENGL ES2只有32个,难道说超过32个图片就不能画?

如果光是glBindTexture绑定纹理,不使用glActiveTexture的话,画出来的模型全是用同一个纹理。

求教一种可以绘制方法,不使用glActiveTexture,也可以画出多个图片。或者使用标准OPENGL ES 2.0接口并不使用OPENGL扩展属性前提下,显示多图片(超过32个)的方法。

加载中
0
cut
cut

发现提的问题太简单呢还是太复杂了,还是太蛋疼了,怎么最近几个问题都没人答。不过这个问题我已经知道怎么解决了,顺便分享下。

     原来在同一个framebuff下是可以直接用glBindTexture来选择纹理,但不同的framebuff下要使用glActiveTexture来设置不同的纹理空间做。哥又很SB的开了个多缓冲,结果只能通过这种SB的方式来显示。

yanweimin7
yanweimin7
。。。,我现在也是bind多次,请问下,我有两张图,怎么只开一个缓冲。
0
自由星空
自由星空
看帖回帖是一种美德。
0
h
hai046
贴纹理还好, 不知道怎么旋转,旋转了  其他的都变了,不知道怎么对单个纹理平移  ,没有gl10好用
0
cut
cut

引用来自“hai046”的答案

贴纹理还好, 不知道怎么旋转,旋转了  其他的都变了,不知道怎么对单个纹理平移  ,没有gl10好用
纹理怎么会旋转啊,旋转的是被绑定多边形,好不好,shader代码里对多边形的定点使用翻转矩阵进行变换就转起来了,gl10神马滴都弱暴了,老拿着那out的技术不放没什么好处,现在手机gpu都是shader核的了
0
zhaowenhao0456
zhaowenhao0456
该评论暂时无法显示,详情咨询 QQ 群:点此入群
cut
cut
opengl官网有,我手上只有个蓝宝书的电子版的,网上一堆下的,那个也是opengl官网推荐的参考书,2.0以后跟1.0不一样的就是将矩阵变换,着色处理放到shader上做而已,有1.0的基础上手很快的。
0
cut
cut
该评论暂时无法显示,详情咨询 QQ 群:点此入群
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部