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(下称链接①), 里面评论有非常 ...
随机推荐
- E - Leading and Trailing 求n^k得前三位数字以及后三位数字,保证一定至少存在六位。
/** 题目:E - Leading and Trailing 链接:https://vjudge.net/contest/154246#problem/E 题意:求n^k得前三位数字以及后三位数字, ...
- ptmalloc、tcmalloc和jemalloc
内存优化总结:ptmalloc.tcmalloc和jemalloc 转载 2017年09月05日 18:57:12 3674 转载于:http://www.cnhalo.net/2016/06/13/ ...
- 修改hadoop配饰文件文件后导致hive无法找到原有的dfs文件
修改了hadoop/etc/hadoop/core-site.xml文件中的 <property> <name>fs.defaultFS</name> <va ...
- JavaScript入门:004—JS凝视的写法和基本运算符
JS的凝视JS中加凝视和寻常写C#代码是几乎相同的.有//和/* */这两种.单行凝视使用双斜杠比如. <script type="text/javascript"> ...
- wpf数据绑定更新通知
类似于这样子的;大致的意思是:一个代码变量,通过改变变量的值,绑定这个变量的这个圆颜色也在变化 就是一种心跳效果 在网上数据触发的感觉不多,废了不少时间,这里做个总结 1:通知 class Notif ...
- Docker入门与应用系列(一)介绍与部署
Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...
- 网易2016研发project师编程题
http://www.nowcoder.com/test/970447/summary [编程题] 小易的升级之路 小易常常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a ...
- POJ 1848 Tree
Tree Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3506 Accepted: 1204 Description ...
- idea 全部报错找不到包
解决报错方法如下:
- 转:: 刺鸟:用python来开发webgame服务端(1)
来源:http://ciniao.me/article.php?id=9 --------------- 刺鸟原创文章,转载请注明出处 在开始之前,先简单描述一下项目的特点:我要实现的是一个mm ...