《dx12 龙书》第三部分学习笔记

相应变换函数

#include <Windows.h>
#include <DirectXMath.h>
#include <DirectXPackedVector.h>
#include <iostream>

using namespace std;
using namespace DirectX;
using namespace DirectX::PackedVector;

int main()
{
    
    
	//构建一个缩放矩阵
	XMMATRIX XM_CALLCONV XMMatrixScaling(float ScaleX, float ScaleY, float ScaleZ);  //缩放系数

	//用一个3D向量中的分量来构建缩放矩阵
	XMMATRIX XM_CALLCONV XMMatrixScalingFromVector(FXMVECTOR Scale);  //缩放系数(Sx,Sy,Sz)

	//构建一个绕x轴旋转的矩阵Rx
	XMMATRIX XM_CALLCONV XMMatrixRotationX(float Angle);  //以顺时针方向按弧度θ进行旋转

	//构建一个绕y轴旋转的矩阵Ry
	XMMATRIX XM_CALLCONV XMMatrixRotationY(float Angle);  //以顺时针方向按弧度θ进行旋转

	//构建一个绕z轴旋转的矩阵Rz
	XMMATRIX XM_CALLCONV XMMatrixRotationZ(float Angle);  //以顺时针方向按弧度θ进行旋转

	//构建一个平移矩阵
	XMMATRIX XM_CALLCONV XMMatrixTranslation(float OffsetX, float OffsetY, float OffsetZ);  //平移系数

	//用一个3D向量中的分量来构建平移矩阵
	XMMATRIX XM_CALLCONV XMMatrixTranslationFromVector(FXMVECTOR Offset);  //平移系数(tx,ty,tz)

	//计算向量与矩阵的乘积VM,此函数为针对点的变换,即总是默认令Vw = 1
	XMVECTOR XM_CALLCONV XMVector3TransformCoord(FXMVECTOR V,  //输入向量V
		CXMMATRIX M);  //输入矩阵M

	//计算向量与矩阵的乘积VM,此函数为针对向量的变换,即总是默认令Vw = 0
	XMVECTOR XM_CALLCONV XMVector3TransformNormal(FXMVECTOR V,  //输入向量V
		CXMMATRIX M);  //输入矩阵M
}

在执行XMVector3TransformCoord时,默认Vw = 1
在执行XMVector3TransformNormal时,默认Vw = 0
不需要用户显示设置w分量

猜你喜欢

转载自blog.csdn.net/weixin_47819574/article/details/131313753