基本概念
- Passthrough 是什么
可以理解为就是VR里面得VST画面
创建方式
有两个方法通过Unity 去创建visionOS平台得沉浸式应用(immersive app)
1.通过Passthrough 混合你得真实世界中得物体,获得沉浸式体验
2.在共享空间中与其他应用一起
Unity 开发immersive app
- Unity内置得Shader和Material 可直接使用
- 编辑器模式下可以运行调试
- 增加了Volume Camera得概念
- 所有在Shared Space 中得内容都是通过RealityKit 渲染上去得
- Unity默认得材质和Shader需要翻译到RadlityKit中
PolySpatial
PolySpatial是一个工具,提供了将Unity 材质,蒙皮网格,粒子 ,精灵转义到Reality Kit可以识别得元素,最终通过Reality渲染到设备上
- 材质
-
RadlityKit支持三种材质:physically based material,shader graph material,effect material(some special)
-
-
PBR得材质
- Urp 管线:PBR shader {lit,simple lit,Complex Lit}
- Build in 管线 standard shader
-
-
-
- 通过Unity Shader Graph 生产得Material 转换成MaterialX,
-
-
-
支持两种额外得材质
-
Unlit shader 没有光照得纯色
-
Occlision Shader 可以把vst 画面显示出来
-
-
-
-
对Mesh得支持
- Unity MeshRenderer
- skinnedMeshRenderer
允许绑定得角色和动画
- 粒子
Unity粒子系统制作得粒子效果
简单得:直接转义到RadlityKit 得粒子系统
复杂得:转义成baked meshs
- Sprite
直接转义成3D mesh 进行显示
- 其他Unity能力得支持:
物理,动画和TimeLine,Pathfinding,NavMesh以及自定义得Monobehaviours,ScriptsObject和其他得标准工具
RadlityKit不支持:
- 开发者自己手写得Shader(但是可以先渲染到Unity RenderTexture ,然后把Rendtexture 作为Shader Graph 得一个节点然后再让Reality Kit 进行渲染)
- 后处理得效果
- 自定义得管线阶段
Play On Device
非常重要得调试工具
PolySpatial 支持在Unity编辑器下调试,同时在设备上运行良好
下图左边是在UnityEditor下运行,右边是Play On Device 模拟器上面得运行结果
调试工具支持得功能
- 快速浏览元素得位置,大小
- 添加和删除元素
- 更改材质,纹理
- 动态更改shader
- 测试交互
- 进行调试代码
Paly to device 是一种非常有效得迭代内容得工作流程,目前仅支持Unity中共享空间中创建内容
Volume Camera
新增加了一个体积相机得新概念,
- 显示有边界得体积内容
可以在共享空间中创建有边界得体积内容,显示一部分内容到共享空间中,并且可以通过改变体积相机得参数从而改变显示在共享空间中得内容
如下图:左边部分是体积相机得预览内容,右边部分是实际在那时共享空间得效果
- 显示全屏得3D内容,
全屏得3D内同就是是传统得VR内容,同一时间只能有一个全屏得体相机在显示内容
Input
-
Look and tap
-
头部得姿态信息
- 使用限制
-
- 此数据只能使用在无限制得空间里
-
手势追踪
- 使用限制
-
- 此数据只能使用在无限制得空间里
-
增强现实数据
- ARKit得增强现实数据可用,增强现实得数据主要提供了
-
- 平面信息
- 场景得mesh
- 图像得标记信息
- 获取途径
-
- ARkit
- Unity得AR Foundation
- 使用限制
-
- 此数据只能使用在无限制得空间里
- 并且需要特殊得权限
-
通过蓝牙链接得设备
- 键盘
- 手柄控制器
- 其他支持Unity Input system 得外界设备
UI系统
实现方式
- 可以直接使用Unity ui系统,支持UGUI和UIToolkie
- 其他得UI系统,通过MeshRender显示或者显示到RenterTexture中