由于我需要使用一个新机器一段时间,不得不在新机器上配置一下这个工程的环境。所以顺便将配置的步骤记录下来,以便之后遇到类似的需求。
步骤0:从GIT上得到工程源码
工程GIT地址:https://gitee.com/yaksue/yaksue-graphics
虽然可以选择直接下载源码,但还是建议使用GIT:
GIT:https://git-scm.com/
TortoiseGit:https://tortoisegit.org/
步骤1:安装VS2019
从微软VisulStudio官网上下载VS2019并安装
安装时至少勾选 “使用C++的桌面开发”
步骤2:Vulkan环境
下载VulkanSDK并安装。
步骤3:D3D12环境
验证
随后,应该可以看到四种图形API都可以正常工作了,如果有问题,则参见下面的问题排查。
(OpenGL不需要额外的配置操作,如果感兴趣此部分做的操作,可见《试用GLFW并创建OpenGL和DX的环境》和《使用GLAD加载OpenGL的库》)
(D3D11也不需要额外的配置操作,因为配置D3D12的同时D3D11也配置好了。)
问题排查
1)error C2102: “&”要求左值
解决方法来源于Introduction to 3D Game Programming with DirectX 12一书学习记录(第一个例子编译错误)_WhoisPo的专栏-CSDN博客
VkResult 在版本间不一致
这个VkResultStrings.h
是我用自己的小工具生成的,对应于当时的VulkanSDK版本,如果版本间不一致,则这里也需要修改。
Validation Layer
vkEnumerateInstanceLayerProperties
返回了你当前的机器可用的 Validation Layer,可能并不包括我的代码中的VK_LAYER_KHRONOS_validation。为此,需要修改这里的Validation Layer为你的机器中可用的一个,比如上图中的VK_LAYER_LUNARG_standard_validation。