Direct3D11学习:(一)开发环境配置

摘要:
我之前也没有接触过Direct3D9,在网络上咨询过一些大神,大家都推荐直接从D3D11开始学起。首先,在学习D3D之前,必须要做的就是开发环境的配置。这篇文章主要讲解了D3D11开发环境的配置过程,创建并调试运行书中的一个例子BoxDemo。但是要能创建DirectX项目示例,我们还需要做一些事情。在Direct3D11中,Effects框架已从D3DX库中移除,你必须包含一个单独的头文件,链接一个单独的库文件。而且,在Direct3D11中提供了effect库的完整源代码。d3dx11Effect.h头文件可在DirectXSDKSamplesC++Effects11Inc文件夹中找到。
转载请注明出处:http://www.cnblogs.com/Ray1024
从今天开始,开启一个新的系列:Direct3D11的学习教程。
因为一直对3D方面比较感兴趣,最近决定开始学习D3D知识。我之前也没有接触过Direct3D9,在网络上咨询过一些大神,大家都推荐直接从D3D11开始学起。我想了好久终于下决心买了一本D3D11的龙书《Introduction to 3D Game Programming: With Directx 11》,可惜这本书目前只有英文版。自己可怜的英文当初四级都差点没过,只能逼着自己,一定要坚持下去啊。
写这个系列的博客有多方面的考虑,一方面用这种方式监督自己的学习,另一方面记录一下自己的学习历程,也跟大家交流一下学习过程中的问题和心得。
首先,在学习D3D之前,必须要做的就是开发环境的配置。这篇文章主要讲解了D3D11开发环境的配置过程,创建并调试运行书中的一个例子BoxDemo。
一.工具准备
1.DirectX11 SDK安装包
安装包选择微软官网下载,我选择的SDK版本是DXSDK_Jun10.exe。下载网址:https://www.microsoft.com/en-us/download/details.aspx?id=6812
按照安装提示安装完成。
注意DXSDK_Jun10.exe的安装过程中可能会出现安装错误,如下图:
Direct3D11学习:(一)开发环境配置第1张
解决方法参考这里:http://www.cnblogs.com/Ray1024/p/6066549.html
2.Visual Studio 2010镜像
龙书中教程使用的IDE是vs2010,我电脑中已经安装过了vs2010,所以就不贴镜像网址了。
二、创建一个win32项目
1.运行vs2010,打开菜单文件>新建>项目,如下图所示:
Direct3D11学习:(一)开发环境配置第2张
2.出现新建项目对话框后,选择Visual C++ > Win32选项,选择Win32项目,接下来输入项目名称并选择你想要创建的项目路径。如果为解决方案创建目录选项默认勾选了,把它取消勾选。点击确定按钮。如下图:
Direct3D11学习:(一)开发环境配置第3张
3.接下来弹出一个新的对话框窗口,如下图。这个对话框左边有两个选项:概述和应用程序设置。选择应用程序设置选项,对话框窗口出现应用程序设置页面。在应用程序类型中选择Windows应用程序,在附加选项中选择空项目。然后点击完成按钮。
Direct3D11学习:(一)开发环境配置第4张
到这为止,我们已经成功地创建了一个空的Win32项目。但是要能创建DirectX项目示例,我们还需要做一些事情。
三、链接DirectX库文件
1.编译Effect库
Effect框架是微软额外提供的一个程序框架,用于管理着色器程序和渲染状态的工具代码,使用户在程序中使用shader时与C++程序更方便地衔接。这个框架对于编写D3D程序来说不是必需的,好比D3DX库对于D3D程序来说也是可有可无的。但它毕竟大大方便了我们使用shader,在学习过程把心思放在要点上,因此在后面学习过程中将全程使用Effect框架。

在Direct3D 11中,Effects框架已从D3DX库中移除,你必须包含一个单独的头文件(d3dx11Effect.h),链接一个单独的库文件(Effects11.lib用于release生成,而Effects11D.lib用于debug生成)。

而且,在Direct3D 11中提供了effect库的完整源代码(DirectX SDKSamplesC++Effects11)。因此,你可以根据需要修改effect框架。本书中,我们只是使用、并不会修改effect框架。要使用这个库,首先需要生成Effects11项目的Release和Debug模式,用于获得Effects11.lib和Effects11D.lib文件。d3dx11Effect.h头文件可在DirectX SDKSamplesC++Effects11Inc文件夹中找到。我们将d3dx11Effect.h放到DirectX SDKInclude目录下,Effects11D.lib和Effects11.lib文件都放在DirectX SDKLibx86目录下,这样所有的项目文件都能共享这些文件。

2.链接DirectX库文件
我们需要将Direct3D的库文件链接到我们的项目中。
项目Debug版本需要的库文件是:
d3d11.lib;
d3dx11d.lib;
D3DCompiler.lib;
Effects11d.lib;
dxerr.lib;
dxgi.lib;
dxguid.lib;
对于项目Release版本需要的库文件,和上面的Debug版本差不多,只需要把d3dx11d.lib和Effects11d.lib换成d3dx11.lib和Effects11.lib就可以了。
右键点击项目,选择菜单中的属性,弹出属性页,如下图。选择 配置属性>链接器>输入,在附加依赖项中添加上面提到的库文件,然后点击应用确定退出。
Direct3D11学习:(一)开发环境配置第5张
四、设置头文件和库文件包含目录
我们在这一步中,需要让Visual Studio知道去哪里找DirectX的头文件和库文件。
右键点击项目,选择菜单中的属性,弹出属性页,如下图。选择 配置属性>VC++目录,在包含目录中添加DirectX头文件路径,在库目录中添加DirectX库文件路径,然后点击应用确定退出。
(注:这个路径是取决于你把DirectX SDK安装到哪了,我安装在C:Program Files (x86)Microsoft DirectX SDK (June 2010),所以包含目录为C:Program Files (x86)Microsoft DirectX SDK (June 2010)Include,库目录为C:Program Files (x86)Microsoft DirectX SDK (June 2010)Libx86。)
Direct3D11学习:(一)开发环境配置第6张
配置的这些属性在一个项目中无所谓,但是如果以后需要创建大量的DirectX项目,那么就需要一个一个地去配置这些属性,工作非常繁琐而且浪费时间。接下来我们介绍一个可以一劳永逸的方法:点击VS2010窗口顶部菜单 视图 > 属性管理器打开属性管理器窗口,双击属性管理器中的Microsoft.Cpp.Win32.user项目,就会打开一个和之前的属性窗口很像的窗口,如下图。将上面提到的链接库文件、设置包含路径的步骤都在这里完成,确定退出。那么我们以后创建的每个项目都会自动继承这些属性的,这将省去我们很多的时间。
Direct3D11学习:(一)开发环境配置第7张
我们的项目属性终于配置完成了。那么我们接下来就可以添加代码并调试项目了。
五、添加代码并调试项目
书中的代码示例在附带光盘中,也可以去书中写到的网址中下载示例代码,网址:http://www.d3dcoder.net/d3d11.htm
在代码示例第6部分中,找到Box项目:
1.把"Box"项目的源码BoxDemo.cpp拷贝到自己的项目的文件夹中,
2.把"FX"文件夹也拷贝到自己的项目的文件夹中 。
3.把"Common"文件夹拷贝过来。并且将路径添加到包含目录中。
在做完这些之后,我们就可以将源码添加到我们的项目中了。如下图:
Direct3D11学习:(一)开发环境配置第8张
生成项目并运行,就会出现我们预期的效果了。如下图:
Direct3D11学习:(一)开发环境配置第9张
到这里,我们配置环境的工作就完成了,并且将BoxDemo示例代码运行成功!
之后,我们就可以正式开始D3D11的学习了。

免责声明:文章转载自《Direct3D11学习:(一)开发环境配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇netty 解决TCP粘包与拆包问题(二)raid5硬盘硬件修复;条带分析方法;阵列重组下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Git系列(1) Windows下Git服务器搭建

  作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作。 (一)服务端软件和账号的安装配置   我们这里只需要两个软件git和ssh,软件版本如下,这两个版本的安装也是非常简单,基本只要注意一点即可:安装目录最好不要用默认路径,确保安装路径中没有空格。其他步骤基本一路Next即可。 ...

J2EE学习篇之--Struts2技术详解

前面说到了Struts1的相关知识,下面来说一下Struts2的相关知识,我们知道现在Struts2使用的比Struts1多,Struts2已经替代Struts1成为主流的框架了。。。 摘要Struts2是在WebWork2基础发展而来的。和struts1一样, Struts2也属于MVC框架。不过有一点大家需要注意的是:尽管Struts2和Struts...

tools的作用

1、相对布局中这个包是从哪里来。tools:context=".MainActivity"? 这些tools 属性主要针对模拟器 调试时候显示状态,编译中不起作用。 AndroidStudio会根据xml文件实时的绘制我们的布局文件的样式,但是我们也可以在Acitivity中设置布局文件的样式,因此对于一个xml布局文件,我们要知道哪个Activity会修...

Linux项目部署

Linux 项目部署 Chmod 777 绝对路径  ——  修改文件夹权限 Linux 上传下载文件 rz  上传文件    在shell终端仿真器中输入命令  即可从弹出的对话框中选择本地磁盘上的文件,利用Zmodem上传到服务器当前路径下。 sz 下载文件 在shell终端仿真器中输入命令 即可利用Zmodem将文件下载到本地某目录下。 下载的文件...

配置文件入门 WebConfig.config常用配置节点介绍

  一、配置文件入门   .Net提供了一种保存项目配置信息的办法,就是利用配置文件,配置文件的后缀一般是.config。在WinForm程序中配置文件一般是App.config。在Asp.net中一般默认是web.config。   一个.config配置文件都是基于XML的文本文件,并且可以保存到Web应用程序中的任何目录中。在发布Web应用程序时we...

ACE安装和配置

1 -- ACE的主页以及下载链接 下载ACE源码以及ACE的编程文档:http://www.cs.wustl.edu/~schmidt/ACE.html 2 -- 编译前准备 源代码包解压之后,会在该目录下生成一个名称为ACE_wrappers的子目录,该目录是发行包的顶级目录,称为$ACE_ROOT,其中包括ACE的源代码、工具和例子。ACE源代码和...