位置: 编程技术 - 正文

对Android opengl ES世界坐标系和纹理坐标系的理解(安卓opengl es)

编辑:rootadmin

推荐整理分享对Android opengl ES世界坐标系和纹理坐标系的理解(安卓opengl es),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android opengles2.0,android opengl es教程,opengl es android,android opengles2.0,andriod opengl,andriod opengl,andriod opengl,andriod opengl,内容如对您有帮助,希望把文章链接给更多的朋友!

初学opengl ES,每一个教你在屏幕上贴图的opengl版hello world都有这么两数组:

但是几乎都不解释,所以我学的时候都不明白这些点为什么要这么写,前后顺序有没有什么规律。于是各种查资料试验,终于搞懂了。

1.坐标系

PS:本人学opengl es主要是为了2D贴图,所以不涉及Z轴

如图,图一是opengl的世界坐标系,这个基本没啥问题,主要是很多教程说纹理坐标是左下原点。实践得出在Android上应该是最右边的图那样,以左上为原点。 个人猜测纹理吧其实就是一组颜色点组成的数组,Android由于UI坐标是以左上为原点,所以把数组里颜色点的存储顺序改了一下,于是坐标系就不一样了。

2.示例代码

其中 GLES.glDrawArrays(GLES.GL_TRIANGLE_STRIP, 0, 4); 由于openglES本身就是opengl的缩略版,所以能直接画的形状就只有三角形,别的复杂的都要由三角形来组成。GLES.GL_TRIANGLE_STRIP指的就是一种三角形的绘制模式,对应这个顶点数组:

实际绘制的就是顶点1,2,3组成的三角形和顶点2,3,4组成的三角形合并成的一个矩形,如果有更多点,依次类推(比如有5个点,就是1,2,3 2,3,4 3,4,5三个三角形组成的图案)。如下图:

3.纹理顶点顺序

纹理的点和世界坐标的点之间是对应的:

对Android opengl ES世界坐标系和纹理坐标系的理解(安卓opengl es)

显示结果如图:

如图中箭头,opengl会把纹理中颜色顶点绘到对应的世界坐标顶点上,中间的点则按一定的规律取个平均值什么的,所以可见实际显示的图被上下拉伸了,因为原图是1:1,而在该程序里 GLES.glViewport(0, 0, width, height); 赋予的显示区域是高大于宽的(这里涉及到opengl世界坐标和屏幕坐标的映射,和本文主旨关系不大就不多说了)。

其实也就是只要世界坐标和纹理坐标数组里的点能够对的上,顺序不是问题 代码里的四组坐标的显示效果都是一样的:

不信的可以在这里都替换了试试:

为了加深理解,甚至可以玩点花样出来,比如这样

结果如下图:

4.Demo源码地址

版权声明:本文为博主原创文章,未经博主允许不得转载。

Tutorial2 Hello dot! 本文源自:

opengl 绘制绕远点转的飞机 1、绘制飞机方法draw_plane()voiddraw_plane(){floatscale=1.0f;glLineWidth(6.0f);glColor3f(1.0,0.0,1.0);glPushMatrix();glScaled(0.f*scale,0.f*scale,0.f*scale);glPushMatrix();glRotated(.0f,

opengl 4.X off-screen rendering openGL可以渲染屏幕的framebuffer,自然可以渲染不直接显示的framebuffer,把数据存入非直接显示的framebuffer中以便后续的渲染需求,或者直接存入纹理贴图te

标签: 安卓opengl es

本文链接地址:https://www.jiuchutong.com/biancheng/368433.html 转载请保留说明!

上一篇:作战仿真 基于 osg 含有态势显示 客户端(作战仿真理论与技术)

下一篇:Tutorial2 Hello dot!

  • 企业办税权限怎么授权给个人
  • 增值税调整 以前签的合同怎么办?
  • 主营业务收入明细表格模板
  • 管理费用和研发费用的区别
  • 员工预支工资账务处理
  • 违约金并用
  • 土地增值税清算的条件
  • 期末库存农产品进项转出如何算
  • 怎么开具商业承兑票据
  • 长期借款科目核算的是企业的长期借款本金和利息
  • 原材料呆滞物料处理方法
  • 年底给职工发啥实物
  • 贷款损失准备对不良贷款的比率称作
  • 退回以前年度费用怎么做帐
  • 个人账户可以转公户吗?
  • 单位日常发的钱都有哪些
  • 营改增成功案例
  • 冬虫夏草开票什么税率
  • 装饰工程收入属于劳务收入吗
  • 临时工工资作为人员成本如何做账
  • 房地产公司基础设施建设费包括哪些费用
  • 整体购买企业资产涉及哪些税
  • 可供出售金融资产是指什么
  • 个人买卖二手房增值税
  • 收到银行利息会计分录怎么做账
  • 将捐赠收入计入资本公积转增增值税
  • 个独企业生产经营所得税率
  • 营改增之前的增值税
  • 计提法定盈余公积分录并结转
  • 路由器怎么重置网络
  • 自己使用过的固定资产和旧货有什么区别
  • 公司内部收据能做凭证吗
  • 失控发票的企业怎么处理
  • 公司之间债务转让合法吗
  • 移动临时文件
  • newdot.exe - newdot是什么进程 有什么用
  • 公司已开工程发票怎么开
  • 建筑业预缴企业所得税税率
  • 出租其取得的不动产是什么意思
  • 艾叶泡脚的功效与作用及禁忌
  • 以非现金资产清偿债务的,债权人应当
  • 取得增值税发票的认证期限是多久?
  • 分公司怎么开独立开票
  • php有多简单
  • php获取数据
  • 2022前端面试题及答案
  • 常用激活函数及其导数
  • php实现评论回复功能
  • 在什么情况下要切除子宫
  • mongodb基本使用
  • 销售商品尚未发出会计分录
  • 往年补录情况
  • 税收分类编码是什么意思啊
  • 物业公司收取的电费怎么确认收入
  • 增值税纳税人放弃免税权的规定
  • 收到投资款如何申报印花税
  • 事业单位职工福利费
  • 客户退货,但不退货
  • 进项税额转出还要交税吗
  • 金税盘买发票还要填交验旧表吗?
  • sql排序分组语句
  • mysql的概念及作用
  • windows7与xp
  • bat批处理命令大全
  • jquery中checkbox使用方法简单实例演示
  • vue组件的使用步骤
  • vue组件精讲
  • jquery动态添加的元素怎么添加事件
  • javascript 语言精粹(修订版)
  • javascript例题
  • js重要知识点
  • python字典x in d
  • HTTP之Range理解
  • 领导班子和领导干部年度考核
  • 广东省退休公务员死亡抚恤金和丧葬费标准
  • 农民专业合作社法
  • shell ftp -n
  • 内蒙古国地税联合办税服务厅
  • 草原补偿标准
  • 纳税人分类分级管理办法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设