软渲染器(Directx11)四之从相机空间到视平面的坐标变换

 

空间变化

从上一篇技术博客  软件光栅器三之世界矩阵,相机变换矩阵,透视投影矩阵,透视除法,视口变换矩阵  我们直接给出了各大变换矩阵的表示形式以及实现的代码

这一节博客 我将讲述从一个顶点从相机空间到到视平面的坐标变化过程,理解这个过程坐标值大小的范围对于实现ShadowMap,ProjectiveTexture,Pick技术来说至关重要。当然我还是省略掉大量详细的推导过程,只是给出结果。

 

如下面图所示,红色圈住的部分,

 

 

 

一,从ViewSpace到HomogeneousSpace(CVV)

 

 

就想下面的图一样: 

 

 

 

实际上D3D11的CVV体和齐次裁剪空间是同样的概念,假设透视投影变换之后顶点为(X,Y,Z,W),则CVV体或者齐次裁剪体为一个长为2W,高为2W,宽为W的长方体,而不是长为2高为2宽为1的规格化的长方体,更不是所谓的单位立方体。

 

 

二,从HomogeneousSpace到NDC

 

 

NDC空间其实就是一个长为2高为2宽为1的长方体,如下面图所示:

 

 

感觉CVV和NDC其实长得好像,就是单位不一样。当然请记住,裁剪是发生在CVV空间的,很多人误以为CVV体就是单位立方体或者长为2高为2宽为1的长方体,这种想法是不对的。

 

 

三,从NDC空间到视平面

 

 

 

 

 

 

演变过程如下面所示:

 

 

源码链接

https://github.com/2047241149/SoftRender

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值