DirectX11 创建视图-投影矩阵

创建视图-投影矩阵

1. 什么是视图矩阵和投影矩阵?

视图矩阵:在游戏中,特别是 3D 游戏,照相机扮演一个很大的角色。照相机取向用于几何体来模拟现实照相机的效果。照相机所代表的矩阵叫做视图矩阵。
投影矩阵:为了模拟照相机的位置和方向,我们增加一个投影的概念。一个投影矩阵用于模拟正投影(orthogonal)或透视(perspective)投影。我们能够通过操纵投影矩阵来实现一些效果,比如缩放一个镜头的效果。正投影对于 2D 元素来说意义重大,因为使用正投影会使得物体在渲染时其视景深度不会使用。这意味着如果你有两个单位长度为 10 的盒子,但是它们在 Z 轴上相距 100 个单位,则使用正投影会使得它们紧挨着显示而与深度无关。正投影不仅用于 2D 游戏,而且用于 3D 游戏的 2D 界面元素,例如血条,弹药数量,时间,文本等。透视投影用于在我们渲染物体时增加透视效果。意思是物体远离照相机则在屏幕上显示会越来越小,而靠近照相机则会显示越来越大。 在真实生活中你以不同距离来观察对象就会有这种感觉。 你隔一小段距离观察场景,较远的物体看起来较小。如果你靠近建筑物观察,建筑物的高度远远大于你在一英里外观察它的高度。

2. 如何创建视图-投影矩阵?

视图-投影矩阵即是视图矩阵和投影矩阵的相乘结合。得到同时具有两种变换效果的矩阵。
创建左手坐标系的正投影矩阵,可以调用XMMatrixOrthographicOffCenterLH方法,该参数具有如下几个参数:
第一个参数,视口X的最小值。
第二个参数,视口X的最大值。
第三个参数,视口Y的最小值。
第四个参数,视口Y的最大值。
第五个参数,近裁剪平面,用于消除需要渲染在它前面的对象。
第六个参数,远裁剪面,用于消除任何在它之后的对象。

3. 创建视图-投影矩阵示例代码
    XMMATRIX view = XMMatrixIdentity( );
    XMMATRIX projection = XMMatrixOrthographicOffCenterLH( 0.0f, 800.0f, 0.0f, 600.0f, 0.1f, 100.0f );
    vpMatrix_ = XMMatrixMultiply( view, projection );
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值