• 正文概述
  • GitHub – SaschaWillems/Vulkan-glTF-PBR:使用 glTF 2.0 模型使用 Vulkan 进行基于物理的渲染

    存储库文件导航

    使用 glTF 2.0 模型的基于物理的 Vulkan 渲染

    自动草稿 图像描述 图像描述

    YouTube Vulkan glTF 2.0 播放列表

    大约

    使用 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 启动期间生成所有必需的纹理贴图。

    BRDF 查找表

    图像描述

    此过程根据 pbr 实现中使用的公式生成 2D BRDF 查找表。查找表包含粗糙度和视角的 BRDF 值,并存储为每个组件 16 位浮点纹理,以提供适当的精度。

    VulkanApplication::generateBRDFLUT()

    辐照度立方体贴图

    图像描述 图像描述

    (正面环境立方体地图 / :正面辐照度立方体地图)

    生成一个小的(64 x 64 像素)辐照度立方体贴图,用于存储从周围环境辐射的光。这是针对光照方程的间接漫反射部分进行采样的。

    查看目标VulkanApplication::generateCubemaps()IRRADIANCE

    预筛选(mip 映射辐射)环境立方体贴图

    图像描述 图像描述

    (:正面环境立方体贴图 / :正面预过滤立方体贴图)

    生成一个预过滤的辐射立方体贴图,该贴图针对光照方程的间接镜面反射部分进行采样,并根据粗糙度存储镜面反射贡献。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++ 编译器在 WindowsLinux 和 Android 上编译和构建示例所需的一切。包括所有必需的依赖项。

    Windows、Linux

    将提供的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 网格压缩

    为了启用对加载 Draco 压缩 glTF 文件的支持,您需要:

    • 根据其构建说明克隆和构建 https://github.com/google/draco
    • 将 Draco 解码器库复制到dracodec.liblibsdraco
    • 将文件夹内容复制到 中,确保 也存在srcexternaldracodraco_features.h
    • 如果一切就绪,运行 CMake 将输出,加载 Draco 压缩网格体将开箱即用Draco mesh compression enabled

    链接

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
    8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
    声明如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性

    GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » 使用 glTF 2.0 模型使用 Vulkan 进行基于物理的渲染

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载要提取码
    百度网盘提取码都是gltf。
    分享过期和重复下载怎么办
    分享过期请使用备份下载,重复下载是不另扣费的,请放心下载。
    模型和平台不兼容怎么办
    可以用网站在线编辑功能,修改模型属性,大小,方向,坐标,中心,透明等问题,然后重新导出既可https://glbxz.com/38636.html
    开通VIP 享更多特权,建议使用 QQ 登录