困扰我多年的几个关于DirectX游戏编程的问题

哈利_蜘蛛侠 2014-09-07 08:13:39
1、龙书第一版和第二版都没有讲在游戏程序中添加声音支持。看了点其他的书,讲得跟天书似的,似乎声音部分比图形部分难得多啊!有没有哪本书讲了这个方面的内容并且比较浅显易懂呢?

2、3D游戏现在是主流,但是2D还是很重要的,况且在3D游戏中也有很多地方需要用到2D图形,比如说可以在3D游戏中增加一些小游戏(就像很多RPG里的”开锁“环节那样),这时候最好用2D图形表示,一方面节省资源,另一方面也方便操作。可是一般的游戏编程书里并没有这方面的知识。龙书第一版里讲到了billboard技术,但是和这个还是有点差别的吧,而且这一内容在第二版中不知为何被删掉了。

3、请问如何给游戏添加过场动画呢?或者更简单点,如何把视频插入到游戏中呢?似乎要用DirectDraw,不过现在的DirectX已经没有DirectDraw了。难道要自己另行下载?不过又听说现在DirectDraw技术已经过时了,请问是这样吗?如果是的,那么现在的3D游戏载入过场动画是通过什么方式呢?
...全文
643 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
哈利_蜘蛛侠 2014-09-21
  • 打赏
  • 举报
回复
引用 14 楼 ADF1230 的回复:
[quote=引用 13 楼 u011873969 的回复:] [quote=引用 12 楼 ADF1230 的回复:] [quote=引用 11 楼 u011873969 的回复:] [quote=引用 10 楼 ADF1230 的回复:] 过场动画的话,感觉可以结合directshow和direct3d,把directshow解码出来的视频帧贴到direct3d的纹理上进行播放。
现在的问题就是最新版的dx 9没有了directshow了呀,而且好像这技术已经过时了。[/quote] 我说的是directshow,不是directdraw。 directshow没过时,现在windows上几乎所有播放器都在用directshow。[/quote] 额,就算没过时,可是DX 2010 6月版里确实没有这个东西啊。[/quote] 放在windows sdk里面了。[/quote] windows sdk在哪里弄?哪里有说明书或者介绍如何使用的教材?
神-气 2014-09-21
  • 打赏
  • 举报
回复
引用 13 楼 u011873969 的回复:
[quote=引用 12 楼 ADF1230 的回复:] [quote=引用 11 楼 u011873969 的回复:] [quote=引用 10 楼 ADF1230 的回复:] 过场动画的话,感觉可以结合directshow和direct3d,把directshow解码出来的视频帧贴到direct3d的纹理上进行播放。
现在的问题就是最新版的dx 9没有了directshow了呀,而且好像这技术已经过时了。[/quote] 我说的是directshow,不是directdraw。 directshow没过时,现在windows上几乎所有播放器都在用directshow。[/quote] 额,就算没过时,可是DX 2010 6月版里确实没有这个东西啊。[/quote] 放在windows sdk里面了。
哈利_蜘蛛侠 2014-09-21
  • 打赏
  • 举报
回复
引用 12 楼 ADF1230 的回复:
[quote=引用 11 楼 u011873969 的回复:] [quote=引用 10 楼 ADF1230 的回复:] 过场动画的话,感觉可以结合directshow和direct3d,把directshow解码出来的视频帧贴到direct3d的纹理上进行播放。
现在的问题就是最新版的dx 9没有了directshow了呀,而且好像这技术已经过时了。[/quote] 我说的是directshow,不是directdraw。 directshow没过时,现在windows上几乎所有播放器都在用directshow。[/quote] 额,就算没过时,可是DX 2010 6月版里确实没有这个东西啊。
神-气 2014-09-21
  • 打赏
  • 举报
回复
引用 11 楼 u011873969 的回复:
[quote=引用 10 楼 ADF1230 的回复:] 过场动画的话,感觉可以结合directshow和direct3d,把directshow解码出来的视频帧贴到direct3d的纹理上进行播放。
现在的问题就是最新版的dx 9没有了directshow了呀,而且好像这技术已经过时了。[/quote] 我说的是directshow,不是directdraw。 directshow没过时,现在windows上几乎所有播放器都在用directshow。
神-气 2014-09-21
  • 打赏
  • 举报
回复
自己google,都说了关键词了还不会自己搜索吗。
哈利_蜘蛛侠 2014-09-20
  • 打赏
  • 举报
回复
引用 10 楼 ADF1230 的回复:
过场动画的话,感觉可以结合directshow和direct3d,把directshow解码出来的视频帧贴到direct3d的纹理上进行播放。
现在的问题就是最新版的dx 9没有了directshow了呀,而且好像这技术已经过时了。
神-气 2014-09-20
  • 打赏
  • 举报
回复
过场动画的话,感觉可以结合directshow和direct3d,把directshow解码出来的视频帧贴到direct3d的纹理上进行播放。
哈利_蜘蛛侠 2014-09-20
  • 打赏
  • 举报
回复
引用 7 楼 happy__888 的回复:
尽信书不如不信书 directx最好的书,就是dxsdk的帮助文档 声音和视频 dxsdk里面有大量的例子演示了如何播放声音,如何使用视频文件做为纹理贴图上去 二维和三维结合 场景组织上,可以分层的, 比如三维处理z-buffer范围0.1-1.0部分, 前面的二维面板有0-0.1部分 这是一些技巧性的/所谓的dx的高级编程 其实三维的真正的高级东西都不在dx本身上,dx只是表现而已 具体实现,要看你选择的dx版本, dx这个不同版本之间的差异很大,他不向前兼容的 你用什么环境开发,要看书你也找和他匹配的dx版本的教程去,否则你的迷惑会越来越多
好吧,找到了,用D3DDECLUSAGE_POSITIONT就行了。
哈利_蜘蛛侠 2014-09-18
  • 打赏
  • 举报
回复
引用 7 楼 happy__888 的回复:
尽信书不如不信书 directx最好的书,就是dxsdk的帮助文档 声音和视频 dxsdk里面有大量的例子演示了如何播放声音,如何使用视频文件做为纹理贴图上去 二维和三维结合 场景组织上,可以分层的, 比如三维处理z-buffer范围0.1-1.0部分, 前面的二维面板有0-0.1部分 这是一些技巧性的/所谓的dx的高级编程 其实三维的真正的高级东西都不在dx本身上,dx只是表现而已 具体实现,要看你选择的dx版本, dx这个不同版本之间的差异很大,他不向前兼容的 你用什么环境开发,要看书你也找和他匹配的dx版本的教程去,否则你的迷惑会越来越多
确实挺郁闷的。还是拿2D的来说吧。比较古老的教程用的是FVF,然后用这种格式可以设定2D顶点坐标,比如下面的:

struct CUSTOMVERTEX
{
    FLOAT x, y, z, rhw; // The transformed position for the vertex.
};
然后用一个FVF来说明这个顶点结构的意思就OK了:

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW)
但是比较新的是使用D3DVERTEXELEMENT9数组定义这个结构体各部分的功能的。一般来说第一个成员的USAGE是使用D3DDECLUSAGE_POSITION的,用起来也没问题;但是这种2D顶点用这个方法就不好使了。我查了一下D3DDECLUSAGE可以取的值,也没有跟2D坐标有关的,很郁闷。
寻开心 2014-09-17
  • 打赏
  • 举报
回复
尽信书不如不信书 directx最好的书,就是dxsdk的帮助文档 声音和视频 dxsdk里面有大量的例子演示了如何播放声音,如何使用视频文件做为纹理贴图上去 二维和三维结合 场景组织上,可以分层的, 比如三维处理z-buffer范围0.1-1.0部分, 前面的二维面板有0-0.1部分 这是一些技巧性的/所谓的dx的高级编程 其实三维的真正的高级东西都不在dx本身上,dx只是表现而已 具体实现,要看你选择的dx版本, dx这个不同版本之间的差异很大,他不向前兼容的 你用什么环境开发,要看书你也找和他匹配的dx版本的教程去,否则你的迷惑会越来越多
ljb1672 2014-09-16
  • 打赏
  • 举报
回复
在2D中的拾取更简单,深度信息是已知的。
哈利_蜘蛛侠 2014-09-10
  • 打赏
  • 举报
回复
引用 2 楼 ljb1672 的回复:
1.声音更简单。只需要看微软的几个例子就能上手写代码,函数库有几个。我认为因为声音太简单,所以出本书好像不可能,也没有人愿意研究。 2.2D是3D的特例。你想要的,都可以在3D里面实现。 3.没有研究过,应该不是很困难。
并不能说2D是3D的特例吧,因为2D可以直接用鼠标操作,而3D要操作的话需要用拾取技术。
哈利_蜘蛛侠 2014-09-10
  • 打赏
  • 举报
回复
引用 3 楼 cuit 的回复:
DirectDraw-->Direct2D
一般的书里也不讲Direct2D呀。
gnimgnot 2014-09-10
  • 打赏
  • 举报
回复
DirectDraw-->Direct2D
ljb1672 2014-09-10
  • 打赏
  • 举报
回复
1.声音更简单。只需要看微软的几个例子就能上手写代码,函数库有几个。我认为因为声音太简单,所以出本书好像不可能,也没有人愿意研究。 2.2D是3D的特例。你想要的,都可以在3D里面实现。 3.没有研究过,应该不是很困难。
彩阳 2014-09-08
  • 打赏
  • 举报
回复
1、有一本书,我看的是英文版,《DirectX游戏音频编程设计》,这本书真的很好很强大。可是这本书有一点年代了。

8,325

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧