Direct3D11学习环境搭建

成功地创建了一个空的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 SDK\Samples\C++\Effects11)。因此,你可以根据需要修改effect框架。本书中,我们只是使用、并不会修改effect框架。要使用这个库,首先需要生成Effects11项目的Release和Debug模式,用于获得Effects11.lib和Effects11D.lib文件。d3dx11Effect.h头文件可在DirectX SDK\Samples\C++\Effects11\Inc文件夹中找到。我们将d3dx11Effect.h放到DirectX SDK\Include目录下,Effects11D.lib和Effects11.lib文件都放在DirectX SDK\Lib\x86目录下,这样所有的项目文件都能共享这些文件。

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就可以了。
右键点击项目,选择菜单中的属性,弹出属性页,如下图。选择 配置属性>链接器>输入,在附加依赖项中添加上面提到的库文件,然后点击应用,确定退出。
这里写图片描述


设置头文件和库文件包含目录

我们在这一步中,需要让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)\Lib\x86。)
这里写图片描述

配置的这些属性在一个项目中无所谓,但是如果以后需要创建大量的DirectX项目,那么就需要一个一个地去配置这些属性,工作非常繁琐而且浪费时间。接下来我们介绍一个可以一劳永逸的方法:点击VS2010窗口顶部菜单 视图 > 属性管理器打开属性管理器窗口,双击属性管理器中的Microsoft.Cpp.Win32.user项目,就会打开一个和之前的属性窗口很像的窗口,如下图。将上面提到的链接库文件、设置包含路径的步骤都在这里完成,确定退出。那么我们以后创建的每个项目都会自动继承这些属性的,这将省去我们很多的时间。
这里写图片描述

我们的项目属性终于配置完成了。那么我们接下来就可以添加代码并调试项目了。


添加代码并调试项目

书中的代码示例在附带光盘中,也可以去书中写到的网址中下载示例代码,网址:http://www.d3dcoder.net/d3d11.htm
在代码示例第6部分中,找到Box项目:
  1.把”Box”项目的源码BoxDemo.cpp拷贝到自己的项目的文件夹中,
  2.把”FX”文件夹也拷贝到自己的项目的文件夹中 。
  3.把”Common”文件夹拷贝过来。并且将路径添加到包含目录中。
在做完这些之后,我们就可以将源码添加到我们的项目中了。如下图:
这里写图片描述

生成项目并运行,就会出现我们预期的效果了。如下图:
这里写图片描述

“无法启动程序,因为计算机中丢失MSVCP100D.dll”的解决方案

到这里,我们配置环境的工作就完成了,并且将BoxDemo示例代码运行成功!之后,我们就可以正式开始D3D11的学习了。


//显卡太老不支持DirectX11
问题:
---------------------------
错误
---------------------------
Direct3D Feature Level 11 unsupported.
---------------------------
确定   
---------------------------
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值