已在皮克斯发展6年,解读苹果USDZ AR文件格式,对AR发展有何帮助

文章相关引用及参考:映维网

USDZ是现有USD文件的“零压缩”ZIP文件。

映维网 2018年06月06日)在发布ARKit 2.0的时候,苹果提到正在与皮克斯合作制定USDZ这一全新的开源文件格式,而苹果表示这为Messages,Safari,Mail,Files和News等应用的分享进行了优化,帮助用户共享强大的图形与动画。苹果同时提到借助USDZ格式目,用户将能把3D对象叠加在现实世界中,并且允许其他用户在同一时间,同一地点看到相同的事情。下面映维网将向大家解释这是什么,以及这对AR的扩张有何帮助。

ARKit 2和USDZ是iOS 12开发者预览版的一部分,而苹果已经开始向苹果开发者项目的成员开放。作为iOS 12和MacOS 10.14 Mojave的一部分,ARKit 2和USDZ支持将在今年秋季正式上线。

1. USDZ是多个USD文件的压缩文件

USDZ文件不是新事物,根据皮克斯的说法,USDZ是现有USD文件的“零压缩”ZIP文件。USD同时是皮克斯3D图形制作管道的核心,自《虫虫危机》之后就一直是如此。USD文件格式现在已经来到了第四迭代,而且正用于皮克斯的每一个3D创作与渲染应用之中。USD是用于3D成像、增强现实和虚拟现实应用的单一对象容器文件。

核心的USD文件格式可以由多位美工在他们自己的图层上同时使用,然后在每位用户完成工作后进行合并,并提供责任变更的审核跟踪。单个USD文件充当其他asset的“场景”,但单个USD文件最适合单个对象。兼容的软件套件可以利用组合文件创建3D场景,方法是将一系列单独的文件合并为一个越来越大的聚合。这才有了USDZ格式,将多个USD文件进行合并。

单个USDZ文件是只读文档。编辑内容需要用户解压文件,并提取其中的各个部分。文件不允许访问其他文件或外部asset,例如存储在不同目录中的更高分辨率asset。但如果这些asset包含在文件之中,而且设备不需要它们,它们将不会影响渲染的性能。

2. 什么是USD

能够制作计算机图形影片和游戏的管道通常都会生成,存储和传输大量的3D数据,皮克斯将其称之为“场景描述(Scene Description)”。管道中的每一个协作应用(建模,着色,动画,照明,fx,渲染)通常都有专门形式的场景描述以适应特定的需求和工作流程,而且任何其他应用程序都不可读或不可编辑。通用场景描述(Universal Scene Description;USD)是第一款公开提供的软件,对于需要稳定地,可扩展地交换和增强由一系列基本asset组成的任意3D场景而言,USD可以满足这种需求。

USD可用于基本asset(如模型)或动画的交换。但与其他交换软件包不同,USD还可以将任意数量的asset汇编和组织成虚拟舞台,场景和镜头,将它们从应用程序传输到应用程序,并且使用一个统一的API,以非破坏性方式在一个场景图形中编辑它们。USD为阅读,编写,编辑和快速预览3D几何和阴影提供了丰富的工具集。另外,由于USD的核心场景图形和“合成引擎”不受3D影响,因此USD能够通过可维护的方式进行扩展,在其他领域编码和组成数据。

USD是在新版Apache授权协议下发布的开源项目

3. 为什么使用USD

USD是皮克斯3D图形管道的核心,用于每个3D制作和渲染应用程序,包括皮克斯专有的Presto动画系统。为解决以下问题,皮克斯正致力于开发和改善USD:

  • 为定义,打包,汇编和编辑3D数据提供丰富的通用语言,促进使用多个数字内容创建应用程序。跟其他许多交换包一样,USD提供了一个low-level数据模型,在“文件格式级别”中规定了数据的编码和组织方式。USD同时提供了一组(可扩展的)的high-level模式,为网格和变换之类的概念提供了有意义的API和组织。有了这样的基础,你可以创建几何图形和阴影缓存。但USD能够进一步提供一套可通过高性能运行时评估引擎进行打包,聚合,更改,覆盖原语元素和asset的“composition arcs”,以解析所产生的“合成场景描述”和从中提取(并制作)数据。

  • 允许多位美工在相同的asset和场景上进行协作。subLayers是USD最基本的composition arc,通过支持每个美工负责自己的文件/图层,然后在USD文件中明确规定的“强力排序”中对所有的layer进行组合和解解析,subLayers可以促进不同部门或同一部门内的多位美工同时处理同一asset或场景。当建模美工改变在较弱图层中定义的几何图形拓扑结构时,该功能不是一个可以自动调整较强图层中着色数据的灵丹妙药,但它允许每位美工独立工作,同时不会擦除或编辑其他美工的作品,并且有助于提供清晰的变更审核跟踪,有助于解决变拓扑等问题。

  • 通过最小化延迟来最大化艺术性迭代。与许多媒体内容一样,实现高质量数字艺术的最重要因素之一是,能够快速并经常地在设计,asset和动画上进行迭代。3D艺术中最重要的迭代障碍之一是速度:美工对编辑结果获取“足够好的”视觉反馈的速度;在多个应用程序之间迁移新数据的速度;或者是恢复已经崩溃会话的速度。速度是皮克斯USD项目的主要目标,皮克斯将继续探索算法优化,探索如何更好地利用现代多核系统和GPU,以及压缩技术来最大限度地减少网络文件访问的延迟。

如果你的需求与上述所列类似,USD可能是一个十分具有吸引力的选择。

4. USD在皮克斯的历史发展

USD大概是皮克斯开发的第四代“合成场景描述”。在经过《玩具总动员》的强化之后,皮克斯研发团队开始在专有的动画系统Marionette(原为Menv)中增加和演变引用,分层,编辑和变更的概念。皮克斯首先在《虫虫危机》中进行应用,并且在接下来的十部故事片中延续。

到2004年,很明显的是,尽管Marionette已经相当强大,但最初的起源正成为其继续稳定发展的障碍,并且影响着皮克斯利用多核系统等重要工具。皮克斯工作室开始致力于设计和开发一款名为Presto的第二代动画系统。Presto首次用于《勇敢传说》,并在随后的所有故事片中进行了应用。Presto开始着手解决的一个问题是,Marionette用于合成和覆盖三维场景描述的各种功能无法总是有效地一起运用,因为它们分布在三种不同的格式和“合成引擎”中。Presto提供了统一的第二代场景描述,支持从单一网格到整个模型的引用,覆盖,变更和其他操作,能够以ASCII格式编码,并通过一个合成引擎进行求值。

但与此同时,皮克斯及大部分电影和特效行业都发现:对于在渲染前都维持动画和rigging的管道,如果将其转变为新管道:其中动画和rigging都烘烤至包含动画姿态点和变换的高效“姿态缓存”,这可以减少照明,效果和渲染访问数据的延迟(和内存占用)。因此在2008至2009年期间,管道开发团队开始构建TidScene,这是一个由二进制数据库(Berkeley DB)支持的几何架构,它使用轻量级场景图形作为创作和读取时间采样数据的机制。TidScene的关键元素包括一个(当时)高性能的OpenGL渲染插件(可以支持所有管道应用程序直接从TidScene进行预览渲染),以及一个本地引用功能的开发,以用于实现分层,场景图形“分离”(即仅加载场景一部分),asset引用,以及对变更的一定支持。

TidScene姿态缓存的速度,可扩展性和通用管道访问都取得了成功,但同时也让皮克斯重新回到了一个存在多个竞争系统的位置。对于在2012年启动的USD项目,其任务是结合Presto的合成引擎和low-level数据模型,以及TidScene的延迟访问,时间采样数据模型和轻量级场景图形。USD提供了一个全新的场景图形,它基于与Presto完全相同的合成引擎,并且将并行计算引入至场景描述和合成内核的所有level。

USD项目的一个关键组成部分是开发出超现代,可扩展的OpenGL渲染架构,代号为Hydra。Hydra作为USD项目一部分的原因是,它为管道中的USD采用带来了巨大的价值,可以用于皮克斯所有的插件之中,并且为如何利用USD的多线程来实现快速场景加载和成像提供了基准和参考。但Hydra本身就是一款产品,除了USD之外,Hydra已经有了其他直接的前端联接(包括Presto和皮克斯的Maya和Katana插件),而Hydra同时正在超越其最初的OpenGL灵感架构,它已经可以服务于其他后端客户端,比如说路径追踪器。

原文链接https://yivian.com/news/46426.html
转载须知:转载摘编需注明来源映维网并保留本文链接
微信/QQ群加入映维网微信/QQ群
颜昳华

颜昳华

嗨!我是映维网编辑昳华。映维网是中国最大的VR行业信息数据库,有任何问题请不要犹豫在映维网上搜索,或与我交流(邮箱:oval@yivian.com,微信:ovalist)。

Yivian 猜您还喜欢...

资讯