用 Unity 创建空间计算 App:PolySpatial 与 Volume Camera
Create immersive Unity apps
2023年6月5日
一句话判断
Unity 通过 PolySpatial 框架将内容桥接到 RealityKit 渲染,配合 Volume Camera 控制场景映射,两三周就能做出空间计算 Demo。
这场 Session 讲了什么
John(RealityKit 团队)和 Vlad(Unity 团队)联合介绍了 Unity 在空间计算平台上的两种使用方式:
PolySpatial 桥接层。在 Shared Space 中,Unity 的渲染内容通过 PolySpatial 转换到 RealityKit。PBR 材质直接映射,自定义 Shader Graph 转换为 MaterialX(然后变成 RealityKit 的 ShaderGraphMaterial),Unlit Shader 和 Occlusion Shader 也有对应映射。手写 Shader 不支持直接渲染,但可以通过 RenderTexture 间接使用。
Play to Device。Unity 编辑器中可以直接预览空间计算设备上的效果,实时修改材质、Shader Graph、场景布局。操作 instantly 反映到设备或模拟器上。模拟和物理计算在编辑器中运行,事件可以传回编辑器调试。
Volume Camera。控制 Unity 场景内容如何映射到真实空间。两种模式:Bounded Volume(有固定尺寸的体积,在共享空间中与其他 App 并存)和 Unbounded Volume(无边界,内容可以延伸到真实空间的任意位置)。可以在运行时切换两种模式。
支持的功能。物理模拟、角色导航、动画系统、Timeline、MonoBehaviour、Scriptable Object 等 Unity 标准工具全部可用。粒子效果(Shuriken)兼容的转到 RealityKit 粒子系统,不兼容的转成烘焙网格。
值得深挖的点
PolySpatial 的翻译边界。后处理效果和自定义管线阶段不可用,因为最终渲染由 RealityKit 完成。如果你的项目重度依赖后处理,需要评估替代方案。
Occlusion Shader 的实用性。它让穿透视图(passthrough)透过物体显示,配合世界网格数据可以让虚拟内容与真实环境更紧密地融合。
两三周做出 Demo 的可行性。Vlad 展示了一个小镇场景,包含角色导航、物理交互、自定义脚本行为,两周内用 Asset Store 资源拼装完成。这说明从零到空间计算 Demo 的迭代速度非常快。
代码片段
// Unity 中的 Volume Camera 配置(Unity 编辑器中操作)
// 1. 添加 Volume Camera 组件到场景中的 GameObject
// 2. 设置 Output Dimensions(bounded 模式的体积尺寸)
// 3. 选择 Volume Camera Mode:
// - Bounded: 固定尺寸体积,可重新定位但不可缩放
// - Unbounded: 无边界,内容延伸到真实空间
// 场景中的绿色预览框显示 Volume Camera 的可视范围
// 移动、旋转、缩放 Volume Camera 来选择展示场景的哪个部分
// Play to Device 工作流
// 1. 在 Unity 编辑器中打开项目
// 2. 启用 PolySpatial
// 3. 进入 Play 模式
// 4. 内容实时显示在模拟器或连接的设备上
// 5. 修改材质、添加对象、调整 Shader Graph
// 6. 所有改动 instantly 反映到目标设备
最佳实践
- 使用 Unity 的 PBR 材质确保与 RealityKit 的无缝转换。
- 自定义视觉效果用 Shader Graph 而不是手写 Shader。
- 利用 Play to Device 快速迭代,不要走完整的 build 流程来预览。
- Volume Camera 的 Bounded 模式适合桌面级体验,Unbounded 适合空间级体验。
- 从 Asset Store 获取资源快速搭建原型,验证概念后再投入定制开发。
还有什么值得关注
- “Bring your Unity VR app to a fully immersive space” 讲了完全沉浸模式的 Unity 方案
- Triband 的 What The Golf? 是 Unity 游戏移植的案例
- MaterialX 是 Unity Shader Graph 到 RealityKit 的翻译桥梁
- Sprite 在空间计算中变成 3D 网格,使用时要注意空间上下文