笔记----DX11.0转为DX11.2

在DX11.2中已经移除了D3DX,xnamath等文件

数学库由DirectXMath,D3DX由DirectXTK,DirectXTex代替

DirectXTex:点击打开链接

DirectXTK:点击打开链接


以下列举几个需要注意的:

DX11.0中创建旋转矩阵使用:

D3DXMATRIX* D3DXMatrixRotationYawPitchRoll(
  _Inout_  D3DXMATRIX *pOut,
  _In_     FLOAT Yaw,
  _In_     FLOAT Pitch,
  _In_     FLOAT Roll
);


 

而DX11.2中创建旋转矩阵使用:

XMMATRIX XMMatrixRotationRollPitchYaw(
  [in]  float Pitch,
  [in]  float Yaw,
  [in]  float Roll
);

Note:注意参数的顺序,且该函数在DirectX namespace



DX11.0中使创建透视投影矩阵用:

D3DXMATRIX* D3DXMatrixPerspectiveFovLH(
  _Inout_  D3DXMATRIX *pOut,
  _In_     FLOAT fovy,
  _In_     FLOAT Aspect,
  _In_     FLOAT zn,
  _In_     FLOAT zf
);



而在DX11.2中使用:

inline XMMATRIX XM_CALLCONV XMMatrixPerspectiveFovLH
(

    float FovAngleY, 

    float AspectHByW, 

    float NearZ, 

    float FarZ

);


注意参数:这里第二个参数是height / Width , 而DX11.0中的Aspect是width / height


在DX11.2中:

通常使用XMFLOAT2,XMFLOAT3,XMFLOAT4作为类或者结构体的成员变量,而不是XMVECTOR

通常使用XMFLOAT4X4作为类或者结构体的成员变量,而不是XMMATRIX

XMVECTOR,XMMATRIX各自都是单独的类

通常我们要存取数据时,使用XMFLOAT类型,

要进行运算的时候将其转换为XMVECTOR,XMMATRIX类型进行运算


XMFLOAT4和XMVECTOR的互化:

VOID XMStoreFloat4x4(
  [out]  XMFLOAT4X4 *pDestination,
  [in]   XMMATRIX M
);



                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值