关闭

OpenGL ES中的变化矩阵

标签: opengl es
275人阅读 评论(0) 收藏 举报
分类:

OpenGL ES中的变化矩阵

注:
数学上,向量表示可以有两种选择:行向量列向量
这两种方式没有本质区别,选取哪种都可以,OpenGL ES中使用的是列向量。列向量和矩阵相乘实现变换时,只能在列向量前面乘以矩阵,而行向量则反之,否则乘法没有意义。

1、平移矩阵

这里写图片描述

上述矩阵中的mx、my、mz分别表示平移变换中沿X、Y、Z轴方向的位移。通过简单的线性代数计算即可验证,矩阵M乘以变换前P点的齐次坐标后确实得到了相当于将P点沿X、Y、Z轴平移mx、my、mz的结果,具体情况如下。
这里写图片描述

2、旋转矩阵

这里写图片描述
上述矩阵表示将指定的点P绕轴向量u旋转度,其中的、、表示u向量在XYZ轴上的分量。

3、缩放矩阵

这里写图片描述
上述矩阵中的Sx、Sy、Sz分别表示缩放变换中的沿X、Y、Z轴方向的缩放率。通过简单的线性代数计算即可验证,矩阵M乘以变换前P点的齐次坐标后确实得到了相当于将P点坐标沿X、Y、Z轴方向缩放Sx、Sy、SZ倍的结果,具体情况如下。
这里写图片描述

0
0
查看评论

OpenGL ES 矩阵变换及其数学原理

矩阵变换及其数学原理引子推荐这篇文章线性代数的本质,这篇文章挺不错的,揭示了矩阵和向量的内涵。首先概要性的提一下 向量刻画的是线性空间中的对象。 矩阵刻画的是向量在线性空间中的运动(变换,跃迁),相似矩阵本质上就是同一个线性变换的不同的描述。 在一个线性空间中,选定了一组基,对于任何一个线性变化都可...
  • cauchyweierstrass
  • cauchyweierstrass
  • 2016-10-24 10:41
  • 1792

OpenGL ES 矩阵变化

pic1: pic2:
  • liu_zhen_wei
  • liu_zhen_wei
  • 2011-10-27 12:02
  • 788

OpenGL ES 模型视图矩阵操作

对当前模型视图进行缩放,在OpenGL ES 1.0中可以使用glScale*函数,而在2.0中需要自己设置缩放矩阵。        如,分别使用sx,sy,sz表示在x,y,z轴上的缩放比例,那么在1.0中可以这样缩放模型视图: ...
  • u014538198
  • u014538198
  • 2015-11-15 11:27
  • 737

OpenGL ES(1)——构建OpenGL ES环境

为了在应用里面绘制OpenGL ES,你需要为它们创建View Container。一个更直接的方式是实现GLSurfaceView和GLSurfaceView.Renderer。一个GLSurfaceView是绘制OpenGL的View Container,而GLSurfaceView.Rende...
  • j313469458
  • j313469458
  • 2015-11-04 11:16
  • 225

Android OpenGL ES(十四):通用的矩阵变换指令

Android OpenGL ES 对于不同坐标系下坐标变换,大都使用矩阵运算的方法来定义和实现的。这里介绍对应指定的坐标系(比如viewmodel, projection或是viewport) Android OpenGL ES支持的一些矩阵运算及操作。 OpenGL ES 中使用四个分量(...
  • jackie03
  • jackie03
  • 2012-02-29 11:17
  • 4091

OpenGL的矩阵变换详解——有图有真相

OpenGL有个小小的难点,就是矩阵变换的顺序问题。一不小心就会用错,变换后的物体和自己想要的完全不一样。为了自己的理解,也为了帮助别人的理解,我下面对矩阵变换做一个解释。当然,大片大片的文字肯定会让大家看的云里雾里,所以我特意画了一些示意图供大家理解。 首先向大家明确一点,当你在程序中调用...
  • u013299585
  • u013299585
  • 2017-04-28 23:22
  • 264

零基础开发OpenGL ES 2.0学习笔记-变换矩阵

基本变换的相关数学知识 基本变换都是通过将表示点坐标的向量与特定的变换矩阵相乘完成的,进行基于矩阵的变换时,三维空间中点的位置需要表示成齐次坐标形式。 所谓齐次坐标形式也就是在x,y,z 3个坐标值后面增加第四个量w,未变换时w值一般为1,如P=(Px, Py, Pz, 1)T。 *(关于齐次坐标的...
  • weishanxiao
  • weishanxiao
  • 2014-12-16 11:27
  • 1294

OpenGL ES 矩阵旋转

1、修改 Draw.java 新增方法 /* * 画点 */ public static void drawPoint(GL10 gl ,float []pos,float size){ gl.glPointSize(size); gl.glVertexPointer(3, GL...
  • q344716129
  • q344716129
  • 2015-08-17 10:34
  • 521

关于Opengl各种矩阵变换的理解

关于Opengl各种矩阵变换的理解 OpenGL的矩阵变换一直比较迷糊,貌似懂了又貌似不懂,今天貌似懂了过几天又貌似忘记怎么回事了,还是没有理解透彻,因此痛下决心,一定要把这个事情弄懂。经过几天的反复思考查看资料,我自己理解的结果就是:mv用来调整相机位置组成一个新坐标系,p用来在这个坐标系里面切...
  • lihei12345
  • lihei12345
  • 2015-01-17 22:58
  • 1874

OpenGL ES渲染之Shader准备

转自:http://cn.cocos2d-x.org/tutorial/show?id=1783 Cocos2d-x底层图形绘制是使用OpenGL ES协议的。OpenGL ES是什么呢? OpenGL ES(OpenGl for Embedded System)...
  • azhou_hui
  • azhou_hui
  • 2014-11-07 17:08
  • 3474
    个人资料
    • 访问:82710次
    • 积分:2617
    • 等级:
    • 排名:第16454名
    • 原创:185篇
    • 转载:17篇
    • 译文:1篇
    • 评论:6条
    最新评论