位置: 编程技术 - 正文

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

  • 划转国有划拨土地要交契税吗?
  • 营业账簿印花税怎么交
  • 进项税额转出是在当月还是回到所属期
  • 个税三代手续费返还增值税报表怎么填
  • 向个人账户汇款选项
  • 购车税叫什么
  • 商场返现活动怎么入账
  • 应收账款因质量不符合退货应该实施什么审计程序
  • 个人转让住宅要交哪些税
  • 开票与实际收款不一致有什么风险
  • 进项发票当月不抵扣怎么入账
  • 门店装修会计怎样处理帐?
  • 营改增后商品房销售合同印花税的计税依据是什么?
  • 收取的职工房租如何入账
  • 免税发票可以抵多少税
  • 防伪税控技术维护费是进项还是销项
  • 固定资产进项税额怎么抵扣
  • 单位参加城镇职工基本养老保险缴费基数怎么填写
  • 未在规定期限内发出追索通知
  • 零申报的企业资产负债表
  • 应交税费未交增值税怎么计算
  • 同一个单位,应收应付都有,怎么调账
  • 滴滴发票报销是什么意思
  • 向境外支付违约金要代扣税吗
  • 事业单位工程岗位职责
  • 华为手机怎么删除多余的桌面
  • 存量资金上缴国库是哪个文件规定了
  • 苹果关闭safari
  • PHP:mb_encoding_aliases()的用法_mbstring函数
  • 个体户流水过大怎么避税
  • 房东压我押金怎么办
  • win10蓝牙共享网络给手机
  • 修改配置文件是什么意思
  • 混合筹资的定义
  • chart.js教程
  • php获取文件内容的函数
  • php过滤sql注入
  • 包装物应交消费税
  • 用jsp实现用户登录验证
  • 正规现金收款收据怎么写
  • 哪些企业不需要做安评
  • 网上怎么申请增驾摩托车
  • 金蝶会计报表公式
  • 优先股股息必须支付吗
  • 自由会计服务类工作者
  • 一个残疾证一年单位免多少税2023
  • 买汽车计算公式
  • 兼职人员的差旅费
  • 差旅费单子格式表
  • access speed
  • 营业外收入的账户有哪些
  • 银行对账单电脑上怎么导出
  • 公司没有收入怎么办
  • 技术服务收入属于销售营业收入吗
  • 租车协议要不要报税务机关备案?
  • 单位结算卡和对公账户号码不一样
  • 债权投资持有期间的账务处理
  • 现金收入支出表怎么填
  • 交税务局的工会经费现金流
  • 申请到了专利费多少钱
  • 供应商质量索赔流程
  • 异地开立分公司条件
  • 公司买车可以抵税几年
  • 无法将此电脑升级到最新版本的windows10
  • debian 安装
  • windows xp的控制面板
  • centos进入指定目录
  • Linux中怎么安装nano已经有安装包了
  • Linux系统怎么用梯子
  • js响应式布局
  • linux的open
  • Python 操作MySQL详解及实例
  • java 同步方法和同步代码块区别
  • jquery Deferred 快速解决异步回调的问题
  • jquery命名空间
  • css实现3d效果
  • 发票与报销内容不一样
  • 河南商丘联通宽带最低多少钱
  • 深圳小微企业税收优惠政策2023
  • 闵行区注册公司,闵行区税务筹划,哪
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设