对dx9 2D渲染 的一些基础认识

之前项目非常紧张,再加上自己常常偷懒,一直没有学习。最近项目完了,又懒散了好长一段时间。不能再这样下去了。

这段时间看了看 dx9 2D渲染相关的内容。废话不多说了,先做个大概的总结吧。以后有空了再来个一个详细的。


dx9 2d 渲染相关的文章不大好找,baidu 上几乎搜索不到什么资料,上google才能找到一些零碎的东西。一直想找本书系统地学习一下,但是都没有一本比较系统的书。一些比较系统地书籍都是针对老版本的dx8的,甚至许多都是在讲ddraw的。

下面这两个链接的资料没有仔细看,讲的是dx8 d3d 绘制 2d 的,如果 dx9 能画出来的话,应该有参考价值:

http://www.cnblogs.com/resound/archive/2010/08/12/1797738.html

http://www.cnblogs.com/resound/archive/2010/08/11/1797645.html

不知道是不是从 focus on 2d in direct3d 里面的内容。

还有另外一个转了又转的博客,我找不到链接地址了,内容也不是原创,但是我是参考上面的内容成功显示出2d图片的。


dx9显示2d 基本有3种方法:

1. 利用 ID3DXSprite 接口。 这是dx 提供的 com 接口, 功能应该比较完善。我不喜欢这种做法, 因为许多技术细节被封装起来了。

2. fvf 里面使用  rhw . 我试了试,能显示出来。但是可能由于是自己不了解吧,至少我的感觉是矩阵变换不能使用了,感觉还是有许多东西自己看不到,我也不喜欢这种做法。

3. 设置正交的投影矩阵,然后像绘制 3d场景一样地,绘制 2d 资源。 我个人比较喜欢这种做法。支持各种矩阵变换,实现细节都要比上面两种方式接触的更多。


通过对 3d 矩阵变换的封装, 也能做出来一套从外面看来与顶点变换无关的2d 渲染代码。

之前豪情壮志地想自己实现一套AuroraGT, 但是发现有许多技术细节都不了解,实现起来难度相当不小。于是放弃了这个念头,就打算利用AuroraGT ,来做一个小的游戏demo.

最近两天完成了解析sprite 文件,导入 sprite 文件数据的功能, 并且结合了 d3d 绘制 2d 的代码,算是搭了个雏形。趁着这些天事情不多,尽量多抽时间做一做吧。

为了方便公司和在家不同地点写代码,用了google code, 用 subversion 进行版本控制,感觉很方便。

下面这个小 demo 的 google code 地址。代码写得很糙。尽量用自己的知识完善完善吧。

http://code.google.com/p/miaotestusingaurora/


dx9 方面还有许多知识上的欠缺,需要尽快学习,然后把这些功能整合到这个小demo 里面去。

比较大的有以下几块

1. dx 的 stencil

2. dx 实现 particile system.

3. shader HLSL

4. 对 dx alpha通道的机制还不完全了解,目前只能照葫芦画瓢。


参考资料方面,我觉得还是应该首先多读,读懂 dx9 龙书。

之前一些讲 dx8 渲染 2d 的书籍不原意看,主要是因为照着上面敲例子,没法看到结果。现在能够显示2d 图形了,可以参考参考。比如那本 focus on 2d in d3d.

将来水平高些了,再看看大名鼎鼎的 HGE 引擎是如何实现的吧。


目前 dx9 给我的感觉就是知识很零碎,学习起来抓不到重点的感觉。

另外,目前给这个 demo 写得代码,主要都是针对如何支持 AuroraGT 的。希望这些经验在下个项目能用得上。


先随便侃这么多,以后有机会,附上一些代码再仔细聊吧。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值