图形引擎(一):创建Windows应用程序

图形引擎(一):创建Windows应用程序

学习了Real-Time 3D Rendering with DirectX and HLSL(点击查看书籍对应的翻译博客)一书之后我们开始创建一个小巧但功能齐全的图形渲染引擎。

本系统博客不再重复讲解引擎的相关代码,只重点关注与书籍中不同的地方。

概述

第一步主要包括,配置图形引擎以及相应示例的项目工程,然后创建一个基础的Windows应用程序。我们将使用Windows平台的IDE Visual Studio 2015开发工具,并使用DirectX 11 API,以及C++开发语言。

项目配置

引擎主要包括两个部分,一个引擎库Library,以及示例程序Game。需要创建两工程,其中Library工程主要包含图形渲染的通用代码,Game工程是使用引擎开发的示例程序。

目录结构

为了更多的管理工程代码,首先确定统一的工程目录结构。我们主要使用以下的目录结构:
目录名 目录用途
Build 存放图形引擎对应的Visual Studio的solution文件
Assets 存放一些除了工程代码之外的资源文件,比如3D模型,纹理,材质effects等
External 存放第三方库(比如DirectXTK和Effects 11)
Lib 存放Library工程生成的库文件,以及第三库的库文件(.lib文件)
Source\Game 存放Game工程的代码
Source\Library 存放Library工程的代码

创建工程

关于如何创建工程,详细请看书籍对应的翻译博客

创建好了Library和Game工程之后,还需要添加Effects 11和DirectXTK工程。由于这两个工程的源码已经存放在External目录中,所以在RenderEngine Solution中添加已存在的工程,把这两个工程导入到解决方案中。(注意:Effects 11和DirectXTK都是由源码的形式发布的,需要自己编译,源码下载地址为:Effects 11,DirectXTK)

工程创建之后,Solution Explorer的视图为:


工程依赖和编译顺序

接下来,设置正确的工程依赖和编译顺序,其中Game工程需要依赖Library库,而Library工程又依赖Effects 11和DirectXTK库。在Solution Explorer panel中点键点击Game工程的Refrences子项,在弹出菜单中选择Add Refrences,然后在Add Refrence对话框中勾选Library,如图
图形引擎(一):创建Windows应用程序_第1张图片
然后在Library工程中执行同样的操作,在Add Refrence中添加DirectXTK和Effects 11。

设置包含目录

为了使projects在编译时能够找到DirectX的头文件,需要在project配置中指定一些文件路径。为些,在Solution Explorer panel中右键点击Library project并在弹出菜单中选择 Propertiees打开Property Pages。切换到 Configuration Propertiees(配置属性)-->C/C++-->General,然后参照下图,编辑 Additional Include Directories。确保在debut和release选项中都进行了配置。
图形引擎(一):创建Windows应用程序_第2张图片
在Game工程中重复这些路径配置,并增加一个路径:
$(SolutionDir)..\source\Library
这个配置允许Game project中的source files(源文件)直接包含Library project中的header files(头文件)。

设置链接库及目录

下面开始配置链接选项,打开Game project的Property Pages,转到 Configuration Properties-->Linker-->Input选项页。参照下表图,编辑 Additional Dependencies部分的依赖库文件。注意一下debug和release配置项的区别。
图形引擎(一):创建Windows应用程序_第3张图片
与指定头文件包含路径一样,也要在Visual Studio中指定库文件的包含路径。这些路径由 Additional Library Directories编辑项指定,该选项位于Property Pages对话框的 Configuration Properties-->Linker-->General选项页中。编辑该路径,使其与下图一致
图形引擎(一):创建Windows应用程序_第4张图片

设置编译事件

前面讨论目录结构的时候,已经说明所有的库文件都要存放到Lib目录中,所以在Library,Effects11以及DirectXTK工程编译成功之后需要把对应的库文件拷贝到Lib目录中,当然你也可以直接设置工程的输出目录为Lib目录。
要在编译后拷贝文件,需要在Build Events中添加DOS批处理命令,如下图所示
图形引擎(一):创建Windows应用程序_第5张图片
由于需要把所有的.lib库文件都存放到同一个Lib目录,所以需要针对debug和release版本使用一个不同的文件名,针对debug版都在文件名末尾带一个字母d,比如Libraryd.lib。 需要在Properties Pages对话框的 Configuration Properties-->Ganeral 选项页中修改 Target Name 项。

添加工程代码

完成了工程的配置之后,就可以添加图形引擎的相关代码了。(详细的代码介绍 请查看博客)
然后编译Game工程,并运行第一个窗口应用程序。到目前为止,只是添加了Windows窗口程序,还没有任何Direct3D渲染相关的代码,接下来将继续实现引擎的DirectX 11 API部分。

图形引擎第一步的完整工程代码及配置:

http://download.csdn.net/detail/chenjinxian_3d/9576787

你可能感兴趣的:(Rendering,with,DirectX,&&,HLSL)