投影矩阵DirectX

XMMATRIX XMMatrixPerspectiveFovRH(float fov弧度, float aspect, float nearZ, float farZ)

将传入的ViewSpace下的坐标视为右手系下的坐标。
平截头体在Z轴负向。

P坐标(0,0,-nearZ)
平移,使P点到原点O。

矩阵M1

ViewSpace
近平面半高MP = tan(fov/2)* nearZ
近平面半宽AM = tan(fov/2)*nearZ * aspect
深度差PP’ = farZ - nearZ

原点缩放,使 近平面半高为nearZ,使 近平面半宽为nearZ,使  远平面半高位farZ,使 远平面半宽为farZ,使 深度差为farZ;再将Z负轴的点,关于原点镜像到Z正向上去。

矩阵M2

ClipSpacePos =  M2* M1 * ViewSpacePos

矩阵M3 = M2 * M1

 

将M3 的4行3列改为-1, 4行4列改为0

 

ClipSpacePos.w = ViewSpacePos.z。保留观察空间的ViewDepth。
由于平截头体在负轴,-1负号将深度转正。w分量范围 [ nearZ, farZ ]
ClipSpacePos/ClipSpacePos.w, 将点限制在[-1,1],[-1,1],[0,1]之间。

XMMATRIX XMMatrixPerspectiveFovLH(float fov弧度, float aspect, float nearZ, float farZ)

将传入的ViewSpace下的坐标视为左系下的坐标。
平截头体在Z轴正向。

 Maya

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值