← 所有文章

2026 年的 RealityKit 与 Reality Composer Pro 3

Reality Composer Pro 3 脱离了 Xcode 套件,改以独立 app 的形式推出,你可从“应用程序”文件夹启动它。这个细节读来像是一则打包说明,却是整个 WWDC26 空间故事中最清楚的信号:这套创作工具如今已是独当一面的主角,而非附属配件,其底层引擎也随之成长到足以匹配。1

2026 版让流程的两个部分同时前进。RealityKit 获得了能让场景看起来真实的渲染与模拟功能:柔和阴影、烘焙光照图、会投射到你真实墙面上的投影贴图、布料、导航网格、Gaussian Splats,以及光线追踪声学。Reality Composer Pro 3 则获得了无需构建周期就能把这些功能串接起来的工作流程:头显上的实时预览、原型与实例、节点式图表,以及一个能生成 3D 内容的 AI 助手。第三条线索把两者连在一起,那就是代码:Xcode 插件让你的自定义组件直接在创作工具里运行,而一套全新的结构化模型工具组则为协作式设计审查 app 提供动力。这些拼图不再是各自独立的演示,而是汇聚成一套连贯的工作方式。

本文逐一走过定义今年空间创作流程的五场 WWDC26 议程,每一场都搭配让它具体可见的片段,以及那个会改变你构建方式的洞见。

TL;DR / 要点摘要

  • RealityKit 的光照与模拟趋于成熟:由 lightSize 驱动的柔和阴影、烘焙光照图、投影贴图加上投射到你真实房间里的 Physical Space Lighting、布料、导航网格、Gaussian Splats,以及光线追踪混响。2
  • Reality Composer Pro 3 以独立 app 的形式推出(不再是 Xcode 开发者工具),专为快速迭代而打造:可停靠的模拟标签页、附带覆盖的原型与实例、设备端实时预览、烘焙光照图,以及一个生成式 AI 助手。3
  • 你可通过 Xcode 插件扩展编辑器:组件与系统通过 RealityComposerProPlugin 协议在其中运行,自定义动画动作通过 EntityAction 嵌入时序编辑器,而 @Scriptable 宏则将组件开放给 Script Graph。4
  • 可视化的节点式工具(Animation Graph、Behavior Tree、Script Graph、Compute Graph、Shader Graph)让设计师无需构建周期即可创作角色行为、GPU 粒子与材质。5
  • visionOS 27 新增了一套用于协作式设计审查的结构化 3D 模型工具组:由层级驱动的 ManipulationComponent 放置、用于剖面的全新 ClippingComponent,以及以体积加权方差自动展开组件的能力。6

RealityKit 拿到了能卖出真实感的功能

自 2019 年起,RealityKit 一直是 Apple 的跨平台 3D 引擎——这是你只需构建一次,便能部署到 visionOS、iOS、iPadOS、macOS 与 tvOS 的那一层。2 2026 年的新增功能填补了“渲染正确”与“看起来真实”之间的落差,并在单一款游戏《Chaparral Village》中加以演示,这让整场议程有了一条主线,而非一张功能清单。

Watch on Apple Developer ↗
RealityKit 团队的 Dennis 通过一个游戏场景,逐一讲解柔和阴影、光照图、投影贴图、布料、导航网格、Gaussian Splats 以及沉浸式音频。

先从阴影谈起,因为 API 的选择透露了团队的思维方式。RealityKit 的阴影默认为硬边,唯有在光源无限小时才正确。真实的光有面积,而面积会产生半影,也就是光线只被部分遮挡的那段柔和渐变。RealityKit 以一个符合直觉、像旋钮般的参数来模拟它:阴影的 lightSize,即光源以米计的直径。把它设为 0.7,边缘就会变柔;光源越大,半影越宽。配套的 quality 设置则以采样数换取性能(低会强制产生硬阴影;在一般观看距离下,中已足够)。2 这些控制项对应到实体物理量——这正是值得内化的模式。

有两项功能把光推到了虚拟的边界之外。投影贴图模拟让手电筒的光穿过一张胶片,将图案投射到聚光灯所指之处,可以是动态焦散,也可以是天文馆的星辰与星云。Physical Space Lighting 接着让这些虚拟光源通过 RealityKit 的场景理解网格与真实房间互动,因此投射出的星辰会贴合你实际的墙面。启用方式几乎平淡得令人意外:你只需为聚光灯加上一个 SurroundingsLight 组件(目前支持聚光灯与点光源)。2 把虚拟光变成真实房间里的光,只是一个你附加上去的组件,而非另一条渲染路径。

议程的其余部分巡览了模拟与捕捉。布料模拟把布料描述为一张由弹簧边连接粒子顶点而成的网格;钉住一面窗帘,便是把特定顶点标记为运动学固定。导航网格定义可通行区域,附带各区域的通行成本与离网连接,通过 NavigationComponent 喂入,再由 NavigationController 查询。Gaussian Splats 把真实世界的捕捉渲染为椭球体,由位置、缩放、旋转、不透明度与球谐函数定义,组合成一个 GaussianSplatComponent。沉浸式音频则获得一套建立在光线追踪几何声学之上的自定义混响网格,其中 ReverbMeshResource 定义房间几何与各材质的声学特性。2 贯穿的主线是:每项能力都是你组合到实体上的一个组件——正是 RealityKit 一贯采用的 entity-component-system 形态。

Reality Composer Pro 3 收拢了迭代循环

编辑器中影响最深远的改变,根本没有任何 API。Reality Composer Pro 3 不再是 Xcode 开发者工具;你从“应用程序”启动它,而整个版本都围绕着缩短一次编辑到看见结果之间的时间来组织。3

Watch on Apple Developer ↗
JP 现场搭建《Chaparral Village》的炼金场景:导入一个 USD 套组、原型与实例、设备端预览、烘焙光照图,以及 AI 助手。

编辑器保留了实体与组件模型。你把一个 USD 文件导入为优化套组,将它拖入视口成为一个实体,再通过检查器中的组件来塑造它。改变的是反馈。按下“播放”,场景就会运行;把模拟标签页停靠在场景标签页旁,你便能在游戏运行的同时持续创作,调整一张图表并观看结果,无需任何部署步骤。JP 的说法值得记住:模拟标签页把部署流程从内层循环中移除,于是你与最终体验之间的摩擦几乎消失殆尽。3

有三套系统扩展了这个循环。原型把一个实体变成可重复使用的素材,拖入项目浏览器;你可多次实例化它、覆盖任一实例、重置某个覆盖,或将它回推到源头——除非你决定如此,否则不会有任何永久变更。实时预览通过一个配套 app(将于今年稍晚推出)瞄准已连接的 Vision Pro,因此你在 Mac 上创作,更新会实时显示在设备上,而那正是必须真正评判 Physical Space Lighting 之处。3 光照图负责处理静态光照:Lightmap 组件会把间接光照、环境光遮蔽或最终成像预先计算进一张贴图,并通过预览标签页在完整烘焙之前展示其影响。议程以 Reality Composer Pro Assistant 作结,这是一个能按需生成 3D 对象与材质的 AI 面板。3 同样的模式一再重演:在你为一项改变付出代价之前,先看见它的后果。

用 Xcode 扩展编辑器

倘若美术人员只能使用内置组件,这款独立编辑器对认真投入的团队而言将是死路一条。插件系统正是答案,它把 Reality Composer Pro 从一个你使用的工具,重新定位为一个你编写程序的工具。它将于今年稍晚推出。4

Watch on Apple Developer ↗
Niklas 构建了一个大锅插件:一个自定义组件与系统、一个时序编辑器动画动作,以及一个 Script Graph 节点,全都在编辑器中实时运行。

团队结构是其前提。一个《Chaparral Village》风格的项目,会在同一个 git 仓库中,把一个 Reality Composer Pro 项目(美术与设计师)与一个 Xcode 项目(工程师)配成一对。导入的文件会在磁盘上转换为内部 JSON,因此标准 git 工具就能合并它们,而编辑器另外提供了一个自定义合并工具,其冲突比单纯的 git merge 更少。4 工程师从共享代码构建两个 scheme:一个是 app,另一个是 RCPCustomComponents.framework 插件,将他们的组件与系统开放给编辑器。场景会导出为 Reality File,也就是 RealityKit 的序列化格式,供 app 加载。代码以插件的形式流入编辑器;内容则以 Reality File 的形式流入 app。

其机制是一场注册握手。你编写一个符合 RealityComposerProPlugin 的类(来自 RealityComposerPro Swift 包,在你链接项目时会自动加入),并在其 setup 方法中,用编辑器交给你的上下文注册你的组件与系统。一个 createRealityComposerProPlugin() 函数以 C 符号导出,好让加载器能找到它,并返回该插件。构建插件 scheme、打开项目、接受信任提示——你的自定义组件便会出现在检查器中;美术人员拖动水位滑块,表面便会起反应,因为你的 Swift 系统正在编辑器内部运行。4 你甚至可以挂上 Xcode 调试器,在插件代码里命中断点。这场议程坦率的旁注值得记下:Script Graph 与代码所做的事相近,而真正该转向代码的理由在于,庞大的 Script Graph 会变得难以维护,而代码能调用 Script Graph 触及不到的 Apple API(其中包括 SwiftUI)。4

插件的触及面延伸至三套编辑器系统。自定义组件与系统是基本情况。自定义动画动作实现 EntityAction(以及 Codable),接着便可拖入时序编辑器,并带有可编辑的参数。而 @Scriptable 宏会把一个组件展开成一份你注册的结构描述,好让设计师直接把它接进 Script Graph 节点。4 同样的自定义数据,可同时从代码、时间轴与可视化脚本层触及。

无需代码即可构建行为的节点图

如果说议程 281 是代码的故事,那么议程 393 便是它的镜像:设计师在不写代码、只用编辑器可视化图表的情况下能走多远。2026 年的答案是:几乎能走到一个可交互的角色。

Watch on Apple Developer ↗
Vincent 为炼金术士安排了一套例程:一个 Animation Graph 状态机、一个 Behavior Tree、Script Graph 交互性、一张导航网格,以及一个 Compute Graph 烟雾效果。

这套构建堆叠了四种图表类型。Animation Graph 是一个节点式的运行时编辑器,根部有一个 Final Pose 节点;Vincent 放入一个 State Machine,定义带有条件转换的 Idle 与 Walk 状态,并以一个在运行时切换的单一 isWalking 布尔值来驱动混合。Behavior Tree 编写自主例程:一个 Sequence 复合节点依序执行 Rotate To Face、Move To 与 Wait 节点,Parameter Setter 节点在移动前后翻转 isWalking,而一个 Precondition 则让炼金术士持续等待,直到 readyToBrew 标志变为真。Script Graph 提供事件驱动的黏合剂——一个 On Tap 节点设置 readyToBrew,于是一次点按便把角色送往大锅。5 对团队速度而言最关键的洞见是:由于这些图表是可视化且事件驱动的,团队中任何人都能直接在编辑器中构建并测试行为,无需构建周期。5

这场议程补足了议程 279 从代码面所描述的两个部分。Navigation Mesh 组件正是该 API 的创作端对应物:一个 Shapes 边界框选取要采样哪些几何,Off-Mesh Connections 连接互不相连的区域,而像格子大小这样的 Generation Parameters 则控制采样分辨率。一旦创作完成,这张网格便可喂给一个 Behavior Tree、一个 Animation Graph,或一个自定义的 Swift 系统。5 Compute Graph 跨四个阶段(Emitter、Initialize、Simulate、Output)构建以 Metal 为后盾的 GPU 粒子模拟,而大锅的烟雾运用了一股负重力,好让蒸汽向上飘。Shader Graph 新增了 RealityKit PBR Surface 2(光泽与次表面散射)、一个专用的毛发表面,以及可编辑的传送门表面与几何。5

在结构化 3D 模型上协作

最后一场议程是回报所在——当引擎与编辑器具备如此能耐时,你能构建出什么。visionOS 27 推出了一套用于协作式设计审查的工具组,让身处同一场 SharePlay 通话中的众人,以相同的精细度、在同一个空间里,一起操控同一个复杂组件,将它打开、剖切,并把零件抽离出来。6

Watch on Apple Developer ↗
Bill 构建了一款设计审查 app:具层级意识的操控、一个可交互的裁剪平面,以及由体积加权方差驱动的自动展开。

根基在于结构,而这场议程最锐利的一点是:对代码而言,没有层级的几何毫无用处。一块被压平到根部的引擎缸体渲染起来毫无问题,却提供不了任何可抓取或可动画的东西——活塞们被埋进一份诸如 InteriorPart_47 之类名称的扁平列表里。一个嵌套层级让每个零件都可被寻得,这正是其余一切的前提。6 在这个层级之上,操控是一个放置决策:把一个 ManipulationComponent 放在根部,整个组件便会作为单一对象移动;把它下移到子节点(并一同搭配 InputTargetComponentCollisionComponent,把 releaseBehavior 设为 .stay),每个零件便能被单独抓取,其余则留在原处。Bill 的说法是这五场议程中对 ECS 哲学最干净利落的陈述:从“供人观看之物”转变为“供人探索之物”,完全取决于这个组件位于树中的何处。6

裁剪是 RealityKit 真正全新的能力。ClippingComponent 每一帧都会丢弃一个轴对齐 bounds 之外的几何(shouldClipChildren 默认为 false,这是常见的陷阱;shouldClipSelf 默认为 true),让内部如同外部一般轻易呈现。6 其交互模型刻意保持精简:边界框的六个面化为六个可拖动的平面,每个各控制一个标量。要让这些拖动感觉自然,便是这场议程的数学课:一个拖动增量会从世界坐标转换到模型坐标,再投影到平面的法线上,于是 bounds 只沿着你所抓取的那条轴改变。自动展开运用同一种统计上的诚实,沿每条轴计算一个体积加权的位置方差,并沿方差最大的那条轴把子组件扇形展开。6 Bill 的结语对一场图形学演讲而言颇不寻常:请熟悉方差、向量投影与坐标系转换,因为那些感觉毫不费力的交互,正是建立在这些数学之上。

从何处着手

一次全部采用是错误的一步。请按照“什么能解开其余部分”的顺序来排序。

  1. 先下载独立编辑器。 Reality Composer Pro 3 脱离 Xcode 套件,是其余所有工作流程都依赖的那项改变;重新导入一个场景,好让模拟标签页、原型与光照图预览就在手边。3
  2. 先掌握迭代循环,再处理功能。 停靠模拟标签页,以便在场景运行的同时创作,接着把设备端实时预览接到一台 Vision Pro 上。在一块平面 Mac 屏幕上评判 Physical Space Lighting 或柔和阴影,只会误导你。32
  3. 把 RealityKit 功能当作组件来取用,而非重写。 柔和阴影、一张烘焙光照图,以及聚光灯上的一个 SurroundingsLight,各自都只是一个组件或属性——而每一个都换来不成比例的大量真实感。2
  4. 唯有当美术人员需要你的数据时,才加入 Xcode 插件。 一旦有设计师想要实时微调某个自定义组件,RealityComposerProPlugin 注册便物有所值;在那之前,内置组件与 Script Graph 已能覆盖相当大的范围。45
  5. 为设计审查建立在层级之上。 结构化模型工具组只在一个良好嵌套的素材上才管用,因此请先把层级修整妥当,再编写交互代码。6

贯穿这五场议程的主线是:今年的空间流程奖励的是组合,而非建造。真实感是你附加的一个组件,迭代是你停靠的一个标签页,协作是你尊重的一套层级。

常见问题

Reality Composer Pro 3 还是 Xcode 的一部分吗?

不是。Reality Composer Pro 3 如今是一款独立 app,你可从开发者网站下载,并从你的“应用程序”文件夹启动。它仍会链接到一个 Xcode 项目,用以构建 app 与加载插件,但编辑器是独立运行的。3

2026 年 RealityKit 的柔和阴影如何运作?

阴影的 lightSize 属性是光源以米计的直径;默认值 0 会产生硬阴影,较大的值(议程使用 0.7)则会加宽半影。请把 quality 设为中或高,因为低会不论光源大小一律强制产生硬阴影——而在一般观看距离下建议使用中,以控制成本。2

我能在 Reality Composer Pro 编辑器内运行自己的 Swift 代码吗?

可以。构建一个符合 RealityComposerProPlugin 协议的插件,并在其 setup 方法中注册你的组件与系统;编辑器会实时运行该代码,因此美术人员调整一个属性,便能看见系统起反应,无需重新构建 app。你可以挂上 Xcode 调试器,在插件代码中命中断点。此功能将于 2026 年稍晚推出。4

visionOS 27 的全新裁剪功能是什么?

ClippingComponent 每一帧都会丢弃一个轴对齐边界框(bounds)之外的任何几何,让你能穿透一个复杂组件,看见它的内部。请注意 shouldClipChildren 默认为 false,因此在你将它设为 true 之前,父组件并不会裁剪其子对象。6

我需要写代码才能让角色动起来并响应点按吗?

不需要。Reality Composer Pro 3 的可视化图表已能覆盖这些:一个 Animation Graph 状态机在空闲与行走动画之间混合,一个 Behavior Tree 把例程依序串接并以一个布尔值为其设下开关,而一个 Script Graph 则把一个 On Tap 节点接上去以翻转那个布尔值,这一切都无需构建周期即可创作。5

完整的 Apple Ecosystem 系列簇:空间心智模型解释为何 RealityKit 是一套 entity-component-system,而非 3D 版的 SwiftUI;visionOS 空间模式谈如何构建场景与沉浸风格;visionOS 27 有什么新功能谈环绕这些工具的平台功能;以及 Apple 平台矩阵谈 RealityKit 如何跨 visionOS、iOS、iPadOS、macOS 与 tvOS 部署。枢纽位于 Apple Ecosystem Series。若想了解 iOS 搭配 AI 代理的更广脉络,请参阅 iOS 代理开发指南

参考资料


  1. Apple Developer:Reality Composer Pro。Apple 用于为 RealityKit app 组合、编辑与预览 3D 内容的创作工具。独立 app 的发行方式与从“应用程序”文件夹启动,均在 WWDC26 议程 280 中说明。 

  2. Apple,WWDC26 议程 279,“Explore advances in RealityKit。”developer.apple.com/videos/play/wwdc2026/279。涵盖柔和阴影与 lightSize、光照图、投影贴图、Physical Space Lighting 与 SurroundingsLight 组件、布料模拟、导航网格(NavigationComponent/NavigationController)、3D Gaussian Splats(GaussianSplatComponent),以及通过 ReverbMeshResource 的光线追踪混响。RealityKit 框架参考:developer.apple.com/documentation/realitykit。 

  3. Apple,WWDC26 议程 280,“Iterate your spatial scenes faster with Reality Composer Pro 3。”developer.apple.com/videos/play/wwdc2026/280。涵盖独立 app、实体/组件模型、可停靠的模拟标签页、附带覆盖的原型与实例、设备端实时预览、烘焙光照图(间接光照、环境光遮蔽、最终成像),以及 Reality Composer Pro Assistant。 

  4. Apple,WWDC26 议程 281,“Extend Reality Composer Pro 3 functionality with Xcode。”developer.apple.com/videos/play/wwdc2026/281。涵盖 RealityComposerProPlugin 协议与注册、在编辑器中运行的自定义组件与系统、git/JSON 合并工作流程与 Reality File 导出、通过 EntityAction 的自定义时序编辑器动作,以及以 @Scriptable 宏将组件开放给 Script Graph。 

  5. Apple,WWDC26 议程 393,“Supercharge your spatial workflows with Reality Composer Pro 3。”developer.apple.com/videos/play/wwdc2026/393。涵盖 Animation Graph 状态机、Behavior Trees(Sequence/Selector/Parallel 复合节点、动作节点、前置条件)、事件驱动的 Script Graph、Navigation Mesh 组件、Compute Graph GPU 粒子(Emitter/Initialize/Simulate/Output),以及 Shader Graph 的增强,包括 RealityKit PBR Surface 2 与一个毛发表面。 

  6. Apple,WWDC26 议程 284,“Collaborate on structured 3D models in visionOS。”developer.apple.com/videos/play/wwdc2026/284。涵盖作为交互性前提的素材层级、ManipulationComponent 放置(搭配 InputTargetComponentCollisionComponentreleaseBehavior)、visionOS 27 中全新的 ClippingComponentboundsshouldClipChildrenshouldClipSelf)、用于裁剪平面拖动的坐标系转换与向量投影,以及依体积加权位置方差的自动展开。 

相关文章

visionOS 27 为空间开发者带来哪些新功能

visionOS 27 新增了来自 Mac 的 Spatial Preview、来自 PC 的 Foveated Streaming、沉浸式 Safari 环境、公制空间物体追踪,以及 RealityKit。

4 分钟阅读

RealityKit与空间心智模型

RealityKit是一个实体-组件-系统架构,而非3D版的SwiftUI。锚点将实体置于真实空间中。该模型与窗口的五大区别。

1 分钟阅读

The Robots Are Taking Exams in My Search Console

First-party GSC data: 91% of 3.8M impressions fail a human-query filter. Exam questions, pasted errors, and agent sweeps…

10 分钟阅读