DirectX 3d 取景变换

在世界坐标系中,几何体和摄像机都是相对于世界坐标系定义的。但是当摄像机的位置和朝向任意时,投影变换及其它类型的变的就略显困难或效率不高。为了简化运算,我们将摄像机变的至世界坐标系原点,并将其旋转,使摄像机的光轴与世界坐标系z轴正方向一致。同时,世界空间中的所有几何几都随着摄像机一同进行变换,以保证摄像机视声恒定。这种变换称之为取景变换(view space transformation),我们称变换后的几何体位于观察坐标系中(view space)。

假定摄像机位于(5,3,-10),其观察点为世界坐标系的原点(0,0,0),我们可以这样创建取景变换矩阵。

D3DXVECTOR3 position( 5.0f,3.0f,-10.0f);//摄像机在世界坐系中的位置
        D3DXVECTOR3 target(0.0f, 0.0f, 0.0f); //被观察点
        D3DXVECTOR3 up(0.0f, 1.0f, 0.0f); //世界坐标系中向上的方向向量
        D3DXMATRIX V;
        D3DXMatrixLookAtLH(&V, &position, &target, &up);//得到取景变的矩阵,即观察矩阵

取景变换

Device->SetTransform(D3DTS_VIEW, &V); //取景变换
时间: 2024-10-15 22:30:31

DirectX 3d 取景变换的相关文章

两天学会DirectX 3D之第二天

提要 前几天很简单地跑了一个DirectX 9 程序,以为DirectX就那么绘制,事实证明有点Naive了. 之前的那个程序最多也就是个固定流水线的东西.但是今天要用DirectX11来写一个小的框架. 龙书就不要看了,看Introduction to 3D GAME PROGRAMMING WITH DIRECTX®11 几个重要的类 ID3D11Device : 一个虚拟适配器:它被用于运行渲染和创建资源. ID3D11DeviceContext:  represents a device

DirectX 3D 之C#开发

C#下进行directX的3D开发,一个旋转的4棱锥的例子. 建议看两个文档<Managed DirectX 9图形和游戏编程简略中文文档>和<Managed DirectX 9 SDK 中文文档>. 另外最好下载个DirectX SDK (August 2007).rar.里面有些范例还是非常好的. 一.首先在电脑上装了DirectX. 二.建立一个C#的Windows应用程序,添加两个引用Microsoft.DirectX和Microsoft.DirectX.Direct3D;

两天学会DirectX 3D

环境配置以及背景知识 环境 Windows 8.1 64bit VS2013 Microsoft DirectX SDK (June 2010) NVDIA Geforce GT755 环境的配置参考VS2008整合DirectX9.0开发环境 一些背景知识 DirectX的和应用层与硬件层的关系如下 REF设备允许开发人员测试那些Direct3D提供了但未被图形设备所实现的功能. COM(Component Object Model)是一项可使DirectX独立于编程语言,并具备向下兼容的技术

WorldWind源码剖析系列:经纬度格网类LatLongGrid

经纬度格网类LatLongGrid继承自可渲染对象类RenderableObject,是WorldWind中用来在星球外表绘制经纬度格网的封装类.其类图如下所示. 绘制经纬网格的主体函数为Render(),其内部主要调用以下函数完成绘制: ComputeGridValues()//计算格网值 RenderTropicLine()//绘制回归线 计算格网值ComputeGridValues()内部通过相机的真实视场角drawArgs.WorldCamera.TrueViewRange.Radian

C++游戏开发需要阅读的书籍

如果要自学游戏程序开发的话,可以看看下面的,呵呵. 游戏开发资料(PDF书都是中文版的,非英文,很多是本人自己扫描制作,从未网上发布过,所以独家啦):  1.Gamebryo 2.2游戏引擎(盛大.腾讯等公司制作网络游戏常用)+Gamebryo v2.2.1说明文档 2.游戏PDF书及其代码:  3D游戏编程.3D游戏编程大师技巧.Direct3D游戏编程入门教程第2版.DirectX角色扮演游戏编程  DirectX特效游戏程序设计.MFC windows程序设计第2版.MFC深入浅出.VC+

移动GPU全解读(二)

[编者按]:本文作者为爱搞机特约作者.技术达人"炮神"@ioncannon. 在上一篇移动GPU解读中,对移动GPU的架构.相关参数进行了介绍,本部分介绍的则是移动GPU的Shader.GPU兼容性."多核"的真相以及跑分问题. 说说被忽略的Shader 接下来我们回到Shader.Shader是GPU里负责计算的主要部分,同时占得面积最大,耗电也最多.当今的桌面GPU往往都不再谈三角形生成率,或是像素填充率了,给的指标都是Shader的计算能力--GFLOPS.可

统一D3D与OpenGL坐标系统

作者:游蓝海(http://blog.csdn.net/you_lan_hai) DirectX 3D与OpenGL坐标系统的差异性,给我们带来很大的麻烦,让跨平台编程的新手很困惑.最近在做一个跨平台的游戏,仔细看了下两者的矩阵,发现并没有什么大区别,将d3d左手系的矩阵传递给opengl shader完全可以正常工作. 先说一下两者一些概念上的区别:         (1)坐标系统不同 d3d左手坐标系,opengl右手坐标系         (2)矩阵行序不同 d3d行优先,opengl列优

(北京)初创公司诚聘U3D/美术/特效/HTML5/C#后端

北京欢庆时刻信息技术有限公司成立于2015年,旨在为中国及全球的体育迷提供最为创新.最令人激动的体育互动娱乐产品. 通过创新与技术,我们打造让用户感到惊艳并依赖的产品,致力于让用户无论是在现场.在电视机前还是在路途中,都能通过我们的产品及服务更好地体验体育赛事带来的刺激.精彩以及感动. HTML5 前端工程师 职位描述: 负责开发移动端 HTML5 页面功能: 基于 HTML5/CSS3 构建可重用的代码和组件: 持续优化前端体验,完善 UI/UX 设计: 提升页面相应速度和可扩展性: 与其他团

WorldWind源码剖析系列:设置类SettingsBase

PluginSDK中的星球设置类WorldSettings 和WorldWind.程序设置类WorldWindSettings均继承自父类SettingsBase.类图如下所示.其中父类SettingsBase内嵌了枚举型LocationType,子类WorldSettings的定义文件中附带了定义了测量模式的枚举型. 父类SettingsBase主要是对设置文件相关的设置文件名.版本.路径.载入.保存等于文件处理相关的顶层抽象.主要是以XML文件保存的,采用.NET平台提供的XmlSerial