【DirectX 12 GJ的龙书学习笔记 二】向量

本文是关于DirectX 12中向量数学的基础学习笔记,重点介绍了向量在计算机图形学、碰撞检测和物理模拟中的重要性。文中提到了DirectX Math库的使用,包括向量数据类型如XMVECTOR、XMFLOAT2到XMFLOAT4,以及如何利用SSE2指令集进行高效计算。此外,还讨论了向量的运算符重载、常量定义、转换函数以及精度处理方法。
摘要由CSDN通过智能技术生成

“For the things of this world cannot be made known without a knowledge of mathematics.”

Roger Bacon, Opus Majus part 4 Distinctia Prima cap 1, 1267.


现在我们来到了PART I数学基础的学习。

数学的重要性无需多言。由于书中讲述的数学内容仅是为后续内容服务的,并不全面,所以从学习数学的角度讲,书中推荐了两本专讲数学的书籍:

Lengyel, Eric, Mathematics for 3D Game Programming and Computer Graphics. Charles River Media, Inc., 2002.

https://book.douban.com/subject/6675562/

 

Verth, James M. van, and Lars M. Bishop. Essential Mathematics for Games & Interactive Applications: A Programmer’s Guide. Morgan Kaufmann Publishers (www.mkp.com), 2004.

https://book.douban.com/subject/26635117/


Part I的第一章是向量代数。向量在计算机图形学、碰撞检测和物理模拟中起着至关重要的作用,所以这一章一定要熟练掌握啊。

 

 

有关向量基本内容如坐标系,加减,数乘,点乘,叉乘,长度,单位化,投影,正交化等不再多说,我们直接看DirectX数学库中的向量。

从Windows8开始,DirectX math就成为了Windows SDK的一部分。它使用SSE2 (Streaming SIMD Extensions 2)指令集。通过使用128位宽的SIMD(single instruction multiple data)寄存器,SIMD指令可以一条指令操作四个32位的浮点数或int数。于是我们可以通过一条SIMD指令操作4D向量加法,或是忽略多余位的3D,2D向量加法。

要使用DirectX数学库,需要包含DirectXMath.h(名称空间DirectX),一些附加的数据类型需要包含DirectXPackedVector.h(名称空间DirectX::PackedVector)。对于x86平台需要启用SSE2(Project Properties > Configuration Properties > C/C++ > Code Generation > Enable Enhanced Instruction Set),对于所有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值