现代opengl 设计入门,变换基础,向量和矩阵运算

本文介绍了OpenGL设计的基础知识,包括向量的概念、向量与标量的运算,如加减、点乘、叉乘,以及矩阵的运算,如矩阵与标量的加减、乘法和矩阵与向量的相乘。通过理解这些数学概念,为3D变换和OpenGL程序中的实际应用奠定了基础。推荐使用GLM(OpenGL Mathematics)库来简化向量和矩阵的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直到目前,我们介绍opengl 的工程准备窗口建立画第一个三角形着色器纹理贴图。所有这些,都寻求问题描述简单,看上去是平面的操作一样。下面我们要进入opengl 的3D,因此需要了解一些必要的数学知识。本文就此做些简单介绍,向量,矩阵及其运算。如果你不能很好理解,至少看一遍吧,以后碰到不懂的地方,可以回过头,再查看本文。

介绍完这些数学知识,简介opengl 程序中如何实战运用,GLM(OpenGL Mathematics)。

本文参照 https://learnopengl.com/  和 https://learnopengl-cn.github.io/ 学习而来,同时包含自己的学习体会和图示在内。在visual studio 2010下完成代码测试的。由于不会文章中输入矩阵,我的描述虽然简单,但不如他们的清楚。

向量 

向量最基本的定义就是一个方向。或者更正式的说,向量有一个方向(Direction)和大小(Magnitude,也叫做强度或长度)。你可以把向量想像成一个藏宝图上的指示:“向左走10步,向北走3步,然后向右走5步”;“左”就是方向,“10步”就是向量的长度。那么这个藏宝图的指示一共有3个向量。向量可以在任意维度(Dimension)上,但是我们通常只使用2至4维。如果一个向量有2个维度,它表示一个平面的方向(想象一下2D的图像),当它有3个维度的时候它可以表达一个3D世界的方向。

下面你会看到3个向量,每个向量在2D图像中都用一个箭头(x, y)表示。我们在2D图片中展示这些向量,因为这样子会更直观一点。你可以把这些2D向量当做z坐标为0的3D向量。由于向量表示的是方向,起始于何处并不会改变它的值。下图我们可以看到向量v¯和w¯是相等的,尽管他们的起始点不同:

由于向量是一个方向,所以有些时候会很难形象地将它们用位置(Position)表示出来。为了让其更为直观,我们通常设定这个方向的原点为(0, 0, 0),然后指向一个方向,对应一个点,使其变为位置向量(Position Vector)(你也可以把起点设置为其他的点,然后说:这个向量从这个点起始指向另一个点)。比如说位置向量(3, 5)在图像中的起点会是(0, 0),并会指向(3, 5)。我们可以使用向量在2D或3D空间中表示方向位置.,和普通数字一样,我们也可以用向量进行多种运算。

向量与标量运算

标量(Scalar)只是一个数字(或者说是仅有一个分量的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值