OpenGL ES 2.0 能否用一个纹理ID来绘制不同的纹理?

zxinlong 2015-11-04 10:37:03
在android中用Opengl来绘制纹理,通常做法是先生成每张纹理图片对应的ID号(调用GLES20.glGenTextures),然后设置采样和拉伸方式,再将纹理送入Opengl的显示库(调用GLES20.glTexImage2D),最终绘制的时候使用这个纹理ID号即可绘制出该纹理。

但是有个特殊情况,在用SurfaceTexture做Camera预览和视频播放的时候,这个SurfaceTexture仅仅通过构造函数传递进去一个纹理ID号,之后便可以通过该ID号来绘制不同的画面(来自Camera实时预览数据或者视频文件)。

那么问题来了:1:多张图片纹理,能否只生成一个纹理ID,就可以用这个ID来绘制不同的纹理呢?2:除了控制纹理大小这个方法,Opengl绘制过程中怎么解决纹理过多造成的内存不足问题呢?

非常感谢热心朋友的指点。
...全文
196 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxinlong 2015-11-20
  • 打赏
  • 举报
回复
引用 2 楼 birdsaction 的回复:
多个纹理对应多个纹理ID号。一个纹理绘制不同的数据是可以 但是数据是自己用shader代码修改颜色数据的,不能重新传入。 建议用多个纹理 代码也方便处理。 纹理过多需要及时销毁不必要的纹理。
原来是这样的啊,谢谢
zxinlong 2015-11-04
  • 打赏
  • 举报
回复
自己顶一个,希望大神的光临
Birds2018 2015-11-04
  • 打赏
  • 举报
回复
多个纹理对应多个纹理ID号。一个纹理绘制不同的数据是可以 但是数据是自己用shader代码修改颜色数据的,不能重新传入。 建议用多个纹理 代码也方便处理。 纹理过多需要及时销毁不必要的纹理。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧