请教directx 龙书中一个灵活的camera类 应用于物体的前进旋转 前进可以 但是旋转只是绕固定轴旋转呢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教directx 龙书中一个灵活的camera类 应用于物体的前进旋转 前进可以 但是旋转只是绕固定轴旋转呢相关的知识,希望对你有一定的参考价值。

参考技术A 相机就是观察点所在,涉及视角,所有的旋转当然要沿相机三个轴进行。

这个例子,如果我没记错的话,绕Z轴(也就是lookat-视线)旋转只限“飞行模式”,程序默认是“陆地行走模式”,所以绕Z轴旋转是无法响应的。

大多数程序都这样限制的(除非飞行类游戏)。追问

对的啊 就是这个例子啊 关键是我想改一下 把相机改成一个模型 控制模型的翻转的时候遇到了问题啊

追答

相机就是一个视点,这是必然要存在的,不然看什么东东。
要控制物体嘛,就要给这个物体设置属性(初始位置,运动方向,运动速度),
然后在update(float dt)这种类似的更新函数去改变这些属性,利用dx的api计算出世界转换矩阵;
同时,相机这东西也要看情况,而如何更新则取决个人的期望了。

DirectX 11游戏编程学习笔记之1: 开场白

本文由哈利_蜘蛛侠原创,转载请注明出处。有问题欢迎联系[email protected]

?

? ? ? ? 这是我之前的博客系列“DirectX9.0c游戏开发手记之‘龙书’第二版学习笔记”的平行版,也可以说是续集。

说是平行版,由于这两个博客系列由于某种显而易见的原因。内容是非常平行的;而之所以说是续集,是由于前面那个系列可能就此坑掉了……

? ? ? ? 前面那个系列是关于“龙书”第二版的学习笔记的。而这一系列是关于“龙书”第四版的。“龙书”第四版原名是《Introduction to 3D Game Programming with DirectX 11》。之所以叫做“龙书”,是由于本书的第一版《Introduction to 3D Game Programming with DirectX 9.0》的封面上有一仅仅喷火龙,虽然这条龙没有熬过后面版本号的DirectX……

?

“龙书”封面:

技术分享图片

?

“龙书”第四版封面:

技术分享图片


? ? ? ? 之前我一直学习的是“龙书”第二版,也就是DirectX 9.0c 游戏编程(更早曾经还学习过“龙书”第一版。以及更古老的东西;详情參见前一系列的“开场白”部分)。只是三天前我突然决定转战DX 11了。至于为何转移战场,这个说来话长。与我解决不了的几个程序bug有关,所以猜想可能是由于DX 9毕竟还是有点老了。

然后就看了看“龙书”第四版的电子版,然后发现电子版质量不错,可是有一些错误(当然比“龙书”第二版的错误少得多了),比方说把函数名字打错之类的。让人感觉不太爽,所以我就一咬牙,一狠心。花了将近300 RMB 把原版书给买了下来。

买下来后看了看,发现电子版的大部分错误没有了(仍然有个别错误,可是不细致看是发现不了的;这说明我看得是多么细致了吧。哈哈!

),所以非常是欣喜。看来买对啦!

? ? ? ? 然后此书的附送光盘里还包括了书中全部图片的高清彩色原版,非常爽吧。这书是平装本(我也不确定有没有精装本,假设有的话。可能会彩打),里面的图片都是黑白的,所以有一些试图表现彩色的图就显得非常滑稽了。另外我发现书上有一个图的箭头方向画反了,可是彩图是正确的,太奇妙了!

? ? ? ? 我会在今后的博客中慢慢将光盘中的内容(代码和图片)分享给大家;只是至于这一期,我想说一些开场性质的话。整体来说,本系列博客有例如以下几个特点:

1、? 包括但不限于(大部分时候还是限于的)这几个方面:书中重点内容的回想、勘误和部分习题解答。

2、? 所谓的“书中重点内容”,是指非常重要、easy遗忘并且与DirectX 9.0c部分区别较大的部分。有人说DX 11和DX 9.0c之间的区别不大;在我看来区别还是蛮大的。

3、? 我会时不时地与“龙书”第二版的内容进行比較,在对照中进行学习。所以假设看官打算拿此系列博客作为学习參考的话,推荐大致看一下“龙书”第二版(看到第11章关于纹理映射的部分即可了)。

?

? ? ? ? 当然,要学习DX 11游戏编程,必须满足一些先决条件。我的条件不高,仅仅要满足下面几点即可:

1、? 精通汉语阅读。比方说可以轻松地看懂此篇博文。

2、? 有高中水平的英语阅读能力。有一些概念我还是会用原文给出的。由于有些不会翻译,并且即使翻译出来了可能也词不达意。

另外,解题的时候我会把原题的题目放上来,而仅仅是略微进行说明。

3、? 有一台属于自己的电脑,该电脑是Win 7系统的(DX 11本身就是为Win 7量身打造的)。并且显卡支持DX 11的特性(这个要求非常严格。不像DX 9那样可以打折扣)。要确认后者,事实上不难,仅仅须要执行几款基于DX 11的游戏就知道了,比方说《蝙蝠侠:阿卡姆之城》(Batman: Arkham City)推荐配置就包括有支持DX11的显卡。

4、? 安装了DirectX 11的SDK(SoftwareDevelopment Kit,软件开发包)。书中用的貌似是August 2009版的DirectX SDK。只是我用的是最新的June 2010的版本号(所以我没法直接使用书中的代码,而须要进行对应的改动,比方说dxerr.h和dxerr.lib须要分别改为DxErr.h和DxErr.lib。等等;DX的更新总是非常快的)。

5、? 拥有比較新的Microsoft Visual Studio 版本号。

书中用的是2010版,而我用的是2013版;大致几乎相同。

并且还要对项目进行对应设置才可以使用书中的源代码。具体操作參见书的Introduction 部分,在此不再赘述;并且我会将这些操作在今后公布的代码目录内的ReadMe – DX 11.txt 文件里进行具体叙述的,所以列为看官不必操心。

6、? 拥有此书。推荐买实体书。有点厚,可是比較轻。不想买或者买不起的话。可以看看电子版:

“龙书”第四版不完美电子版

7、? 可以不怕困难。坚持究竟。

这书我到如今看了100多页。感觉有非常多地方比“龙书”第二版还要难(当初“龙书”第二版也把我折磨得非常厉害,后来看了浅墨的博客,再经过一段时间细致消化琢磨。如今可以比較理解了;可是如今这本书又给我提出了新的挑战)。

8、? 对于游戏编程有着强烈的愿望!这个是最重要的!


? ? ? ? 可能有人说。DX 11面向WIn 7及以上系统,用它开发出来的游戏受众变窄了。事实上这个不用操心,由于。非常显然等我们做出来游戏之后,大部分PC游戏玩家应该都用Win 7了。况且用DX 11可以实现非常多DX 9非常难实现甚至根本实现不了的效果。这不是非常棒吗?

? ? ? ? 好了。这个开场白就到这里了,从下期開始我们将进入正题了。咱们不见不散!


以上是关于请教directx 龙书中一个灵活的camera类 应用于物体的前进旋转 前进可以 但是旋转只是绕固定轴旋转呢的主要内容,如果未能解决你的问题,请参考以下文章

DirectX11 Windows Windows SDK--28 计算着色器:波浪(水波)

一VS2015update2环境下DirectX11编程说明(2016.5.5更新)

DirectX11 With Windows SDK--30 计算着色器:图像模糊索贝尔算子

DirectX 11游戏编程学习笔记之1: 开场白

[HLSL]HLSL 入门参考 (dx11龙书附录B译文)

龙书D3D11 Demo配置(VS2017+win7)