DirectX11 With Windows SDK教程演示项目
现代DX11系列教程:使用Windows SDK(C++)开发Direct3D 11.x
注意:
- 2.x.x和1.x.x的主要区别在于19章之后的代码有大幅修改。
- 若更新项目后渲染显示有问题,尝试删除Shaders/Cache文件夹
博客教程
CSDN目前停更
QQ群交流
QQ群号:727623616
欢迎大家来交流,以及项目有什么问题也可以在这里提出。
CMake构建项目
命令行构建
在Win10系统下,若安装cmake的时候添加了环境变量,则可以直接运行build_msvc.cmd
来生成项目并构建项目,完成后打开build文件夹可以找到解决方案,然后切换到Release x64就可以直接运行。
GUI构建
使用cmake-gui.exe
填写源码路径和构建路径,然后只需要关注下面一个变量:
WIN_SYSTEM_SUPPORT
:默认关闭,仅Win7用户需要勾选
然后就可以点Generate
生成项目,生成的解决方案位于build文件夹内,或者点Open Project
打开
打开教程项目
打开CMake生成的项目,建议切换成Release x64。若要指定运行哪个项目,需要对项目右键-设为启动项。然后就可以生成并运行了
注意:
- 目前教程仅支持VS2017(或平台工具集v141)及更高版本!
- 由于Assimp不支持Win32(x86),本项目仅支持64位系统
- Win7打开需要安装Service Pack 1以及KB2670838补丁
项目概况
语言:
- C++17
- HLSL Shader Model 5.0
目前项目使用了下述代码库或文件:
- ocornut/imgui:当前已经为这些项目使用ImGui:第7、10、15、16、17、20、23、30-39章。
- nothings/stb:使用其stb_image
- assimp/assimp:模型加载
- DirectXTex/DDSTextureLoader
- DirectXTex/WICTextureLoader
- DirectXTex/ScreenGrab
- DirectXTK/Mouse(源码上有所修改):不能和imgui同时使用
- DirectXTK/Keyboard(源码上有所修改):不能和imgui同时使用
作为教程演示项目,这里并不是以实现一个软引擎为目标。建议读者在跟随教程学习的同时要动手实践。
打包教程示例程序
以项目31的程序(Release x64)为例,其文件结构应为:
Project 31
|----Model/ (挑出项目用到的模型)
|----Texture/ (挑出项目用到的纹理)
|----31 Shadow Mapping/ (此处命名自由发挥,比如bin)
|----31 Shadow Mapping.exe
|----imgui.ini
|----assimp-vc14*-mt.dll (从build/Assimp/bin/Release(或Debug)复制一份)
|----Shaders/
支持/赞赏博主
博客和项目维护不易,如果本系列教程对您有所帮助,希望能够扫码支持一下博主。
使用Direct3D 11.x(Windows SDK)编写的魔方
最近更新
- 2023/2/25 Ver2.38.4
- 修复项目32的报错问题
- 处理Transform获取欧拉角时的死锁问题
- EffectHelper类少量调整