ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

FidelityFX SDK Samples 构建指南:从环境准备到 Visual Studio 生成与运行(DX12/VK)

FidelityFX SDK Samples 构建指南:从环境准备到 Visual Studio 生成与运行(DX12/VK) 图形学游戏开发【免费下载链接】dlssg-to-fsr3Adds AMD FSR 3 Frame Generation to games by replacing Nvidia DLSS Frame Generation (nvngx_dlssg).项目地址https://gitcode.com/gh_mirrors/dl/dlssg-to-fsr3点击查看免费下载本篇指南基于 AMD FidelityFX SDK 官方文档《Building FidelityFX SDK Samples》展开完整讲解如何从零生成并构建 SDK 附带的全部示例程序Samples包括所需工具链的最低版本要求、BuildSamplesSolutionDX12.bat/BuildSamplesSolutionVK.bat批处理的交互式流程与背后的 CMake 行为以及在 Visual Studio 中编译、启动与运行示例的完整步骤。读完本文你将能够在 Windows 上独立生成FidelityFX SDK [DX12/VK] Samples.sln解决方案并针对 DX12 或 Vulkan 后端自由选择要构建的 FidelityFX 效果示例。概述FidelityFX SDK 与示例程序的关系FidelityFX SDK 是一套开源的、面向 DirectX 12 与 Vulkan 的高性能图形效果集合着色器与运行时代码涵盖超分辨率、帧生成、环境光遮蔽、阴影、景深、模糊、镜头效果等数十种效果全部示例均使用 C 编写并基于 FidelityFX Cauldron Framework 示例框架构建见 SDK 官方介绍。在仓库中FidelityFX SDK 位于 dependencies/FidelityFX-SDK 目录下。其构建体系分为两层SDK 后端层由 sdk/BuildFidelityFXSDK.bat 驱动负责把效果组件与对应图形 API 后端编译成静态库或 DLL示例层由 BuildSamplesSolutionDX12.bat 或 BuildSamplesSolutionVK.bat 驱动先生成/构建 SDK 后端再生成包含所有示例工程的 Visual Studio 解决方案。前置条件工具链与最低版本要求要构建 SDK 示例首先需要安装以下软件开发工具并满足最低版本要求引用自官方文档工具最低版本要求用途CMake3.17 - 3.30项目配置与解决方案生成本仓库 SDK 层实际要求cmake_minimum_required(VERSION 3.23)见 sdk/CMakeLists.txtVisual Studio2019编译示例程序并承载解决方案.slnWindows 10 SDK10.0.18362.0Windows 平台头文件与库Vulkan SDK1.3.239构建 Vulkan 后端示例所需的 Vulkan 头文件、验证层与工具注意即使只构建 DX12 后端官方文档仍建议安装 Vulkan SDK——SDK 的着色器编译工具链如glslangValidator.exe与若干共享工具会依赖它。从源码看CMake 版本约束在 dependencies/FidelityFX-SDK/CMakeLists.txt#L23 与 dependencies/FidelityFX-SDK/sdk/CMakeLists.txt#L23 中均被声明为 3.23 及以上因此若你的 CMake 版本介于 3.23 与 3.30 之间可以同时满足文档要求与源码约束。生成 Visual Studio 解决方案两种批处理脚本安装好上述工具后进入 FidelityFX SDK 根目录即仓库中的 dependencies/FidelityFX-SDK根据目标图形 API 运行对应的批处理脚本# DirectX 12 后端 BuildSamplesSolutionDX12.bat # Vulkan 后端 BuildSamplesSolutionVK.bat交互式问答是否将 SDK 构建为 DLL脚本运行后会首先询问Build the SDK as DLL [y/n]?输入y将 SDK 构建为动态链接库DLL。脚本会追加-DFFX_BUILD_AS_DLL1编译选项见 BuildSamplesSolutionDX12.bat生成的可执行文件在运行时动态加载 SDK DLL输入n或其它字符将 SDK 构建为静态链接库效果组件代码直接静态链接进示例程序。对应到源码该逻辑在 BuildSamplesSolutionDX12.bat#L35-L41 中实现Vulkan 版本完全一致BuildSamplesSolutionVK.bat#L35-L41。交互式问答选择要构建的示例随后脚本会打印一份示例清单并询问1. ALL 2. BLUR 3. BREADCRUMBS 4. BRIXELIZER GI 5. CACAO 6. CAS 7. DOF 8. FSR 9. HYBRID REFLECTIONS 10. HYBRID SHADOWS 11. LENS 12. LPM 13. PARALLEL SORT 14. SPD 15. SSSR 16. VRS Enter numbers of which samples to build [space delimitted]:输入1构建全部示例对应 CMake 选项-DFFX_ALLON输入一组以空格分隔的编号如2 5 8仅构建对应示例。每个编号会映射为对应的 CMake 开关FFX_BLUR、FFX_CACAO、FFX_FSR等同时脚本还会自动补充示例所依赖的 SDK 组件。例如选择4 BRIXELIZER GI时脚本会同时开启FFX_BRIXELIZER与FFX_BRIXELIZER_GIBuildSamplesSolutionDX12.bat#L78-L81选择9 HYBRID REFLECTIONS时会一并开启FFX_CLASSIFIER、FFX_DENOISER、FFX_SPDBuildSamplesSolutionDX12.bat#L98-L101选择15 SSSR时会一并开启FFX_DENOISERBuildSamplesSolutionDX12.bat#L122-L125。这些依赖关系同样体现在 CMake 侧例如 dependencies/FidelityFX-SDK/sdk/CMakeLists.txt#L152-L160 中开启FFX_FSR3会自动默认开启FFX_FSR3UPSCALER、FFX_FI、FFX_OF三个 API开启FFX_SSSR会自动默认开启FFX_DENOISER。脚本背后的完整构建流程两个批处理脚本的流程完全一致以 DX12 版本为例BuildSamplesSolutionDX12.bat架构检测根据PROCESSOR_ARCHITECTURE环境变量自动判定为X64或ARM64并追加-Ax64或-AARM64与-DCMAKE_GENERATOR_PLATFORM参数BuildSamplesSolutionDX12.bat#L134-L144构建 SDK 后端进入sdk子目录调用BuildFidelityFXSDK.bat传入后端选项-DFFX_API_BACKENDDX12_X64与用户选择的组件开关BuildSamplesSolutionDX12.bat#L147-L153清理旧缓存在根目录创建build\目录并删除其中的CMakeFiles\与CMakeCache.txt避免脏缓存影响新配置BuildSamplesSolutionDX12.bat#L156-L168生成解决方案在build\目录中执行cmake .. -DBUILD_TYPESAMPLES_DX12 samples_build_optionsBuildSamplesSolutionDX12.bat#L174Vulkan 版本对应为cmake -A x64 .. -DBUILD_TYPESAMPLES_VK ...BuildSamplesSolutionVK.bat#L161。其中BUILD_TYPE是顶层 dependencies/FidelityFX-SDK/CMakeLists.txt 强制要求的变量取值必须是CAULDRON、SAMPLES_DX12、SAMPLES_VK三者之一否则会直接报错退出CMakeLists.txt#L25-L42。SAMPLES_DX12与SAMPLES_VK分别会把解决方案命名为FidelityFX SDK DX12 Samples与FidelityFX SDK VK SamplesCMakeLists.txt#L34-L39。而 SDK 后端构建脚本 sdk/BuildFidelityFXSDK.bat 本身也会检查cmake --version未找到 CMake 时直接退出BuildFidelityFXSDK.bat#L34-L41无参数调用时默认使用-DFFX_API_BACKENDDX12_arch -DFFX_ALLON -DFFX_AUTO_COMPILE_SHADERS1BuildFidelityFXSDK.bat#L71-L76配置完成后依次以Debug、Release、RelWithDebInfo三种配置并行编译--parallel 4并把生成的库输出到bin\ffx_sdk\目录BuildFidelityFXSDK.bat#L80-L82、sdk/CMakeLists.txt#L122-L125。生成的输出构建脚本执行完毕后会在 FidelityFX SDK 根目录下生成build\目录包含解决方案文件FidelityFX SDK [DX12/VK] Samples.sln即FidelityFX SDK DX12 Samples.sln或FidelityFX SDK VK Samples.slnbin\目录包含编译输出的可执行文件、配置configs、着色器shaders与 SDK 库文件。另外需要说明示例构建通过 common.cmake 定义了大量路径变量包括BIN_OUTPUT、SHADER_OUTPUT、CONFIG_OUTPUT等common.cmake#L39-L52示例的可执行文件统一输出到bin\目录dependencies/FidelityFX-SDK/CMakeLists.txt#L89-L94。顶层 CMake 还会为 DX12/VK 分别生成DebugDX12、ReleaseDX12、RelWithDebInfoDX12及对应的 VK 版本等自定义配置类型dependencies/FidelityFX-SDK/CMakeLists.txt#L57-L70因此在 Visual Studio 中切换配置时应留意这些带后缀的配置名。在 Visual Studio 中构建示例CMake 生成的 .sln 默认包含 SDK 中所有示例应用的工程。构建方式打开build\目录下的FidelityFX SDK [DX12/VK] Samples.sln在菜单栏点击Build→Build solution。此操作会按依赖关系先后编译SDK 后端库ffx_backend_native见 dependencies/FidelityFX-SDK/CMakeLists.txt#L101-L117FidelityFX Cauldron FrameworkFramework工程见 dependencies/FidelityFX-SDK/CMakeLists.txt#L119-L129示例共用的渲染模块库RenderModulesdependencies/FidelityFX-SDK/CMakeLists.txt#L131-L133最后才是全部示例应用工程。各示例工程的加入由 samples/CMakeLists.txt 根据先前选择的FFX_*开关决定例如FFX_FSR对应fsrapi工程samples/CMakeLists.txt#L31-L34、FFX_CACAO对应cacao工程samples/CMakeLists.txt#L41-L44等若选择了1. ALL则默认将FFX_API_FSR设为启动项目samples/CMakeLists.txt#L101-L103。在 Visual Studio 中运行示例要运行某个示例应用官方文档给出的步骤为在解决方案资源管理器中于Effects文件夹下选择感兴趣的示例工程右键该工程选择Set as Start-up project设为启动项目点击菜单栏Build然后点击Run运行。从源码结构看各示例工程被组织在 Effects 文件夹下且顶层 CMake 已通过VS_STARTUP_PROJECT属性设置了默认启动项目dependencies/FidelityFX-SDK/CMakeLists.txt#L153-L155多数情况下你无需手动切换即可直接运行默认示例。运行示例的补充内容下载与运行时配置构建成功后运行示例还需要两方面的准备详见官方 Running the FidelityFX SDK Samples示例内容Content下载SDK 示例默认从预下载的场景内容中加载 glTF 场景、IBL 环境贴图与粒子图集需要先使用 媒体投递工具 Media Delivery Tool 下载对应资源运行时配置示例以及 Cauldron Framework 整体通过 JSON 配置文件驱动运行时行为加载顺序为cauldronconfig.json框架默认值→ 示例自身配置文件覆盖默认值→ 各渲染模块的配置文件提供模块默认值→ 示例配置再次覆盖模块默认值。各示例的配置文件位于 dependencies/FidelityFX-SDK/samples 下各示例目录的config/子目录中例如blur/blurconfig.json、fsrapi/fsrapiconfig.json。此外示例还支持大量命令行覆盖参数例如-resolution [WIDTH] [HEIGHT]覆盖启动分辨率、-loadcontent [SCENE PATH]加载自定义 glTF 场景、-devmode启用 CPU 验证与内存泄漏检测、-benchmark [durationX]执行定帧基准测试等可用于快速验证你自己的内容与效果。常见问题排查要点No BUILD_TYPE specified报错直接手动执行cmake ..而不带-DBUILD_TYPE会触发顶层 CMake 的致命错误dependencies/FidelityFX-SDK/CMakeLists.txt#L25-L27务必通过官方批处理脚本或在命令行显式传入-DBUILD_TYPESAMPLES_DX12/-DBUILD_TYPESAMPLES_VKCannot find path to CMake说明 CMake 未加入 PATH 或未安装SDK 构建脚本会直接退出dependencies/FidelityFX-SDK/sdk/BuildFidelityFXSDK.bat#L34-L41Requested architecture ... not yet supported顶层 CMake 目前仅支持x64、ARM64、ARM64EC三种生成平台dependencies/FidelityFX-SDK/CMakeLists.txt#L53-L87Win32 等其他平台不受支持配置名带后缀解决方案中的有效配置是DebugDX12、ReleaseDX12、RelWithDebInfoDX12或对应 VK 变体切换构建配置时请使用这些名称首次构建耗时较长SDK 后端会以三种配置各编译一遍dependencies/FidelityFX-SDK/sdk/BuildFidelityFXSDK.bat#L80-L82且着色器默认自动编译FFX_AUTO_COMPILE_SHADERS1请耐心等待。小结构建 FidelityFX SDK 示例的完整链路可总结为安装满足最低版本要求的工具链 → 运行BuildSamplesSolutionDX12.bat或BuildSamplesSolutionVK.bat→ 依次回答 DLL/静态库选择与示例组件选择 → 脚本自动构建 SDK 后端并生成build\FidelityFX SDK [DX12/VK] Samples.sln→ 在 Visual Studio 中 Build solution 并用 Effects 下的工程作为启动项目运行 → 配合 Media Delivery Tool 下载内容并按 JSON 配置/命令行参数调整运行行为。本文所述步骤均以仓库内实际存在的构建脚本与 CMake 配置为据相关文件可直接查看根构建脚本 BuildSamplesSolutionDX12.bat / BuildSamplesSolutionVK.bat、SDK 构建脚本 BuildFidelityFXSDK.bat、顶层 CMake CMakeLists.txt、示例清单 samples/CMakeLists.txt以及官方运行指南 running-samples.md。赞分享图形学游戏开发【免费下载链接】dlssg-to-fsr3Adds AMD FSR 3 Frame Generation to games by replacing Nvidia DLSS Frame Generation (nvngx_dlssg).项目地址https://gitcode.com/gh_mirrors/dl/dlssg-to-fsr3点击查看免费下载相关推荐libpag Linux 平台编译指南从环境准备到 Demo 构建与运行libpag Linux 平台编译指南从环境准备到 Demo 构建与运行 本指南以仓库 linux/README.md https://link.gitcod图形学音视频跨平台tutanota Rust SDK 构建指南从 bindgen 环境准备到 Android / iOS 跨平台产物生成tutanota Rust SDK 构建指南从 bindgen 环境准备到 Android / iOS 跨平台产物生成 导读 本文以 tuta sdk/rus协同办公密码学FidelityFX SDK 更新 DX12 Agility SDK 完整指南从 nupkg 下载到 D3D12SDKVersion 同步FidelityFX SDK 更新 DX12 Agility SDK 完整指南从 nupkg 下载到 D3D12SDKVersion 同步 本指南以 Fide图形学游戏开发上一篇沉浸式翻译的商业模式与生态建设下一篇IPython 0.13 深度解析Notebook 新界面、Cell Magic 体系与内核/引擎统一架构创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表