博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数学笔记(一)之列主序矩阵
阅读量:4224 次
发布时间:2019-05-26

本文共 896 字,大约阅读时间需要 2 分钟。

引子 数学相关的东西,随便记记 :)~

对于矩阵,OpenGL采用列主序(column-major order)存储,之前对于这个概念有些模糊,后来又了解了一些相关知识,在此一记~

首先是数学概念上的矩阵,这是根据标准定义的,譬如一个4*4的矩阵,可表示为:

  而采用列主序存储,则可以理解为一种矩阵在计算机中的实现方式,或者更确切的说,是存储方式,即虽然在数学上明确定义了矩阵的表示方式,但是在计算机中怎么实现(或者说存储)则是另一个问题,列主序存储就是这个问题的一种解决方法~(感觉颇像和的关系:))

  而所谓列主序的方式,就是以矩阵列为优先来存储矩阵元素,拿C/C++中的数组举例,如果要存储上述的4*4矩阵,那么内存中的布局应该是这个样子的~

  更具体的例子可以参考Cocos2d-x中的Mat4类(来自于),譬如矩阵变换(列)向量:

inline void MathUtilC::transformVec4(const float* m, const float* v, float* dst){    // Handle case where v == dst.    float x = v[0] * m[0] + v[1] * m[4] + v[2] * m[8] + v[3] * m[12];    float y = v[0] * m[1] + v[1] * m[5] + v[2] * m[9] + v[3] * m[13];    float z = v[0] * m[2] + v[1] * m[6] + v[2] * m[10] + v[3] * m[14];    float w = v[0] * m[3] + v[1] * m[7] + v[2] * m[11] + v[3] * m[15];        dst[0] = x;    dst[1] = y;    dst[2] = z;    dst[3] = w;}

  拿上面 的计算来说,其所取的矩阵元素索引分别为0,4,8,12,正是m11,m12,m13以及m14 ~

  That's it ~

  

你可能感兴趣的文章
Web前端学习笔记——JavaScript之事件详解
查看>>
Web前端学习笔记——JavaScript之事件、创建元素、节点操作
查看>>
Web前端学习笔记——JavaScript之正则表达式、伪数组、垃圾回收
查看>>
Web前端学习笔记——JavaScript 之继承、函数进阶
查看>>
Web前端学习笔记——JavaScript之面向对象游戏案例:贪吃蛇
查看>>
不做单元测试?小心得不偿失!嵌入式系统单元测试工具,自动生成测试用例
查看>>
一种实用的联网汽车无线攻击方法及车载安全协议
查看>>
光靠欺骗检测是不够的:对抗多目标跟踪的攻击
查看>>
基于微区块链的V2X地理动态入侵检测
查看>>
面向V2C场景的ADAS数字孪生模型构建方法
查看>>
Comma2k19数据集使用
查看>>
面向自动驾驶车辆验证的抽象仿真场景生成
查看>>
一种应用于GPS反欺骗的基于MLE的RAIM改进方法
查看>>
自动驾驶汽车GPS系统数字孪生建模(一)
查看>>
自动驾驶汽车GPS系统数字孪生建模(二)
查看>>
CUDA 学习(五)、线程块
查看>>
CUDA 学习(八)、线程块调度
查看>>
CUDA 学习(九)、CUDA 内存
查看>>
CUDA 学习(十一)、共享内存
查看>>
游戏感:虚拟感觉的游戏设计师指南——第十四章 生化尖兵
查看>>