DirectX11 创建视图-投影矩阵
来源:互联网 发布:传奇盛世心法升级数据 编辑:程序博客网 时间:2024/05/18 06:19
创建视图-投影矩阵
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 );
- DirectX11 创建视图-投影矩阵
- 投影矩阵 视图模型矩阵
- DirectX11 创建渲染目标视图
- 模型矩阵、视图矩阵、投影矩阵
- 模型视图矩阵和投影矩阵
- 模型视图矩阵与投影矩阵
- 模型视图矩阵和投影矩阵
- 模型视图矩阵和投影矩阵
- WEBGL学习【八】模型视图投影矩阵
- OpenGL 入门教程(五) -- 模型视图投影矩阵
- D3D中的世界矩阵,视图矩阵,投影矩阵
- D3D视图转换矩阵、投影矩阵的具体形式
- 小白学opengl之 获取模型视图矩阵和投影矩阵
- 【转】模型视图矩阵和投影矩阵(webgl笔记)
- webgl笔记-1.模型视图矩阵和投影矩阵
- Android游戏开发之OpenGL之视图-投影矩阵 杂谈
- OpenGL 入门教程 模型视图投影矩阵 变换光线
- 投影矩阵
- xcode7真机调试问题
- pagerank以及个性化的pagerank算法
- STM32CUBE学习——5
- #static,final,抽象,接口,多态,内部类,单子和工厂设计模式
- hdu 5294 Tricks Device 2015 Multi-University Training Contest 1 isap + dijkstra
- DirectX11 创建视图-投影矩阵
- iOS开发 ----- 关于char *的赋值和字符串之间的复制问题以及sizeof strlen
- hdu5288(2015多校1)OO’s Sequence
- [Android]自定义ListView:上拉加载更多
- 关于DateTime
- Quartz 定时任务设置某个时间区间每隔一定时间触发的cron表达式
- Android 第二天 类的复习
- 【bzoj2084】 POI2010 Antisymmetry manacher
- 【分布式集群】hadoop-2.6.0集群实例(接上一篇)