OPENGL ES2.0如何不使用glActiveTexture而显示多个图片
https://www.oschina.net/question/253717_72107
用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个)的方法。
发现提的问题太简单呢还是太复杂了,还是太蛋疼了,怎么最近几个问题都没人答。不过这个问题我已经知道怎么解决了,顺便分享下。
原来在同一个framebuff下是可以直接用glBindTexture来选择纹理,但不同的framebuff下要使用glActiveTexture来设置不同的纹理空间做。哥又很SB的开了个多缓冲,结果只能通过这种SB的方式来显示。
--- 共有 1 条评论 ---


贴纹理还好, 不知道怎么旋转,旋转了 其他的都变了,不知道怎么对单个纹理平移 ,没有gl10好用评论(0)引用此答案举报

引用来自“hai046”的答案

这为大侠,小弟最近在学习Android opengl es2.0的相关知识 ,想做个地图应用,以前用canvas技术做了个,但是绘制图片多了就很卡.在网上找了很多都没用很有用的资料,就画了一张图片出来.可是多张图片一直没思路,又不想用opengl es1.1的方法.这位大侠能不能给点资料或opengl es2.0的小示例给小弟研究下啊? 请发我QQ邮箱;468164865@QQ.com. 小弟在此感激不尽,谢谢了.!!
--- 共有 1 条评论 ---

引用来自“zhaowenhao0456”的答案
这为大侠,小弟最近在学习Android opengl es2.0的相关知识 ,想做个地图应用,以前用canvas技术做了个,但是绘制图片多了就很卡.在网上找了很多都没用很有用的资料,就画了一张图片出来.可是多张图片一直没思路,又不想用opengl es1.1的方法.这位大侠能不能给点资料或opengl es2.0的小示例给小弟研究下啊? 请发我QQ邮箱;468164865@QQ.com. 小弟在此感激不尽,谢谢了.!!
画1张图跟画多张图是一样的,而且一个shader程序里能放几张纹理做sample是由你的显卡决定,并不是你想搞几张就几张,一般不是什么做多重纹理,纹理混合之类的效果shader程序一般不会弄几个纹理,所以为啥网上很多例子都是画一张图。
shader其实可以理解为一个自定义的绘图程序,比如说你画一张图,你首先写shader代码,该shader代码就是告诉显卡你的图片怎么画,然后你在c代码那边加载你的shader,然后绑定纹理,顶点,然后画出来,如果你画几张图只需要在加载完shader后,重复做绑定纹理,顶点,然后画出来这几个动作。(注意:这流程应该是绑定纹理,顶点,画;绑定纹理,顶点,画;....而不是绑定纹理,绑定纹理,顶点,顶点,画,画)
这个实例代码的话,其实最好就是去参与opengl es标准定制的芯片生产厂商那搜搜,比如英伟达,amd之类的,下面给你推荐个写的比较好的,而且周边工具都比较齐全的库,里面SDK所有的源代码都有,自己可以看看,个人觉得这个写的比英伟达上面的好,你可以去看下http://www.imgtec.com/powervr/insider/powervr-insider.asp现在苹果ipad,iphone以及三星很多机型都很用那个显示芯片,库里面带有齐全的demo程序,看完demo基本很多特效都会做。
OPENGL ES2.0如何不使用glActiveTexture而显示多个图片的更多相关文章
- Cocos2d-x中使用OpenGL ES2.0编写shader
这几天在看子龙山人的关于OpenGL的文章,先依葫芦画瓢,能看到些东西,才能慢慢深入了解,当入门文章不错,但是其中遇到的一些问题,折腾了一些时间,为了方便和我一样的小白们,在这篇文章中进行写补充. O ...
- iOS开发——图形编程OC篇&OpenGL ES2.0编程步骤
OpenGL ES2.0编程步骤 OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机.PDA和游戏主机等嵌入式设备而设 ...
- Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤
原文地址: Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤 - 网络资源是无限的 - 博客频道 - CSDN.NET http://blog.csdn.net/fen ...
- OpenGL ES2.0入门详解
引自:http://blog.csdn.net/wangyuchun_799/article/details/7736928 1.决定你要支持的OpenGL ES的版本.目前,OpenGL ES包含 ...
- Android +NDK+eclipse+opengl ES2.0 开启深度測试
參考:https://www.opengl.org/discussion_boards/showthread.php/172736-OpenGL-ES-Depth-Buffer-Problem 环境: ...
- OpenGL ES2.0 基本编程
1. EGL OpenGL ES命令须要一个rendering context和一个drawing surface. Rendering Context: 保存当前的OpenGL ES状态. Draw ...
- OpenGL ES2.0 入门经典例子
原文链接地址:http://www.raywenderlich.com/3664/opengl-es-2-0-for-iphone-tutorial 免责申明(必读!):本博客提供的所有教程的翻译原稿 ...
- OpenGL ES2.0基础入门
1.OpenGL ES 1.x渲染管线(又称为渲染流水线) (1).基本处理: 基本处理主要是设定3D空间中物体的顶点坐标.顶点对应的颜色.顶点的纹理坐标等属性,并且指定绘制方式. 常见的绘制方式有: ...
- Android使用OpenGL ES2.0显示YUV,您的手机上的数据要解决两个方面的坐标
如果说 ,我不知道,如果你不明白这个话题.连接到:http://blog.csdn.net/wangchenggggdn/article/details/8896453(下称链接①), 里面评论有非常 ...
随机推荐
- plsql programming 13 其他数据类型
bolean 类型 raw 类型, 用来保存和操作少量的二进制数据. urowid 和 rowid 类型, 这两种数据类型表示数据库的 rowid. 所谓 rowid 就是一个标识符-用来表示数据库中 ...
- 第一百八十节,jQuery-UI,知问前端--消息提示 UI
jQuery-UI,知问前端--消息提示 UI 学习要点: 1.HTML 部分 2.CSS 部分 3.jQuery 部分 通过前面已学的 jQuery UI 部件,我们来创建一个注册表单. html ...
- servlet部署到tomcat中
引用:http://blog.csdn.net/shuidao/article/details/1738059 配置,部署 servlet: 1. 在tomcat的安装目录下 找到webapps 文件 ...
- 根据funID,personID获取最新规划包项目相关信息
1.定义:根据funID,personID获取最新规划包项目相关信息(code projecttype(阶段) Pname(code+name) projectID) 项目表tbl_cfg_Proje ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.1——设置项目参数
问题: 开发的时候经常需要向项目中添加一些额外的参数或者硬编码的值. 解决方案: 使用ext块设置公用的值.如果需要从build文件中移除这些值,可以将参数放到gradle.properties文件中 ...
- python发送邮件(yagmail模块)
import yagmail user = 'xxxx@qq.com' passwd = 'xxxx' # 授权码,不是密码,需要在邮箱中设置,看邮箱类型,有的需要设置 res = yagmail.S ...
- activity通过流程实例id动态获取流程图并展示在jsp页面上
提供的Service方法如下: Java /** * 获取当前任务流程图 * * @param processInstanceId * @return */ @Override public Inpu ...
- HTML学习笔记——常用元素及其属性(二)
一.HTML表单 -- form标签 -- 与浏览者交互 1.form 标签 -- 代表HTML表单 form标签是成对出现的,以<form>开始,以</form>结束 属性. ...
- 《从零开始学Swift》学习笔记(Day 37)——默认构造函数
原创文章,欢迎转载.转载请注明:关东升的博客 结构体和类的实例在构造过程中会调用一种特殊的init方法,称为构造函数.构造函数没有返回值,可以重载.在多个构造函数重载的情况下,运行环境可以根据它的外部 ...
- <2013 08 12> Andrew:C语言的一点心得
C语言的特点在于,这是少见的中级语言(介于机器汇编和高级语言之间),因此它极其紧密地与特定机器架构.编译器.操作系统.库等基本概念相连.在底层,人们可以少量的甚至不使用汇编,但是不能不使用C.它以一种 ...
Android NDK