GitHub – SaschaWillems/Vulkan-glTF-PBR:使用 glTF 2.0 模型使用 Vulkan 进行基于物理的渲染
| Name | ||
|---|---|---|
|
FFCF17A · 2 months ago
|
||
|
|
last year
|
|
|
|
4 months ago
|
|
|
|
8 years ago
|
|
|
|
2 months ago
|
|
|
|
9 months ago
|
|
|
|
7 years ago
|
|
|
|
last year
|
|
|
|
4 months ago
|
|
|
|
last year
|
|
|
|
8 years ago
|
|
|
|
6 months ago
|
|
|
|
8 years ago
|
|
|
|
last year
|
|
存储库文件导航
使用 glTF 2.0 模型在 Vulkan 中使用基于图像的照明实现基于物理的渲染示例。照明方程基于 Khronos 的参考 glTF PBR 实现。
glTF 2.0 模型加载
模型加载是在 vkglTF::Model 类中实现的,使用微小的 glTF 库导入 glTF 2.0 文件,因此例如支持 tinyglTF 支持的所有文件格式。此类将 glTF 结构转换为用于设置和渲染的 Vulkan 兼容结构。
vkglTF::Model 类当前支持以下主要 glTF 2.0 功能:
- 加载任意 glTF 2.0 模型
- 全节点层次结构
- 完整的PBR材料支持
- 金属粗糙度工作流程
- 镜面反射光泽度工作流程(扩展)
- 动画
- 铰接(平移、旋转、缩放)
- 皮肤
- 变形目标
- 支持 Draco 网格压缩(参见说明)
请注意,模型加载器并未完全实现 glTF 2.0 标准的所有方面,因此无法保证所有 glTF 2.0 模型都能正常工作。
支持的扩展:
- KHR_materials_pbrSpecularGlossiness
- KHR_materials_unlit
- KHR_materials_emissive_strength
- KHR_texture_basisu
该存储库仅包含具有静态“损坏头盔”pbr 示例模型的基本场景设置。glTF 2.0 示例模型的官方集合可以在这里找到。
要改为加载不同的场景,请将 glTF 模型文件名指定为命令行参数,例如:
Vulkan-glTF-pbr "PATH-TO-glTF-Sample-Models2.0BrainStemglTFbrainstem.gltf"
在 Windows 上,该应用程序支持拖放。您只需将 或 文件加载到主窗口即可。.gltf.glb
基于物理的渲染模型使用多个源图像作为照明方程。此示例将不依赖离线工具来生成这些纹理贴图,而是在使用 GPU 启动期间生成所有必需的纹理贴图。
此过程根据 pbr 实现中使用的公式生成 2D BRDF 查找表。查找表包含粗糙度和视角的 BRDF 值,并存储为每个组件 16 位浮点纹理,以提供适当的精度。
看VulkanApplication::generateBRDFLUT()
(左:正面环境立方体地图 / 右:正面辐照度立方体地图)
生成一个小的(64 x 64 像素)辐照度立方体贴图,用于存储从周围环境辐射的光。这是针对光照方程的间接漫反射部分进行采样的。
查看目标VulkanApplication::generateCubemaps()IRRADIANCE
(左:正面环境立方体贴图 / 右:正面预过滤立方体贴图)
生成一个预过滤的辐射立方体贴图,该贴图针对光照方程的间接镜面反射部分进行采样,并根据粗糙度存储镜面反射贡献。mip链存储随着关卡计数的增加而增加的粗糙度值,并在渲染对象时进行相应的采样。
从左粗糙度 = 0.0 到右粗糙度 = 1.0 的完整 mip 链:
(注意:缩小/放大至相同尺寸以进行可视化)
查看目标VulkanApplication::generateCubemaps()PREFILTEREDENV
此存储库包含一些外部依赖项的子模块,因此在执行全新克隆时,您需要递归克隆:
git clone --recursive https://github.com/SaschaWillems/Vulkan-glTF-PBR.git
手动更新子模块:
git submodule init
git submodule update
该存储库包含使用支持 C++14 的 C++ 编译器在 Windows、Linux 和 Android 上编译和构建示例所需的一切。包括所有必需的依赖项。
将提供的CMakeLists.txt与 CMake 一起使用,为您最喜欢的 IDE 或编译器生成构建配置,例如:
窗户:
cmake -G "Visual Studio 14 2015 Win64"
Linux:
cmake .
make
- 在 Android Studio 中,选择
Import project - 选择存储库的子文件夹
android - 导入完成后,可以从 Android Studio 构建、运行和调试项目
注意:Android SDK API 版本设置为 33 (Android 13)。
为了启用对加载 Draco 压缩 glTF 文件的支持,您需要:
- 根据其构建说明克隆和构建 https://github.com/google/draco
- 将 Draco 解码器库复制到
dracodec.liblibsdraco - 将文件夹内容复制到 中,确保 也存在
srcexternaldracodraco_features.h - 如果一切就绪,运行 CMake 将输出,加载 Draco 压缩网格体将开箱即用
Draco mesh compression enabled
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性
GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » 使用 glTF 2.0 模型使用 Vulkan 进行基于物理的渲染
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载要提取码
- 分享过期和重复下载怎么办
- 模型和平台不兼容怎么办

















