gpt4 book ai didi

swift - 如何使用 Xcode 转换器创建 USDZ 文件?

转载 作者:搜寻专家 更新时间:2023-10-30 21:52:37 26 4
gpt4 key购买 nike

在 2018 WWDC Apple announced引入新的 USDZ 文件格式。

关于创建 USDZ 文件的内容如下:

要创建您自己的 usdz 文件,usdz_converter 已作为 Xcode 10 beta 的一部分捆绑在一起。它是一个命令行工具,用于从 OBJ 文件、单帧 Alembic (ABC) 文件、USD 文件(.usda 或 usd.c)创建 usdz 文件

基本的命令行是

xcrun usdz_converter myFile.obj myFile.usdz

我已经安装了 Xcode 10 beta,但无法运行,甚至无法在 2018 年 6 月 4 日提供的 Xcode 10 beta bundle (内部版本 10L176w)中找到 usdz_converter。

注意:我仍然在 macOS highSierra 上运行,我还没有安装 macOS Mojave 10.14 beta ......但我认为这不是原因。

有没有其他人能够让这个 xcrun usdz_converter 工作?

如果是,请分享步骤。

最佳答案

更新时间:2022 年 8 月 8 日

Xcode 14、13、12、11 中的

usdzconvert 命令

In macOS Ventura, Monterey, Big Sur and Catalina USDZ converter has a rich set of commands and supports more input formats for conversion than previous version. But before using it you need to download USDZ Tools. And don't forget to setup a global variables for Python usdz tools. Here's how a new command looks like in Terminal:

usdzconvert ~/Desktop/file.gltf -diffuseColor albedo.png -metallic brass.jpg
  • 在 macOS Ventura、Monterey、Big Sur 和 Catalina 中,默认命令 shell 是 ZSH


创建外壳资源文件

如果您想使用USDPython 工具,您需要创建一个 Shell 资源文件 .zshrc

为此,在终端中使用 change directory 命令转到 Home 区域:

cd /Users/<UserName>

使用parent working directory命令检查你是否在那里:

pwd

然后键入 ls 命令以列出 目录内容,包括隐藏文件:

ls -a

现在您已准备好创建一个隐藏的 .zshrc 文件:

touch ~/.zshrc

使用以下命令打开此文件:

open ~/.zshrc

现在您可以将这些行添加到 zsh 资源文件中:

export PATH="/Users/yourUserName/usdpython/USD:$PATH"
export PATH="/Users/yourUserName/usdpython/usdzconvert:$PATH"
export PYTHONPATH="/Users/yourUserName/usdpython/USD/lib/python:$PYTHONPATH"

echo "Now I can use USDPython commands here."

保存并重启终端。

usdzconvert 是一个 Python 脚本,可将以下 Assets 转换为 usdz:

  • 对象
  • gltf
  • fbx
  • abc
  • usd – 您可以使用 USD plug-in 从 Maya 导出它
  • 美国农业部
  • 美国哥伦比亚特区

如果您需要使用FBX格式转换,您必须下载并安装FBX Python SDK。

然后在.zshrc文件中再添加一行:

export PYTHONPATH="/Applications/Autodesk/FBXPythonSDK/2020.0.1/lib/Python27_ub:$PYTHONPATH"

保存 .zshrc 文件并重新启动终端。

这是您可以在终端中看到的完整选项列表,键入 usdzconvert -h :

# DO NOT USE usdzconvert 0.63 BECAUSE IT CAUSES ERRORS.

# USE usdzconvert 0.66, or usdzconvert 0.65, or usdzconvert 0.64

outputFile Output .usd/usda/usdc/usdz files.
-h, --help Show this help message and exit.
-f <file> Read arguments from <file>
-v Verbose output.
-url <url> Add URL metadata
-copyright "copyright message" Add copyright metadata
-copytextures Copy texture files (for .usd/usda/usdc) workflows
-metersPerUnit value Set metersPerUnit attribute with float value
-loop Set animation loop flag to 1
-no-loop Set animation loop flag to 0
-m materialName Subsequent material arguments apply to this material.
-iOS12 Make output file compatible with iOS 12 frameworks
-texCoordSet name The name of the texture coordinates to use for current material.

-diffuseColor r,g,b Set diffuseColor to constant color r,g,b with values in the range [0 .. 1]
-diffuseColor <file> fr,fg,fb Use <file> as texture for diffuseColor.
fr,fg,fb: (optional) constant fallback color, with values in the range [0..1].

-normal x,y,z Set normal to constant value x,y,z in tangent space [(-1, -1, -1), (1, 1, 1)].
-normal <file> fx,fy,fz Use <file> as texture for normal.
fx,fy,fz: (optional) constant fallback value, with values in the range [-1..1].

-emissiveColor r,g,b Set emissiveColor to constant color r,g,b with values in the range [0..1]
-emissiveColor <file> fr,fg,fb Use <file> as texture for emissiveColor.
fr,fg,fb: (optional) constant fallback color, with values in the range [0..1].

-metallic c Set metallic to constant c, in the range [0..1]
-metallic ch <file> fc Use <file> as texture for metallic.
ch: (optional) texture color channel (r, g, b or a).
fc: (optional) fallback constant in the range [0..1]

-roughness c Set roughness to constant c, in the range [0..1]
-roughness ch <file> fc Use <file> as texture for roughness.
ch: (optional) texture color channel (r, g, b or a).
fc: (optional) fallback constant in the range [0..1]

-occlusion c Set occlusion to constant c, in the range [0..1]
-occlusion ch <file> fc Use <file> as texture for occlusion.
ch: (optional) texture color channel (r, g, b or a).
fc: (optional) fallback constant in the range [0..1]

-opacity c Set opacity to constant c, in the range [0..1]
-opacity ch <file> fc Use <file> as texture for opacity.
ch: (optional) texture color channel (r, g, b or a).
fc: (optional) fallback constant in the range [0..1]

-clearcoat c Set clearcoat to constant c, in the range [0..1]
-clearcoat ch <file> fc Use <file> as texture for clearcoat.
ch: (optional) texture color channel (r, g, b or a).
fc: (optional) fallback constant in the range [0..1]

-clearcoatRoughness c Set clearcoat roughness to constant c, in the range [0..1]
-clearcoatRoughness ch <file> fc Use <file> as texture for clearcoat roughness.
ch: (optional) texture color channel (r, g, b or a).
fc: (optional) fallback constant in the range [0..1]


现实转换器

除了使用命令行转换工具 (CLI),您还可以使用 Reality Converter 应用程序(GUI)。这个 Beta 4 应用程序可以在 Mac 上轻松转换、查看和自定义 .usdz 对象。只需拖放常见的 3D 文件格式,例如 .obj.gltf.fbx,即可查看转换后的 .usdz 结果,使用您自己的纹理自定义 Material 属性,并编辑文件元数据。您甚至可以使用内置 IBL 选项在各种光照和环境条件下预览您的 .usdz 对象。

对于 .fbx 转换,您必须下载并安装 FBX C++ SDK .

需要的文件是FBX SDK 2020.2.1 Clang(通用二进制)

enter image description here


USDZ Export Reality Composer 中的命令

In Reality Composer for Xcode 14/13/12 you can export a usdz model right from Reality Composer's UI. For that you just need to activate a USDZ export in RealityComposer – Preferences menu.

enter image description here


您也可以使用 AR USD Schemas ,当然还有 Autodesk Maya 2022 工作流程。


从SCN场景创建USDZ文件

另一种生成 USDZ 文件的方法是使用 write(to:options:delegate:progressHandler:) 从 SceneKit 的场景转换它。实例方法。

让我们看一下代码:

import ARKit
import SceneKit

class ViewController: UIViewController {

@IBOutlet var sceneView: ARSCNView!
let scene = SCNScene(named: "art.scnassets/ship.scn")!

override func viewDidLoad() {
super.viewDidLoad()

sceneView.scene = scene

let path = FileManager.default.urls(for: .documentDirectory,
in: .userDomainMask)[0]
.appendingPathComponent("model.usdz")

scene.write(to: path, options: nil,
delegate: nil, progressHandler: nil)

print(path)
}
}

enter image description here



Xcode 10 中的xcrun usdz_converter命令

In macOS Mojave 10.14 and Xcode 10 USDZ converter has a slightly different set of arguments and flags. Here's how an old command looks like in Terminal:

xcrun usdz_converter file.obj file.usdz -color_map color.jpg -ao_map ao.png
  • 在 macOS Mojave 中,默认命令 shell 是 BASH

这是您可以在终端中看到的完整选项列表,键入 xcrun usdz_converter -h :

-g groupName [groupNames ...]        Apply subsequent material properties to the named group(s).
-m materialName [materialNames ...] Apply subsequent material properties to the named material(s).
-h Display help.
-a Generate a .usda intermediate file. Default is .usdc.
-l Leave the intermediate .usd file in the source folder.
-v Verbose output.
-f filePath Read commands from a file.
-texCoordSet set The name of the texturemap coordinate set to use if multiple exist (no quotes).
-opacity o Floating point value 0.0...1.0

-color_default r g b a Floating point values 0.0...1.0
-normal_default r g b a Floating point values 0.0...1.0
-emissive_default r g b a Floating point values 0.0...1.0
-metallic_default r g b a Floating point values 0.0...1.0
-roughness_default r g b a Floating point values 0.0...1.0
-ao_default r g b a Floating point values 0.0...1.0

-color_map filePath
-normal_map filePath
-emissive_map filePath
-metallic_map filePath
-roughness_map filePath
-ao_map filePath

关于swift - 如何使用 Xcode 转换器创建 USDZ 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50846627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com