位置: 编程技术 - 正文

对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!

  • 企业避税和逃税的关系
  • 主营业务怎么计算
  • 未入账分期金额是什么意思
  • 增值税普票税额怎么算出来的
  • 银行存款日记账最后一行怎么填
  • 批量转账和代发工资
  • 生产车间职工工资
  • 企业接受外部劳务派遣用工支出税前扣除问题
  • 公益性支出所得税扣除比例
  • 现汇账户和现钞账户可以转账吗
  • 管理费用中的五项费用
  • 新办公司注册资金直接支付开办费吗
  • 租金发票会计分录
  • 收到运费发票是进项还是销项
  • 个人偶然所得捐赠扣除标准
  • 内部存货交易的抵消分录例题讲解
  • 个人所得税应纳税额计算表图片
  • win7如何打开管理员权限
  • php parse_url
  • 去年的发票忘记报销了 今年可以报销吗
  • 共享文档无法访问如何解决
  • 一般纳税人取得普票会计分录
  • 固定资产更新改造支出计入什么科目
  • 收到保险公司赔付的车辆维修费的会计分录
  • 人际关系定义是什么
  • vue中使用gojs
  • php常用设计模式(大总结)
  • 金融机构拆出资金的最长期限
  • 缴纳以前年度房产税会计分录
  • 公司制作横幅计入什么科目?
  • 使用vscode开发vue例子
  • php自动化脚本
  • 一篇文章让你了解什么
  • css3的模块结构和应用
  • 企业改制资产整合过程中涉及的土地增值税
  • 企业没有研发费用怎么做账
  • python统计出现次数并排序
  • Windows PostgreSQL 安装图文教程
  • centos执行sh
  • 可供出售金融资产名词解释
  • 水利建设基金的税率
  • 免税收入是否可抵扣
  • 餐具报损率一般为多少
  • 接受控股股东赠与的一项非货币性资产
  • 提取法定盈余公积金的比例是多少
  • 用党委的经费买房可以吗
  • 低值易耗品如何摊销
  • 被选为工会代表
  • 新注册的公司在企查查上查不到
  • 递延收入怎么做账
  • 物资采购是
  • t3用友年底结束怎么建下一年
  • 利润表季度申报本月金额却怎么填
  • 营改增后工程项目计价规则也随之发生了改变对还是错
  • sql server的数据库
  • mysql读写分离实现原理
  • 安装vista
  • windows查看电池信息
  • win7关机总是自动重启
  • linuxvim编辑器的用法
  • psdrvcheck.exe - psdrvcheck是什么进程 有什么用
  • Win7系统打开D盘文件后怎么没有后退箭头
  • windows8应用商店用不了
  • cocos2dx 3.0 beta android环境配置
  • xml文件网络传输
  • android yield
  • prototype用法
  • 重装操作系统后无法开机
  • arp如何绑定
  • JavaScript中的数据类型
  • android的数据储存方式
  • Python实现以时间换空间的缓存替换算法
  • javascript 默认参数
  • select ui
  • 微信扫码开票的记录怎么查询
  • 土地交易的印花税
  • 增值税申报表如何更正
  • 公共卫生委员会领导小组
  • 西安税务总局
  • 软件企业增值税即征即退政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设