• 正文概述
  • GitHub – TimvanScherpenzeel/gltf-to-usdz-research:将 glTF 转换为 USDZ 以进行 AR Quick Look 的研究和概念验证 (iOS 12+)。

    Name
    7 years ago
    7 years ago
    7 years ago
    7 years ago
    7 years ago
    7 years ago
    7 years ago
    7 years ago
    7 years ago
    7 years ago
    7 years ago
    7 years ago
    7 years ago

    存储库文件导航

    glTF 兑换 USDZ 研究

    将 glTF 转换为 USDZ 以进行 AR Quick Look (iOS 12+) 的研究和概念验证。

    推理

    尽管我认为 Apple / Pixar 对开源 USD 管道的意图很好,但我认为我们作为一个行业应该更多地依赖不受单个实体控制的真正开放格式。安装很麻烦,需要大量磁盘空间,并且在大多数情况下完全矫枉过正(如果您的目标是将一些 3D 模型转换为 USDZ 并使用 )。我希望随着我们越来越接近公开发布,会出现更多直接转换为的工具,以便我们可以获得跨平台支持。USDAR Quick LookiOS 12USDZ

    为了摆脱使用皮克斯提供的 USD 管道解决方案,我认为尝试作中间可复制格式是明智的。不幸的是,可用的文件示例很少。USDAUSDA

    总体思路是动态生成/作中介一个通用文件结构,并将其传递给 以处理对 的进一步转换。USDAusdz-converterUSDZ

    经过一些工作、调试和@domenicopanacea@virakri的友好帮助,我让它开始工作了。大多数关于支持的发现都来自谁在 developers.apple.com 上发布了有关转换的详细信息。生成的文件仅使用受支持的标签,如 .OBJ@trayserOBJUSDZOBJgltf-to-usdz@trayser

    请注意,这只是一个实验性设置,应被视为概念验证。就目前而言,我只使用中包含的 glTF 资产对其进行了测试。您很可能会遇到当前代码的问题。DamagedHelmet/assets/

    我这项研究的目标是激励其他人制造处理所有复杂性的适当转换器。

    现场演示

    现场演示

    截图

    局限性

    • .glb文件尚未被接受。请使用具有单独纹理的文件。glTF

    • 仅解析和导出文件中的第一个网格。确保合并所有网格。glTF

    • 当前仅处理具有外部纹理的文件(与嵌入的 base64 编码纹理相反)。glTF

    • 来自 glTF 的动画尚未传输,似乎可以传输骨架动画和常规变换。不幸的是,由于阴影是在动画的第一帧上烘焙的,您无法真正制作大型移动动画。除此之外,文件大小会急剧增加。不建议使用将角色移离原点的动画,因为这会导致跟踪问题。最好的选择是增强角色或模型的微动画,而不是大型动画。

    去做

    • 通过将 USDC 转换为 USDA,将示例 USDZ 示例转换为 USDA 结构。不幸的是,我认为这需要安装 USD 管道并使用 usdcat

      多亏了 @wave-electron,AR Quick Look 图库的示例已转换为 。由于版权问题,不幸的是,我无法将它们上传到这个存储库。我看过它们,与 生成的 USDA 文件相比,大部分看起来非常相似。从那以后,我还能够使用 自己转换示例。USDCUSDAgltf-to-usdzusdcat

    安装

    • 确保已安装Node.js

    • 将作系统升级到 macOS High Sierra 10.13.4 或更高版本

    • 下载 Xcode 10 测试版并将其放入/Applications/

    https://developer.apple.com/download/
    
    • 链接到测试版而不是普通版
    sudo xcode-select --switch /Applications/Xcode-beta.app
    
    • 构造一个新的 using 并通过.usdagltf-to-usdzusdz_converter
    node ./bin/gltf-to-usdz.js -i ./assets/DamagedHelmet/DamagedHelmet.gltf -o ./assets/DamagedHelmet.usda -s 10.0 && xcrun usdz_converter ./assets/DamagedHelmet.usda ./assets/DamagedHelmet-`date +"%H-%M-%S"`.usdz
    
    • 成功后,应将以下内容输出到控制台
    2018-06-20 17:21:23.364 usdz_converter[82749:13335731]
    
    
    Converting asset file 'DamagedHelmet.usda' ...
    

    为了查看输出的内容,请将扩展名更改为并解压缩它。你将看到一个和几个纹理(如果原始 glTF 文件有纹理)。USDZ.zip.usdc

    发展

    要在 MacOS 上安装 USD,请按照以下说明作:

    • 将作系统升级到 macOS High Sierra 10.13.4 或更高版本

    • 下载 Xcode 10 测试版并将其放入/Applications/

    https://developer.apple.com/download/
    
    • 链接到测试版而不是普通版
    sudo xcode-select --switch /Applications/Xcode-beta.app
    
    • 安装 Cmake 和 QT。如果您在编译或安装过程中遇到任何问题,您可能需要安装 QT5。
    brew install cmake
    brew install qt@4
    
    • 安装 PyOpenGL
    pip install PyOpenGL
    
    • 安装 PySide2
    pip install --index-url=http://download.qt.io/snapshots/ci/pyside/5.9/latest/ pyside2 --trusted-host download.qt.io
    
    • 将 OpenImageIO 发布版本从 更新为 ,并添加以下部分,如前所述,作为我遇到的早期 Python 崩溃的解决方案Release-1.7.14.zipRelease-1.8.12.zipbuild_scripts/build_usd.py@robpieke
    diff --git a/build_scripts/build_usd.py b/build_scripts/build_usd.py
    index 37fb2a5e..3c940b3b 100644
    --- a/build_scripts/build_usd.py
    +++ b/build_scripts/build_usd.py
    @@ -692,7 +692,7 @@ PTEX = Dependency("Ptex", InstallPtex, "include/PtexVersion.h")
     ############################################################
     # OpenImageIO
    
    -OIIO_URL = "https://github.com/OpenImageIO/oiio/archive/Release-1.7.14.zip"
    +OIIO_URL = "https://github.com/OpenImageIO/oiio/archive/Release-1.8.12.zip"
    
     def InstallOpenImageIO(context, force):
         with CurrentWorkingDirectory(DownloadURL(OIIO_URL, context, force)):
    @@ -855,6 +855,12 @@ def InstallUSD(context):
    
             if context.buildPython:
                 extraArgs.append('-DPXR_ENABLE_PYTHON_SUPPORT=ON')
    +            if MacOS():
    +                import distutils.sysconfig
    +                pyLibPath = distutils.sysconfig.get_config_var('LIBDIR')
    +                pyIncPath = distutils.sysconfig.get_config_var('INCLUDEPY')
    +                extraArgs.append('-DPYTHON_LIBRARY=' + pyLibPath + '/libpython2.7.dylib')
    +                extraArgs.append('-DPYTHON_INCLUDE_DIR=' + pyIncPath)
             else:
                 extraArgs.append('-DPXR_ENABLE_PYTHON_SUPPORT=OFF')
    • Run ,由于需要编译所有依赖项,第一次构建大约需要 1 小时,如果安装成功,则会产生以下输出:python USD/build_scripts/build_usd.py BUILD
    ➜  pixar python USD/build_scripts/build_usd.py BUILD
    
    Building with settings:
      USD source directory          /Users/timvanscherpenzeel/Projects/pixar/USD
      USD install directory         /Users/timvanscherpenzeel/Projects/pixar/BUILD
      3rd-party source directory    /Users/timvanscherpenzeel/Projects/pixar/BUILD/src
      3rd-party install directory   /Users/timvanscherpenzeel/Projects/pixar/BUILD
      Build directory               /Users/timvanscherpenzeel/Projects/pixar/BUILD/build
      CMake generator               Default
      Downloader                    curl
    
      Building                      Shared libraries
        Imaging                     On
          Ptex support:             Off
        UsdImaging                  On
        Python support              On
        Documentation               Off
        Tests                       Off
        Alembic Plugin              Off
          HDF5 support:             Off
        Maya Plugin                 Off
        Katana Plugin               Off
        Houdini Plugin              Off
    
        Dependencies                zlib, boost, TBB, JPEG, TIFF, PNG, OpenEXR, GLEW, OpenImageIO, OpenSubdiv
    
    STATUS: Installing zlib...
    STATUS: Installing boost...
    STATUS: Installing TBB...
    STATUS: Installing JPEG...
    STATUS: Installing TIFF...
    STATUS: Installing PNG...
    STATUS: Installing OpenEXR...
    STATUS: Installing GLEW...
    STATUS: Installing OpenImageIO...
    STATUS: Installing OpenSubdiv...
    STATUS: Installing USD...
    
    Success! To use USD, please ensure that you have:
    
        The following in your PYTHONPATH environment variable:
        /Users/timvanscherpenzeel/Projects/pixar/BUILD/lib/python
    
        The following in your PATH environment variable:
        /Users/timvanscherpenzeel/Projects/pixar/BUILD/bin
    

    拆解 USDZ 文件

    要拆解文件,应按照以下步骤作:USDZ

    1. 按照中提到的步骤安装 USDDevelopment
    2. 将文件的扩展名从 更改为usdz.usdz.zip
    3. 使用(MacOS 附带)或可能任何其他解压缩工具解压缩文件Archive Utility

    该文件夹将包含分离的包含纹理和一个文件。.udsc

    1. 现在用于将文件转换为可复制文件:usdcatUSDCUSDAusdcat input.usdc -o output.usda

    生成的文件将包含网格数据。USDA

    资源

    贡献

    由于我的目标是创建一个社区项目,因此如果您发现问题,我欢迎您提交任何拉取请求或打开工单。请注意,截至目前,该项目处于非常实验性的状态,仅用作概念验证,因此可能存在很多错误,并且代码远非干净。

    执照

    gltf-to-usdz根据麻省理工学院的许可发布。

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

    GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » 将 glTF 转换为 USDZ 以进行 AR Quick Look (iOS 12+) 的研究和概念验证。

    常见问题FAQ

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