首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建USDZ文件?

如何创建USDZ文件?
EN

Stack Overflow用户
提问于 2018-06-05 02:36:10
回答 8查看 30.3K关注 0票数 23

我试图查看http://graphics.pixar.com/usd/docs/index.htmlhttp://graphics.pixar.com/usd/docs/Usdz-File-Format-Specification.html上的主要文档,但找不到创建usdz文件的详细信息。

我可以从http://graphics.pixar.com/usd/downloads.html获取一些示例USD文件

我们怎样才能创建一个?

EN

回答 8

Stack Overflow用户

发布于 2018-06-12 22:08:29

苹果在下面的url上提供了usdz文件的图库。

https://developer.apple.com/arkit/gallery/

您需要安装有iOS12 beta版的设备,才能在移动设备上查看模型。基本上,苹果使用Mime-types /usd usdz和model/und.pixar.usd .usdz来将它们标识为AR可视。您还需要通过safari浏览器执行此操作...Chrome不支持该文件格式。

列出缩略图usdz文件的html如下所示。

代码语言:javascript
复制
<a rel="ar" href="model.usdz">
  <img src="model-preview.jpg">
</a>

为了创建你自己的usdz文件,苹果公司将usdz_converter捆绑为Xcode10的一部分。它是一个命令行工具,用于从OBJ文件、单帧Alembic (ABC)文件、USD文件( .usda或usd.c)创建usdz文件。

基本的命令行是

代码语言:javascript
复制
xcrun usdz_converter Wineglass.obj Wineglass.usdz  

usdz支持基于物理的渲染,为了实现这一点,您可以为PBR的每个组件添加图像,如下所示。

代码语言:javascript
复制
xcrun usdz_converter Wineglass.obj Wineglass.usdz 
-g WineGlassMesh
-color_map WineGlass_Albedo.png
-metallic_map WineGlass_Metallic.png
-roughness_map WineGlass_Roughness.png
-normal_map .  WineGlass_Normal.png
-emissive_map  WineGlass_Emissive.png

这是一个不错的视频,教你如何创建usdz文件,在网页上托管,以及在自己的应用程序中创建快速浏览

https://developer.apple.com/videos/play/wwdc2018/603/

票数 23
EN

Stack Overflow用户

发布于 2018-12-14 01:17:17

用于从iOS上的OBJ创建USDZ文件的(不需要xcode )

我们团队的一位工程师上周解决了这个问题!(见他在我们的博客上的总结:https://www.scandy.co/blog/how-to-export-simple-3d-objects-as-usdz-on-ios)

现在创建USDZ文件很有趣--目前我们可以通过保存一个USDC文件来伪造它。重命名扩展名!

首先,您需要将filePath中的.obj文件作为MDLAsset加载

代码语言:javascript
复制
NSURL *url = [NSURL fileURLWithPath:filePath];
MDLAsset *asset = [[MDLAsset alloc]initWithURL:url];

确保MDLAsset可以写入所需的扩展名( usdc支持)(usdc二进制格式)

代码语言:javascript
复制
if([MDLAsset canExportFileExtension:@"usdc"]){
  NSLog(@"able to export as usdc");

  // save the usdc file
  [asset exportAssetToURL:usdcUrl];
}

将usdc重命名为usdz,因为这就是它所需要的

代码语言:javascript
复制
NSError *renameErr;
NSFileManager *fm = [[NSFileManager alloc] init];
BOOL mvResult = [fm moveItemAtPath:usdcPath toPath:usdzPath error:& renameErr];
if(! mvResult){
  NSLog(@"Error renaming usdz file: %@", [renameErr localizedDescription]);
}

希望这对我们有所帮助,直到苹果公司能给我们一个更彻底的方法。

票数 4
EN

Stack Overflow用户

发布于 2019-04-06 02:29:09

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50686813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档