如果使用 Reality Composer 创建一个由两个简单场景组成的 USDZ,它们之间有一个基本的过渡(点击或场景开始或其他),模型 I/O 似乎无法识别第二个场景。如果您查看 USDZ 的 MDLAsset 层次结构,则会省略第二个场景(AR Quick Look 工作正常,正如您所期望的那样)。我相信这可能是由于场景定义中使用了“over”prim 说明符。当您检查 ascii USDA 文件时,第一个场景定义如下:
def Scope "Scenes"(kind = "sceneLibrary")
{
def Xform "Scene" (...){ scene info}
第二个场景带有“over”说明符
over Xform "Scene_1" (...){scene info)
我在 Pixar USD 文档中注意到,以“over”开头的 prims 被跳过:https ://graphics.pixar.com/usd/docs/USD-Frequently-Asked-Questions.html#USDFrequentlyAskedQuestions-What'sthedifferencebetweenan% 22over%22anda%22typelessdef%22?
“这种区别实际上在 Usd 核心中用于定义,例如,默认阶段遍历行为,因为 UsdPrim::GetChildren() 仅迭代 prim 的已定义子项(无论它们是否在阶段的当前视图中拥有类型),跳过刚刚结束的 prims。”
有谁知道我该如何解决这个问题?有没有办法让模型 I/O 不忽略这个场景,或者我可以更改 USDA 以便 MDLAsset 拥有该场景,我尝试在 USDA 中将“over”更改为“def”,但创建的 USDZ 没有不能在 AR Quick Look 中工作(它需要)。
任何帮助、想法或指示将不胜感激。