转载请注明出处: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的安装过程中可能会出现安装错误,如下图:
 
2.Visual Studio 2010镜像
龙书中教程使用的IDE是vs2010,我电脑中已经安装过了vs2010,所以就不贴镜像网址了。
 
二、创建一个win32项目
1.运行vs2010,打开菜单文件>新建>项目,如下图所示:
 
 
2.出现新建项目对话框后,选择Visual C++ > Win32选项,选择Win32项目,接下来输入项目名称并选择你想要创建的项目路径。如果为解决方案创建目录选项默认勾选了,把它取消勾选。点击确定按钮。如下图:
 
3.接下来弹出一个新的对话框窗口,如下图。这个对话框左边有两个选项:概述和应用程序设置。选择应用程序设置选项,对话框窗口出现应用程序设置页面。在应用程序类型中选择Windows应用程序,在附加选项中选择空项目。然后点击完成按钮。
 
到这为止,我们已经成功地创建了一个空的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"文件夹拷贝过来。并且将路径添加到包含目录中。
在做完这些之后,我们就可以将源码添加到我们的项目中了。如下图:
 
生成项目并运行,就会出现我们预期的效果了。如下图:
 
 
到这里,我们配置环境的工作就完成了,并且将BoxDemo示例代码运行成功!
之后,我们就可以正式开始D3D11的学习了。

Direct3D11学习:(一)开发环境配置的更多相关文章

  1. smarty 学习 ——smarty 开发环境配置

    smarty 对于开发的便利性不用多说了,直接进行开发环境的配置. 1.下载smarty 开发包 直接在官网进行下载即可 2.引用开发核心库 将libs文件中的东西拷贝到工程. smarty.clas ...

  2. JAVA学习之开发环境配置

    JAVA SDK 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 版 ...

  3. 20140613_JavaWeb学习之开发环境配置篇

    本文所使用软件百度云盘网址:http://pan.baidu.com/s/1kTDRFwz 1安装JDK 操作系统:windows7-64bit 版本号:jdk-7u51-windows-x64 安装 ...

  4. Django:学习笔记(1)——开发环境配置

    Django:学习笔记(1)——开发环境配置 Django的安装与配置 安装Django 首先,我们可以执行python -m django --version命令,查看是否已安装django. 如果 ...

  5. [eShopOnContainers 学习系列] - 02 - vs 2017 开发环境配置

    [eShopOnContainers 学习系列] - 02 - vs 2017 开发环境配置 https://github.com/dotnet-architecture/eShopOnContain ...

  6. 学习spring1--跟我一起学Spring 3(2)–开发环境配置

    http://www.importnew.com/13185.html#spring     首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 - 首页 所 ...

  7. 【webpack学习笔记】a06-生产环境和开发环境配置

    生产环境和开发环境的配置目标不一样,生产环境主要是让文件压缩得更小,更优化资源,改善加载时间. 而开发环境,主要是要开发更方便,更节省时间,比如调试比如自动刷新. 所以可以分开配置不同的开发环境,然后 ...

  8. Mac电脑配置IOS React Native开发环境配置笔记

    React Native(以下简称RN)的开发环境配置直接参考官方文档即可完成,不过对小白来说东西有点多,有些名词不是很好理解,这里就官方的安装文档稍微展开说一下. 中文版配置说明:不错的中文说明.官 ...

  9. Fedora和Ubuntu下安装OpenGL开发环境配置

    Fedora下OpenGl开发环境配置 开发OpenGL工程需要3个库文件和对应的头文件: libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h 这些库 ...

  10. 【Objective-C】Windows下Objective-C开发环境配置

    [Objective-C]Windows下Objective-C开发环境配置 ftp://ftpmain.gnustep.org/pub/gnustep/binaries/windows/   最近打 ...

随机推荐

  1. Jmeter之JDBC Request使用方法(oracle)

    JDBC Request: 这个sampler可以向数据库发送一个jdbc请求(sql语句),它经常需要和JDBC Connection Configuration 配置元件一起配合使用. 目录: 一 ...

  2. python 相关安装和配置

    永久链接: http://michaelzqm.iteye.com/blog/1841966 预览文章: python环境搭建   2013-04-04 博客分类: 综合   一. window环境安 ...

  3. 【html】button按钮的一些问题

    问题: button 按钮在不设置 type 属性时,在不同的浏览器作用不一样.举个例子: html: <!doctype html> <html lang="en&quo ...

  4. QQ空间直播秒开优化实践[读]

    http://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==&mid=2649796799&idx=1&sn=42061b7d021b8d8 ...

  5. 使用sphinx生成Python文档

    发现找不到matplotlib.sphinxext.mathmpl: 可以直接easy_install matplotlib,也可以去这里下载安装包 发现exception: matplotlib r ...

  6. 使用U盘代替光盘来刻录ISO镜像文件的方法

    原文链接: http://jingyan.baidu.com/article/d3b74d64aa4a6a1f77e60932.html 1.以管理员身份运行UltraISO,点击“文件”菜单下的“打 ...

  7. worksteal thread pool

    worksteal的场景 对于一个线程池,每个线程有一个队列,想象这种场景,有的线程队列中有大量的比较耗时的任务堆积,而有的线程队列却是空的,现象就是有的线程处于饥饿状态,而有的线程处于消化不良的状态 ...

  8. 通过PowerShell获取TCP响应(类Telnet)

    通常情况下,为了检测指定的TCP端口是否存活,我们都是通过telnet指定的端口看是否有响应来确定,然而默认情况下win8以后的系统默认是不安装telnet的.设想一下如果你黑进了一个服务器,上面没装 ...

  9. JavaScript中的setMonth()方法的小问题 解决:setMonth(month, 1)

    今天测试人员发现一个问题,从英文日期转化中文日期,月份总会有“6月”变为“7月”.于是我在本地反复测试,发现如下规律:只要setMonth()的参数为小于31天的月份时就会变为下一个月. 原因是:因为 ...

  10. c++中两个类互相引用的问题

    最近在改一个C++程序的时候碰到一条警告信息,警告信息为:“ 删除指向不完整“Q2DTorusNode”类型的指针:没有调用析构函数                1> c:\users\lxw ...