DirectX11--使用DirectX Tool Kit帮助开发

前言(2018/11/4)

DXTK库现在已经不随Github项目提供,因为只用到了其中的键鼠类,已经过提取加入到后续的项目中

但是如果你需要配置DirectXTK到自己的项目当中,可以参考这篇博客进行操作。

否则可以直接跳转到下一章。

章节目录
05 键盘和鼠标输入

DXTK项目

DirectX11 With Windows SDK完整目录

Github项目源码

欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报。

DirectXTK的配置

DirectX Tool Kit是一个包含许多类的集合,用于为公共Windows平台编写Direct3D 11 C++代码。里面包含如下可用的头文件(基本上都在名称空间DirectX中):

头文件描述
Audio.h使用了XAudio2的底层音频API
CommonStates.h一个工厂类,提供了常用的D3D状态对象
DDSTextureLoader.h用于读取DDS文件
DirectXHelpers.h各种各样的助手类,用于帮助D3D程序开发
Effects.h一系列内建着色器的集合,用于日常渲染任务
GamePad.h用于控制手柄
GeometricPrimitive.h用于创建、绘制一些常见的图元如球体、立方体
GraphicsMemory.h用于管理动态图形内存分配
Keyboard.h键盘事件追踪
Model.h通过读取 .COM, .SDKMESH 或者 .VBO模型文件来绘制模型
Mouse.h鼠标时间追踪
PostProcess.h一系列内建着色器用于常见的后期处理操作
PrimitiveBatch.h提供简单高效的,绘制用户图元的方式
ScreenGrab.h轻量级截屏工具
SimpleMath.h简单包装了C++的DirectXMath
SpriteBatch.h提供简单高效的,用于2D精灵渲染的方式
SpriteFont.h基于位图的文字渲染
VertexTypes.h一系列常用于顶点数据的结构体格式
WICTextureLoader.h读取WIC位图的文件
XboxDDSTextureLoader.h用于为XBox读取DDS文件

获取了最新版的DirectX Tool Kit后,里面是一系列解决方案,我们可以根据自己的VS版本打开。这里我选择的是DirectXTK_Desktop_2017_Win10.sln

打开项目后,里面会有三个项目,而我们的关注点仅在第一个项目,可以把该项目单独拉出来操作或者合并到你的解决方案中:

该项目右键–属性–常规–Windows SDK版本检查是不是最新的,否则要变更为当前你的Windows SDK版本。

然后将项目按下面的方式进行修改

其中$(Platform)指代的是Win32或者x64,取决于你现在的设置。

$(Configuration)则指代的是Debug或者Release。

最后就可以编译生成静态库了。(2018/9/3更新:编译不通过的话,如果你的VS更新到了15.8.3,去Github项目的README.md有该问题的解决方法!

而对于其他的项目,这里使用的是属性配置表(.props)文件,根据前面的设置,我们可以做到只用一个属性配置表就能够完成所有平台和配置下的包含路径和库路径设置。

在GitHub项目的DXTK\中已经包含了一份DXTK.props,首先是附加包含目录的配置:

$(SolutionDir)指代的是当前解决方案所在的路径。

然后是附加库目录的配置:

最后是附加依赖项的配置:

当然你也可以自己建立一个属性配置表,按自己的需求来进行设置。

最后在VS的视图中找到属性管理器,直接对项目右键添加现有属性配置表。这样对应的四种平台配置就都包含了这个属性配置表了。

对于多项目的解决方案,如果你的解决方案包含了DirectXTK库,则需要修改项目生成顺序。选择一个项目点击右键-生成依赖项-项目依赖项,然后如果你的当前项目需要依赖该库,就将其打勾:

最后查看项目生成顺序确保DirectXTK库优先生成。

完成这些操作后就可以对该解决方案进行编译了。

DirectX11 With Windows SDK完整目录

Github项目源码

欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报。

不错的dx11入门教程 Tutorial 1: Setting up DirectX 11 with Visual Studio Tutorial 2: Creating a Framework and Window Tutorial 3: Initializing DirectX 11 Tutorial 4: Buffers, Shaders, and HLSL Tutorial 5: Texturing Tutorial 6: Diffuse Lighting Tutorial 7: 3D Model Rendering Tutorial 8: Loading Maya 2011 Models Tutorial 9: Ambient Lighting Tutorial 10: Specular Lighting Tutorial 11: 2D Rendering Tutorial 12: Font Engine Tutorial 13: Direct Input Tutorial 14: Direct Sound Tutorial 15: FPS, CPU Usage, and Timers Tutorial 16: Frustum Culling Tutorial 17: Multitexturing and Texture Arrays Tutorial 18: Light Maps Tutorial 19: Alpha Mapping Tutorial 20: Bump Mapping Tutorial 21: Specular Mapping Tutorial 22: Render to Texture Tutorial 23: Fog Tutorial 24: Clipping Planes Tutorial 25: Texture Translation Tutorial 26: Transparency Tutorial 27: Reflection Tutorial 28: Screen Fades Tutorial 29: Water Tutorial 30: Multiple Point Lights Tutorial 31: 3D Sound Tutorial 32: Glass and Ice Tutorial 33: Fire Tutorial 34: Billboarding Tutorial 35: Depth Buffer Tutorial 36: Blur Tutorial 37: Coming Soon... DirectX 10 Tutorials: Tutorial 1: Setting up DirectX 10 with Visual Studio Tutorial 2: Creating a Framework and Window Tutorial 3: Initializing DirectX 10 Tutorial 4: Buffers, Shaders, and HLSL Tutorial 5: Texturing Tutorial 6: Diffuse Lighting Tutorial 7: 3D Model Rendering Tutorial 8: Loading Maya 2011 Models Tutorial 9: Ambient Lighting Tutorial 10: Specular Lighting Tutorial 11: 2D Rendering Tutorial 12: Font Engine Tutorial 13: Direct Input Tutorial 14: Direct Sound Tutorial 15: FPS, CPU Usage, and Timers Tutorial 16: Frustum Culling Tutorial 17: Multitexturing and Texture Arrays Tutorial 18: Light Maps Tutorial 19: Alpha Mapping Tutorial 20: Bump Mapping Tutorial 21: Specular Mapping Tutorial 22: Render to Texture Tutorial 23: Fog Tutorial 24: Clipping Planes Tutorial 25: Texture Translation Tutorial 26: Transparency Tutorial 27: Reflection Tutorial 28: Screen Fades Tutorial 29: Water Tutorial 30: Multiple Point Lights Tutorial 31: 3D Sound Tutorial 32: Glass and Ice Tutorial 33: Fire Tutorial 34: Billboarding Tutorial 35: Depth Buffer Tutorial 36: Blur Tutorial 37: Coming Soon... DirectX 10 Terrain Tutorials: Tutorial 1: Grid and Camera Movement Tutorial 2: Height Maps Tutorial 3: Terrain Lighting Tutorial 4: Terrain Texturing Tutorial 5: Color Mapped Terrain Tutorial 6: Quad Trees Tutorial 7: Coming Soon... 。。。。。。。。
DirectX(Direct eXtension,简称DX),是由微软公司创建的多媒体编程接口。由C 编程语言实现,遵循COM。它能够帮助windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果。   最新版本为DirectX 11,直接内置在windows7系统中,其他的系统则需要独立安装。   dx11 安装方法: 1、解压下载的文件。 2、双击“directx_11_redist.exe”,点击“YES”--“browse”--选择路径如c:\dx11。 3、进入c:\dx11目录,找到exe文件,双击安装,完成后重启。   DirectX 11 新技术: 1.Direct3D11渲染管线 DirectX 11加入了对Tessellation(镶嵌)的支持。Tessellation 由外壳着色器(Hull Shader)、镶嵌单元(tessellator)以及域着色器(Domain Shader)组成。同时还加入了计算着色器(Compute Shader) 2.Tessellation镶嵌技术 tessellator可以把一些较大的图元(primitive)分成很多更小的图元,并将这些小图元组合到一起,形成一种有序的几何图形,这种几何图形更复杂,当然也更接近现实。这个过程也被称作细分曲面(Subdivision Surfaces)。举例来说,tessellator可以让一个立方体,通过处理看起来像是个球形,这样的话无疑节省了空间。此外,图形的质量、性能以及可控性也达到了一定的促进。 3.多线程的支持 DX11特性还包括很重要一点:支持多线程(multi-threading)。DX11的这种多线程技术可能并不能加速绘图的子系统(特别是当我们的GPU资源受限时),但是这样却可以提升线程启动游戏的效率,并且可以利用台式CPU核心数量不断提高所带来的潜力。  4.计算着色器Compute Shader CS的这一渲染管线能够进行更多的通用目的运算。我们既能在某种可以用来被执行数据的操作中看到这种特性,又能在某种可以用来操作的数据中看到这种特性。  5.Shader Model 5.0 DirectX 11包含的SM 5.0,采用面向对象的概念,并且完全可以支持双精度数据。随着SM 5.0的发布,微软也会将HLSL语言更新至最新版本,其中包含了诸如动态着色、动态分支和更多的对象等。 6.改进的纹理压缩 DirectX 11提出了更为出色的纹理压缩算法——BC6和BC7。BC6是为HDR图像设计的压缩算法,压缩比为6∶1;而BC7是为低动态范围纹理设计的压缩模式,压缩比为3∶1。两种压缩算法在高压缩比下画质损失更少,效果更出色
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值