欢迎光临散文网 会员登陆 & 注册

01b. The-Forge 入门教程 - Vulkan

2020-11-08 23:45 作者:AICDG  | 我要投稿

上一篇绘制三角形的教程作为系列第一篇教程,会稍微详细一些。但是这一篇教程开始,已经出现过的代码就不会再赘述。在绘制三角形之外,我个人觉得The-Forge还有一些细节可以讲解,但是和渲染关系又不是很大,所以放在第01讲和02讲之间,作为补充知识点。以实用技巧为主,大家也可以不去过分深究其原理。本节的内容是如何将项目由DX切换成vulkan。这样,一些对DX12不是很熟,但是对vulkan更加熟悉一些的朋友,在使用渲染debugger的时候可以更加顺手一些。

如果用The-Forge提供的Demo,其实很简单,只要将运行配置由DebugDx切换到DebugVk,再编译运行,就可以将渲染API由DX12切换到Vulkan。但是,如果是自己的工程,就需要做一些配置。

首先需要VS构建DebugVk版本的The-Forge

library path由 The-Forge\Examples_3\Unit_Tests\PC Visual Studio 2017\x64\DebugDx 切换到 The-Forge\Examples_3\Unit_Tests\PC Visual Studio 2017\x64\DebugVk

依赖库去掉RendererDX12.lib,添加 RendererVulkan.lib,SpirvTools.lib,vulkan-1.lib

将宏定义中的 DIRECT3D12 切换为 VULKAN

到此,构建运行即可。c++代码本身不需要做任何改动。

不过,运行时会发现shader无法编译,这是因为The-Forge默认要求Vulkan下使用GLSL而非HLSL,你当然可以选择将shader用GLSL重写一遍,不过The-Forge也提供了一个更好的选择,将shader从HLSL转换为GLSL

在实际开发中,我个人也更偏向于使用HLSL而非GLSL

Common_3\ThirdParty\OpenSource\hlslparser\Parser\Parser.sln

编译并允许,可以得到HLSL到GLSL/MSL的转换器,支持webUI和命令行两种使用方式,本文先以webUI为例

VS
PS

将HLSL的vs和ps分别转换为GLSL的VS和FS即可。并且,相比主流的HLSLcc,The-Forge生成的GLSL/MSL,可读性意外的非常不错。

将转换后的GLSL代码放到<exe路径>/shaders/vk下,编译运行程序,可以得到结果



01b. The-Forge 入门教程 - Vulkan的评论 (共 条)

分享到微博请遵守国家法律