您的位置:首页 > 其它

D3D学习总结基础篇(三)--Direct X 10 初始化

2010-03-17 00:22 155 查看
经过了前两篇文章的纸上谈兵,终于到了完全接触coding的时刻啦。这篇文章说的是D3D程序启动时的初始化过程。如果直接看code,可能会觉得初始化过程非常复杂,并且其实最后也就出来个空白窗口,但如果具体分析每一步的话,可以发现D3D作为底层的图像引擎,已经非常的易用了。另外,按惯例说明下,本文使用了Introduction to 3D Game Programming with DirectX 10中的理论,代码和图片,在很多部分,笔者只是做了翻译整理工作。

--------------------------------分割线-----------------------------------------------------------------------------------------------------------------------

首先,还是理论上说下D3D初始化的过程,一共有6个步骤:

设定swap chain(啥是swap chain,见上一篇博文)。

创建ID3D10Device和 IDXGISwapChain接口,D3D SDK提供了不止一种创建方法。

在swap chain上创建渲染目标视图(render target view)。Render target view上一篇博文漏掉没写,这里补充下:
每一个Texture最终都会被显卡的渲染管线(rendering pipeline)渲染,所以一般来说,我们需要讲Texture和pipeline绑定到一起。而在D3D中,你不是将Texture绑定到每个pipeline上,而是创建一个render target view和pipeline绑定,那这个view是用来做什么的呢,它来告诉显卡,该怎么处理这个Texture,相当于在运行时做类型验证和一些别的验证。在初始化的时候,需要将这些view都创建好,这样无论是效率还是编程的严谨性上来说,都是比较重要的。(这段话包含一些个人意见,仅供参考)。

创建Depth/stencil buffer以及其相关的depth/stencil view。(后面会具体说)

将各个view和渲染管线绑定。

设定viewpoint,这个最简单。

初始化的过程,看起来代码量虽然多,但事实上比较简单,里面没什么图形学的知识,只是一些API的规约。

我把书中的例子配置成一个现成的项目,不出意外可以由vs2008直接打开,有兴趣的朋友可以留个邮箱,大家交流下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: