数学笔记(一)之列主序矩阵

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

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

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

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

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

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

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;
}

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

  That's it ~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习思考者

matlab 数据预处理及常用操作

img_out = repmat(img,[10000 1]);%生成一个1万行的img矩阵 img=zeros(1,1024); %zeros生成为0的矩...

34990
来自专栏人工智能LeadAI

tensorflow的数据输入

tensorflow有两种数据输入方法,比较简单的一种是使用feed_dict,这种方法在画graph的时候使用placeholder来站位,在真正run的时候...

13950
来自专栏小樱的经验随笔

qsc oj 22 哗啦啦村的刁难(3)(随机数,神题)

哗啦啦村的刁难(3) 发布时间: 2017年2月28日 20:00   最后更新: 2017年2月28日 20:01   时间限制: 1000ms   内存限制...

29790
来自专栏AI科技评论

开发 | 如何利用微信监管你的TF训练

AI科技评论按:本文作者Coldwings,AI科技评论获其授权发布。 之前回答问题【在机器学习模型的训练期间,大概几十分钟到几小时不等,大家都会在等实验的时候...

33280
来自专栏超智能体

YJango:TensorFlow中层API Datasets+TFRecord的数据导入

2. 对接性:TensorFlow中也加入了高级API (Estimator、Experiment,Dataset)帮助建立网络,和Keras等库不一样的是:这...

1.1K230
来自专栏机器之心

教程 | 如何在TensorFlow中高效使用数据集

36380
来自专栏java初学

MD5算法

21340
来自专栏生信宝典

Bedtools使用简介

84640
来自专栏瓜大三哥

直方图操作(二)

直方图操作(二)之统计电路 在实际的图像中,连续的像素点灰度值为相同值的情况非常常见,如果每来一个像素都对双口RAM进行一次寻址和写操作,显然降低了统计效率而提...

21570
来自专栏机器之心

资源 | HiddenLayer:可视化PyTorch、TensorFlow神经网络图的轻量级工具!

GitHub链接:https://github.com/waleedka/hiddenlayer

19620

扫码关注云+社区

领取腾讯云代金券