位置: 编程技术 - 正文

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

  • 个人所得税财产租赁所得税率表
  • 工厂外包加工项目
  • 发票校验码被章盖住了
  • 国债利息收入免征增值税
  • 财务报表其他应付款为负数
  • 合伙企业转让股权需要其他股东同意吗
  • 以股东投资为基础
  • 在建工程进项税额
  • 产品不合格重新加工叫什么
  • 员工考试报名费计入什么科目
  • 个人取得投资收益是否缴纳个税
  • 小规模企业如何
  • 个体户金税盘清卡失败怎么办
  • 湖北个体户网上申报
  • 建筑 分包
  • 转结本月工资
  • win10怎么查看电池健康度
  • 公司送礼分录
  • 土建工程成本核算怎么做
  • vben admin框架怎么实现上传文件时拿到文件参数
  • 政策性搬迁的会计处理
  • 贷款房屋评估费怎么收
  • 原材料按实际成本核算的会计处理
  • 年底会计结账
  • php基本操作
  • 招标单位收取标书费多少钱
  • thinkphp5.0.23
  • 微前端Qiankun介绍
  • 安个小窝
  • php数组求最大值
  • 原生js实现promise.all
  • 个税系统为什么没有累计数据
  • 公司主营业务怎么介绍
  • 实际缴纳增值税和应缴纳增值税
  • python中if语句的用法
  • 固定资产一次性扣除政策
  • 承兑汇票是属于什么科目
  • 个体户取现金的几种方法
  • 市政绿化工程的施工方案
  • sqlldr并发
  • 累计扣除包括哪些
  • 车辆保险费用查询
  • 个人独资企业怎么交个人所得税
  • 翻唱歌曲发行至国外的好处
  • 房地产企业缴纳契税会计分录
  • 油卡预付卡发票能入费用吗怎么入账
  • 公司销售商品怎么做分录
  • 以前年度负债调整
  • 不同税率的产品可以开在同一张发票上吗
  • 小规模纳税人开专票税率是多少?
  • 支付广告费属于进项还是销项
  • 解缴税费
  • 现销和赊销加一起等于销售收入吗
  • 给员工租的房子水电费谁出
  • 国家也通过国有企业利用自己的财政资金
  • mysql 5.7.11 zip安装配置方法图文教程
  • win10升级电脑
  • win10系统如何关闭窗口特效
  • winxp显示设置
  • linux分区方案lvm
  • win8设置宽带连接
  • win8怎么彻底删除安装的软件
  • ftql
  • opengl cullface
  • Jquery ajax 同步阻塞引起的UI线程阻塞问题
  • 如何用css画三角形
  • cocos2dx HelloWorld代码分析
  • unity ui坐标
  • Android闹钟服务
  • 修改系统用户名为英文
  • Please ensure that adb is correctly located at 'D:Androidandroid-sdkplatform-toolsadb.exe' and
  • unity2d shader
  • javascript教程完整版
  • jquery mobile demo
  • python生成器send
  • 街道税务所职责和任务
  • 税务系统个人业务自传
  • 残疾人个人所得税减免政策2023
  • 公车补贴计入工资吗
  • 年终奖怎么报个税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设