位置: 编程技术 - 正文

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

  • 政府预算会计怎样调整跨年度结转
  • 长期股权投资中应采用成本法核算的是
  • 咨询公司所得税税负率是多少合适
  • 置换新房产支付资金怎么纳税?
  • 银行汇兑怎么做账
  • 房地产行业预缴税款
  • 高温补贴领取
  • 公司司机出车补贴
  • 补缴企业所得税滞纳金账务处理
  • 自然人销售固定资产
  • 公司税务注销了还有风险吗
  • 发票作废了还能认证吗
  • 2021装修法律
  • 收据做账税局认嘛
  • 7.1增值税普通发票怎么开?
  • 如何申报固定资产投资
  • 进项票也要缴纳印花税吗
  • 发票已认证开票方未报税要怎么作废?
  • 累计折旧是备抵类科目吗
  • php数组函数输出《咏雪》里有多少"片"字
  • 公司有长期挂账的说法吗
  • 电脑xmp是啥
  • 个人减免税政策6条
  • 企业合并按合并的法律形式分类
  • 没有购入发票可以开出发票
  • 公司清算债权债务如何清理
  • 生产成本的主要分析方法
  • 最小的成像传感器
  • 兰萨罗特岛的地理位置
  • php手机号隐藏中间四位
  • 什么叫财政专户返还方式
  • 季报表利润表本月怎么填
  • vue的简介
  • 21世纪20年代的中国
  • php处理304缓存
  • tar -xvf命令
  • 免征增值税的规定
  • 结转结余的概念
  • 停车费报销怎么说委婉
  • 公司出售固定资产的账务处理
  • 非同一控制下的长期股权投资入账价值
  • 建设工程的材料质量检测由谁负责
  • 工资薪金税务缴纳
  • 税前利润是否等于利润总额
  • 暂估和冲暂估分录
  • 金税盘注册码怎么查
  • 现金短缺与溢余的区别
  • 增值税专用发票几个点
  • 汇算清缴怎么弥补亏损怎么操作
  • 发放股票股利如何影响计算基本每股收益
  • 电子承兑汇票怎么查询
  • 小企业会计准则2023电子版
  • 资产总额怎么进行税务数据授权登记
  • 税票名称开错了有影响么
  • 本月应负担的修理费
  • 劳务报酬个税如何入账
  • win7系统资源管理器频繁未响应
  • ubuntu更换版本
  • iptables配置文件详解
  • commserver什么意思
  • Winaw32.exe - Winaw32是什么进程
  • WIN10系统中软件打开找不到网络共享盘
  • vim的配置文件名
  • linux如何更改默认的运行级别
  • mainwindow是什么程序
  • kworker进程如何解决
  • Linux操作系统网络及主机名配置
  • openssh教程
  • 在ubuntu上安装apache
  • windows7开始菜单
  • 简单模拟电路图
  • python在web上的应用
  • android时间轴实现
  • python日历查询系统
  • jquery将文本框设置为只读
  • 批处理系统的进程调度算法
  • js中生成随机数
  • javascript教程完整版
  • 如何在电子税务局看本月应申报的税
  • 如何查询纳税人识别号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设