Skip to content

Instantly share code, notes, and snippets.

@2youyou2
Last active July 6, 2024 23:30
Show Gist options
  • Save 2youyou2/51eedb23b6488216f3650f6224a8e38e to your computer and use it in GitHub Desktop.
Save 2youyou2/51eedb23b6488216f3650f6224a8e38e to your computer and use it in GitHub Desktop.
USD File format
## USD 格式 特色
@2youyou2
Copy link
Author

Unity 支持情况

Unity 支持导入 .usda 格式(不支持导入 .usdz 格式)到编辑器里面来使用

Unity 支持导出场景到 .usdz 格式,但是如果有绑定骨骼动画的话,导出的 .usdz 格式在 Quick Look 是不能正常播放的。

根据看到的文章说:

A standard USD or USDZ file exported according to the official specifications will not load into Apple software or if it does, it likely will look incorrect, especially with regards to materials. As such, one needs to know that the consumer of the USDZ file is an Apple device and thus export within the limitations of Apple’s software

相关链接:

https://blogs.unity3d.com/cn/2019/03/28/pixars-universal-scene-description-for-unity-out-in-preview/

@2youyou2
Copy link
Author

系统支持情况

测试了苹果 12.x, 13.3, 13.4 几个版本的 safari quick look。

12.x 不支持预览。
13.3 预览最新 Reality Composer 做出来的会出现显示不全等问题。
13.4 能稳定运行预览

设备感知能力

测试 iphone 7 单摄像头通常识别锚点的速度比较慢,而相同情况下 iphone xs 双摄像头会快很多

@2youyou2
Copy link
Author

格式转换工具

苹果提供了一套 python 工具 USDPython 来进行 usdz 格式相关的操作,使用他可以将其他 3D 文件转换到 usdz 格式,也可以在 usd 内部 usdc 与 usda 两种格式间相互转换,还有一些其他的功能。

以下是使用此工具需要配置的基本环境变量:

export PYTHONPATH=/Applications/usdpython/USD/lib/python:$PYTHONPATH
export PATH=/Applications/usdpython/USD/lib/usd:$PATH
export PATH=/Applications/usdpython/USD:$PATH
export PATH=/Applications/usdpython/USD/lib:$PATH

如果需要使用 fbx 转换到 usdz 的功能,需要下载 python fbx 工具。

python fbx 下载安装是会自动安装到 Applications/Autodesk 路径里面,这些路径也需要配置到环境变量里面。

export PYTHONPATH=/Applications/Autodesk/FBXPythonBindings:$PYTHONPATH
export PYTHONPATH="/Applications/Autodesk/FBX Python SDK/2020.0.1/lib/Python27_ub:$PYTHONPATH"

一些使用命令可供参考:

// usda 转到 usdz
./usdcat -o test2.usda test2.usdz 

// fbx 转到 usdz
./usdzconvert model.fbx

更多工具介绍:

https://graphics.pixar.com/usd/docs/USD-Toolset.html

@2youyou2
Copy link
Author

Reality Composer MAC 和 iOS 上都提供了程序进行创作编辑。MAC 上编辑的场景可以直接推送到 iOS 上继续编辑。

iOS 上需要升级系统到 13.4 才能使用 Reality Composer,而 Xcode 需要升级到 11.4 才支持将场景或者项目导出为 USDZ 格式。

Reality Composer 主要由几部分构成:锚点,行为,还有场景编辑。

锚点

锚点指的是 AR 扫描图像时识别出来与给定项目匹配可以挂接场景的位置。

目前提供的锚点有:

  • 水平
  • 竖直
  • 图像
  • 面孔
  • 对象

行为

其实就是触发器,当触发一个条件时调用指定的行为。

内置触发器

  • 默认提供了一些触发器与特定行为的组合
    image

  • 也可以创建自定义行为,在这里面可以自由组合内置触发器与内置行为。

    • 内置触发器其实还比较少
      image
    • 内置行为也比较少,只有一些位移,缩放,隐藏显示,切换场景等简单操作

image

image

场景编辑

Reality Composer 提供的场景编辑很弱,没有 hierarchy,只能点击场景中的物体来编辑属性,物体可以编辑的功能大概就是位置变换,材质,物理行为几个。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment