Reality Composer Pro 使用示例

创建项目

首先,设置我们的项目。有两种设置项目的方式。一种方式是转到Xcode > Open Developer Tool > 打开Reality Composer Pro。如果你想创建一个独立的Reality Composer Pro项目,推荐这种方式。

另一种方式是使用visionOS应用模板创建一个新的Xcode项目。该模板会自动生成并链接一个Reality Composer Pro项目到Xcode项目中。如果你想在Xcode应用程序中使用Reality Composer Pro项目,推荐这种方式。

Reality Composer Pro项目是一个Swift包。Swift包不仅使与Reality Composer Pro的工作变得容易,而且在构建过程中,它会将内容打包成一个框架,供我们的Xcode应用程序使用。如果我们想要查看或编辑场景,只需如上图所示,点击"Open in Reality Composer Pro"即可。

UI navigation

现在让我们看看如何在Reality Composer Pro中导航并了解用户界面。

窗口中间,是viewport视图。 这是一个编辑场景的主要视图。允许我们可视化、导航和预览场景中的3D对象。支持使用W、A、S、D键以及箭头键在视口中移动,和游戏控制一样。

窗口左边,是Hierarchy面板。 这是一个层次结构面板。层次结构面板提供了一个方便的方式来搜索、选择和组织场景中的3D对象。

窗口右边,是Inspector面板。 Inspector检查器面板提供了一个方便的方式来编辑所选对象的属性,如位置、旋转和缩放。该面板底部的"Add Component"按钮还允许我们查看内置的RealityKit组件,我们可以在对象上进行配置。

窗口底部,是Editor面板。 Editor编辑器面板有四个Tab,分别是:Project Browser、Shader Graph、Audio Mixer和Statistics。

开始制作一个场景

有三种方法可以将资产添加到Reality Composer Pro项目中。

第一种是将已经存在于计算机上的资源导入到项目浏览器中。

第二种是内容库,这是由Reality Composer Pro提供的资源的精选库。

第三种是Object Capture,它可以将现实世界物体的照片转换成3D模型。

要了解更多信息,请查看Meet Object Capture for iOS

将资源导入到项目中后,开始构建场景。 首先,让删除模板创建的球体,方法是选择窗口中的对象,然后按删除键。

接着,在Project Browser的资源中,将Diorama_Base.usdz和Yosemite.usdz这两个资源拖动到窗口左边的层次结构面板。

可以看出来,Diorama_Base没有材质。所以我们需要导入材质。点击工具栏上的加号按钮,打开内容库,然后查找可能要使用的材质。选择并下载一个混凝土材质,将它拖到我们的场景中。

点击层次结构面板Diorama_Base,更新使用刚下载好的混凝土材质。

接下来,将一个位置标记(Location_Pin.usdz)拖放到窗口视图中,复制两次,分别命名为Captian、Rocks、River。并分别移动坐标位置到不同位置。将三个位置标记放到Group里,并将该Group重命名为"Yosemite_Location_Pins"

粒子发射器

粒子发射器允许我们在场景中创建效果,例如这个火焰。粒子发射器由两部分组成:粒子和发射器。粒子和发射器都有多个可调整和修改的变量部分。在粒子上,有颜色、属性、力场和渲染等部分。在发射器上,有时间、形状和生成等部分。

Reality Composer Pro项目可以包含任意数量的场景。场景可以代表一个准备在我们的Xcode应用程序中使用的完成作品,或者代表可重用的内容。在这种情况下,云是由更小的云块构成的。我们首先构建一个可重用的云块场景。然后,我们将创建一个完整的云场景,其中包含在3D空间中不同位置放置的多个云块。我们将创建三种不同版本的完整云,最后将这三个云添加到我们的主要场景中。

回到Reality Composer Pro,打开File > New > Scene来创建一个新场景,将场景命名为"Cloud_Chunk"。

创建新场景后,它会出现在窗口的一个新选项卡中。有两种方法可以将粒子发射器添加到场景中。第一种是通过层次结构Hierarchy面板底部的加号按钮。第二种是通过单击检查器Inspector面板底部的"添加组件"按钮,然后在菜单中选择粒子发射器组件,将粒子发射器添加到场景中的任何对象中。我们可以使用检查器面板顶部的播放控件来预览粒子发射器。

添加粒子发射器组件

可以使用检查器面板顶部的播放控件来预览粒子发射器

如果觉得粒子难以看清,可以转到setting,并更改viewport背景,使粒子发射器更容易看到。

制作粒子发射器没有固定的方法,只要你能将它们调整到你满意的状态即可。但要考虑的一件事是,场景中粒子的数量较多可能会对性能产生影响,因此建议密切关注使用的粒子数量。

粒子发射器组件有两个部分:粒子(Particles)和发射器(Emitter)。在粒子部分,我们控制单个粒子的外观。在发射器部分,我们控制粒子从原点发出的方式。

检查器面板中,粒子发射器组件提供了预置的粒子发射器。云最接近预置的Impact,所以让我们选择Impact开始。

选择Impact后,首先关注发射器选项卡(Emitter)

时间Timing是第一部分。在每次发射粒子之间会有短暂的暂停。这是由空闲持续时间(Idle duration)变量引起的。将其设置为零应该会导致粒子持续不断地发射。

在形状部分,云更像是一个球形而不是一个圆柱形,所以点击Emitter Shape将发射器形状更改为球形。

接下来,云应该在其体积内具有粒子,所以点击Birth Location将生成位置从表面更改为体积。云也倾向于更平坦而不是更高,所以让我们调整x和z轴比y轴比例大。

最后,我们应该勾选isLocalSpace,以便将来在粒子发射器的父对象上进行的平移、旋转和缩放也将应用到粒子发射器本身。

转到粒子选项卡(Particles)后,我们将调整单个粒子的外观

出生率定义了同时存在的粒子数量。出于性能方面的考虑,点击Birth Rate将其从2000降低到500。外观上有些微妙的变化。

由于使用了预置的Impact,粒子的颜色和纹理已经符合要求,所以可以跳过修改这些部分中的变量,继续到属性部分。

粒子似乎存在的时间太短了。点击Properties>Life Span将寿命从2秒增加到5秒。在运动、力场和渲染等部分还有更多的变量可供调整,但目前的效果已经接近想要的效果,所以暂时不要修改这些部分。可以使用快捷键Command-S保存场景,然后继续下一步。基本制作了一个可重用的云块。

将多个云块组合到一起,制作一个完整的云

通过将Cloud_Chunk资源从项目浏览器拖放到层次结构面板中,重复三次,并分别修改位置。分别命名为Cloud_A、Cloud_B和Cloud_C,导入到组Clouds里面。我们可以选择这三个云块的父对象Clouds,并在检查器面板顶部的播放控件按下播放按钮,以预览云块。

回到main Scene,拖动Cloud_A.usda到层级面板,复制到三个,分别重命名为Cloud_A、Cloud_B和Cloud_C,导入到组Clouds里面,分别修改坐标位置。

如何将音频纳入场景中

可以使用音频文件、音频文件组和音频源添加音频。从项目浏览器导入场景的音频文件可以以各种方式进行配置,例如是否应该循环播放。一个音频文件可以在一个或多个对象上播放,一个对象可以播放一个或多个音频文件。音频文件组可以由场景中的音频文件构建。每次对象播放音频文件组时,会随机选择组中的一个音频文件进行播放。音频源定义了音频文件和音频文件组在场景中的发射方式。

有三种类型的音频源:空间音频(Spatial Audio)、环境音频(Ambient Audio)和通道音频(Channel)。

  • 空间音频源为音频播放提供了3D空间中的位置和方向。想象一下,如果我们在桌子上放了一个收音机资产,可以使用空间音频。

  • 环境音频源没有位置,但提供了3D空间中的方向,用于播放音频。想象一下,如果风声从东方传来,无论我们朝东走多远,风声始终来自那个方向。

  • 通道音频源既没有位置也没有3D空间中的方向,用于在环境中播放背景音乐。

接下来添加一些鸟叫声到场景中,以增添更多的现实感。

首先,导入一些鸟叫声音频文件Bird、Bird_Call_1_wav、Bird_Call_2_wav。这些文件将作为场景中的环境音频。接下来,创建一个新的音频源来播放这些鸟叫声。在层级面板底部,点击"+"按钮,然后选择"Audio > Spatial Audio"。或者在检查器面板底部,点击"Add Component"按钮,然后选择"Spatial Audio"组件。

在层级面板上点击"SpatialAudio"。为了让鸟叫声在整个场景中都可以听到,不需要设置空间音频源的位置。不过,可以选择一个3D方向,以便确定声音的传播方向。在Inspector面板,Spatial Audio > Focus设置成0.5,Preview > Resource 选择Bird_Call2_wav,现在只需点击播放按钮,就可以在场景中听到鸟叫声了。这样已经成功地将音频纳入了场景中。

回到main Scene,拖动Bird_with_Audio.usda到层级面板,并复制到五个。分别命名,且导入到组Birds。分别修改坐标位置,以及选择音频源SpatialAudio > Preview > Resource。点击Birds的播放按钮可进行播放,就可以在场景中听到鸟叫声了。

性能统计数据。

性能统计数据是一个强大的工具,可以帮助我们了解场景的性能并进行优化。要查看性能统计数据,只需在Reality Composer Pro的项目浏览器中选择一个场景,然后在检查器面板的底部选择"Statistics"。

点击几何(Geometry)模块右上角可以打开详情页面。查看三角形、顶点、网格等数据。

性能统计数据提供了有关场景性能的重要信息,包括每个场景的帧速率、GPU使用率、CPU使用率等。性能统计数据可以帮助我们确定场景是否需要进一步优化,以确保在目标设备上获得平滑的运行体验。如果性能统计数据显示帧速率低于目标值,我们可以采取一些措施来提高性能,例如减少粒子数量、降低纹理分辨率或使用更简单的3D模型。

总之,性能统计数据是一个非常有用的工具,可以帮助我们优化我们的场景以获得最佳的增强现实体验。

在设备上预览应用程序。

首先,确保你的设备上安装了Reality Composer,并且已经连接到Xcode。在Xcode中,选择你的目标设备,然后点击"运行"按钮。在设备上,打开Reality Composer应用程序,然后点击你的应用程序以开始预览。这样应用程序在设备上以增强现实的方式展现出来。

以上内容简单介绍了如何使用Reality Composer Pro创建、编辑和预览3D内容,包括添加位置标记、粒子发射器和音频。学习了如何使用性能统计数据来优化场景以获得最佳性能。希望这个示例有助于你开始构建令人惊叹的增强现实体验。

相关推荐
Linux猿30 分钟前
828华为云征文 | 云服务器Flexus X实例:RAG 开源项目 FastGPT 部署,玩转大模型
服务器·人工智能·机器学习·华为云·fastgpt·flexus云服务器x实例·华为云服务器
Luo_LA1 小时前
Chat2VIS: Generating Data Visualizations via Natural Language
论文阅读·人工智能·信息可视化·chatgpt
yixiaai_com1 小时前
亲测好用,ChatGPT 3.5/4.0新手使用手册,最好论文指令手册~
人工智能·gpt·chatgpt·ai编程·ai写作
时髦的琉璃681 小时前
HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 精读
人工智能·算法
阿利同学1 小时前
即插即用 | YOLOv8热力图可视化方法详解
人工智能·yolo·计算机视觉·信息可视化·热力图·卷积可视化
cv2016_DL2 小时前
YOLOv8模型ONNX格式INT8量化轻松搞定
人工智能·yolo
猫头丁2 小时前
【AI算法岗面试八股面经【超全整理】——NLP】
人工智能·算法·面试
斯曦巍峨2 小时前
经典大语言模型解读(3):参数量更大、泛化性能更强的生成式模型GPT-2
人工智能·gpt·语言模型
橙子小哥的代码世界2 小时前
深度学习02-pytorch-06-张量的形状操作
人工智能·pytorch·深度学习
sp_fyf_20242 小时前
[大语言模型-论文精读] 以《黑神话:悟空》为研究案例探讨VLMs能否玩动作角色扮演游戏?
人工智能·游戏·语言模型