受欢迎的扬中网站建设,中国建设造价工程协会网站,哪里有网站制作,263企业邮箱pop3设置4.参考文档
4.1 支持的功能和组件
4.1.1 支持的 Unity 功能和组件
大多数 Unity 组件无需修改即可在此平台上运行 - 包括大多数自定义 MonoBehaviours、动画逻辑、物理、输入处理、资产管理、AI 等。然而#xff0c;需要渲染的组件需要特殊的支持。因此#xff0c;一些组件…4.参考文档
4.1 支持的功能和组件
4.1.1 支持的 Unity 功能和组件
大多数 Unity 组件无需修改即可在此平台上运行 - 包括大多数自定义 MonoBehaviours、动画逻辑、物理、输入处理、资产管理、AI 等。然而需要渲染的组件需要特殊的支持。因此一些组件在此平台上提供的功能集有所减少其他目前不支持。下表总结了该平台上各种渲染组件支持的当前状态。
有关转换旧项目的更多信息另请参阅将 Unity 项目移植到 PolySpatial XR
4.1.2 Unity 仿真组件/系统
在此页面中不可能列出 Unity 公开的所有系统和软件包但下表列出了对一系列 Unity 核心功能的支持状态 成分 地位 转换 支持的 声音的 不支持空间音频 网状过滤器 支持的 动画/动画师 支持的 二维物理 支持的 3D 物理 支持的 脚本 支持的 人工智能和导航网格 支持的 地形 实验支持
MonoBehaviours预计可以工作但它们将取决于具体情况具体取决于您的脚本与哪些其他组件交互。 4.1.3 渲染组件/系统 成分 地位 网格渲染器 不支持“Lighting”阴影、GI 不支持“Probes” 立即模式下不支持此组件 不支持“Additional Settings”动态遮挡、渲染层 蒙皮网格渲染器 仅未优化的动画如果模型导入检查器的“装备”选项卡上的“优化游戏对象”选项出现则必须将其勾选。 粒子系统 部分支持看粒子系统以下 光 不支持 相机 不支持 光环 不支持 镜头光晕 不支持 线条渲染 不支持 投影仪 不支持 轨迹渲染器 不支持 视觉效果 不支持 镜头光晕 不支持 细节层次 (LoD) 不支持 遮挡区域 不支持 闭塞门户 不支持 天空盒 不支持 URP 贴花投影仪 不支持 瓷砖地图渲染器 不支持 视频播放器 支持有限 图形光线投射器 不支持 Shaderlab 着色器 不支持 后处理器 不支持 光照贴图 需要手动支持 烘焙照明 不支持 开导 不支持 光探头 需要手动支持 反射探头 不支持 树木 不支持 多雾路段 不支持
其中一些功能由于平台限制而不受支持例如全屏图形后处理器与共享渲染系统的想法不兼容而其他功能则属于正在进行或计划开发的领域。
4.1.4 粒子系统
PolySpatial XR 中对粒子的支持是一项正在进行的工作。下表显示了 Unity粒子系统当前支持的特定模块和设置的支持状态 模块 地位 排放 部分支持 形状 部分支持 生命周期内的速度 部分支持 生命周期内的极限速度 部分支持 继承速度 部分支持 整个生命周期内的力 部分支持 整个生命周期的颜色 部分支持 按速度着色 不支持 使用寿命期间的尺寸 部分支持 尺寸按速度 不支持 整个生命周期内的轮换 部分支持 按速度旋转 不支持 外力 不支持 噪音 部分支持 碰撞 部分支持 触发器 不支持 子发射器 部分支持 纹理片动画 部分支持 灯 不支持 步道 不支持 自定义数据 不支持 渲染器 部分支持 4.1.4 用户界面UI
Unity UI在世界空间中工作但屏幕空间 UI 和高级视觉功能如遮罩、阴影等当前无法工作。下表总结了其他 UI 功能的支持状态 成分 地位 文本网格 支持的 画布渲染器 部分支持 精灵渲染器 支持的 文本网格专业版 • 部分支持• 仅光栅• 无自定义着色器 矩形变换 没有对尺寸的具体支持
4.1.5 最后的想法
Unity 有更多组件但本节涵盖了普通 XR 应用程序的主要部分。一般来说您现有的 Unity 项目可能需要移植到 PolySpatial XR。
您将需要通过编写自己的 PolySpatial XR 兼容系统或找到这些限制的解决方法来实验、研究和适应 PolySpatial XR 要求和约束以支持您现有的功能。 4.2 PolySpatial资产支持
1.网格
RealityKit 提供了一组有限的预定义顶点格式。网格可以提供位置、法线、切线、颜色、混合权重和混合索引。Unity 将为 RealityKit 提供最多 8 个纹理坐标但请注意在其 MaterialX 实现中只有前两个 UV 通道可用从而限制了额外几何数据的实用性。
由于Unity和RealityKit使用不同的坐标系因此在系统之间传递时一些顶点属性会被修改。针对位置、法线和切线执行惯用手交换。所有 UV 通道的 UV 都会翻转。 2.材质
有关 VisionOS 上材质和着色器支持的详细信息请参阅PolySpatial 材质支持。
Unity ShaderGraphs
请参阅Shader Graph 支持了解有关如何将通过 Unity ShaderGraph 定义的自定义着色器转换为 MaterialX 以与 RealityKit 互操作的详细信息。 3.纹理
Unity 在 VisionOS 上提供对 2D 纹理的支持并利用本机纹理压缩选项。
VisionOS 的 RealityKit 不支持 3D 纹理或立方体贴图因此用户必须根据 2D 纹理重新实现这些纹理资源。
4.渲染纹理
Unity 会将渲染目标实时复制到 RealityKit但目前只能按速度进行有限数量的提交。引入额外的渲染目标可能会与 Unity 自己的图形缓冲区提交相冲突从而影响整体性能。
另请注意修改 RenderTextures 后必须手动将其标记为脏目前不会自动发生此类脏污并且如果纹理未脏污则不会将其复制到 RealityKit。
5.字体
VisionOS 支持光栅化字体和 SDF 字体但我们强烈建议使用 SDF 字体以确保所有观看距离下的清晰度。
4.3 材质
每个管道的几个重要标准着色器已映射到最接近的可用 RealityKit 模拟。目前的支持包括
标准 URP 着色器Lit、Simple Lit、UnlitTBD - 更多即将推出标准内置着色器标准待定 - 更多即将推出
4.3.1 自定义着色器
可以通过 Unity ShaderGraph 为 VisionOS 创作着色器和材质。在幕后这些着色器图被转换为 MaterialX。虽然 MaterialX 非常具有表现力但某些 ShaderGraph 节点在 MaterialX 中没有类似物。在 ShaderGraph 编辑器中不支持的节点将通过符号来指示#但另请参阅ShaderGraph 支持。支持点亮和未点亮根节点。
ShaderLab、Metal 和其他基于代码的着色器不可用因为 VisionOS 的 RealityKit 目前不公开低级着色语言。
4.3.2 无光照材质
4.3.2.1 通用渲染管线/无光照
对于 URP 未光照材质PolySpatial 支持Base Map颜色和纹理属性以及 和OpaqueTransparent使用混合模式Alpha曲面类型。 Alpha Clipping可能已启用如果Threshold大于零则不会执行混合仅进行 alpha 测试。
4.3.2.2 无光照/彩色
对于内置渲染器管道未点亮的颜色材质Main Color支持该属性。
4.3.2.3 无光照/纹理
对于内置渲染器管线未点亮的纹理材质Base (RGB)支持该纹理。
4.3.2.4 无光照/透明
对于内置渲染器管道未点亮的透明材质Base (RGBA)支持纹理。 4.3.3 光照材质
4.3.3.1 通用渲染管线/光照
对于 URP 光照材质颜色和纹理受到尊重选项和属性Base Map也是如此。Render FaceSurface Inputs TilingOffset
在Specular工作流程中并Specular Highlights启用时PolySpatial 支持Specular Map关联颜色的纹理或灰度强度。在Metallic工作流程中PolySpatial 支持Metallic Map纹理或强度并遵循Specular Highlights切换。
对于这两个工作流程Smoothness都会考虑强度但Metallic Alpha不支持纹理通道例如来自 的平滑度。 Normal Map支持 [^1]但不支持正常比例。同样Occlusion Map支持但不支持遮挡强度。 可以指定Emission颜色或纹理如果两者都给定则颜色会降低为灰度并充当乘数。
支持 和 使用混合模式曲面Opaque类型Transparent。Alpha在Transparent模式下该Preserve Specular标志受到尊重。 Alpha Clipping可能已启用如果Threshold大于零则不会执行混合仅进行 alpha 测试。
4.3.3.2 通用渲染管线/简单光照
对于 URP 简单光照材质支持的选项与光照材质相同只是没有Metallic属性且没有Occlusion Map。
4.3.3.3 通用渲染管线/复杂光照
对于 URP 复杂光照材质支持的选项与光照材质相同只是添加了选项Clear Coat及其Mask属性Smoothness。
4.3.3.4 标准材质
内置标准光照材质的支持方式与Metallic工作流程中 URP 光照材质的支持方式大致相同。纹理Albedo和颜色同样受到尊重Metallic贴图或强度和Smoothness强度但不包括平滑度Source也是如此。 支持Normal Map[^1] 和但不支持其相应的强度颜色或纹理、和以及标志也是如此。支持所有渲染模式、、和。OcclusionEmissionMain Maps TilingOffsetSpecular HighlightsOpaqueTransparentFadeCutout
4.3.3.5 标准材质镜面设置
内置光照镜面材质的支持方式与Specular工作流程中 URP 光照材质的支持方式相同。纹理Albedo和颜色也受到类似的尊重Specular地图或灰度强度和Smoothness强度但不是平滑度Source也是如此。 支持Normal Map[^1] 和但不支持其相应的强度颜色或纹理、和以及标志也是如此。支持所有渲染模式、、和。OcclusionEmissionMain Maps TilingOffsetSpecular HighlightsOpaqueTransparentFadeCutout
[^1]目前非着色器图形材质中使用的法线贴图必须作为纹理Default类型即而不是类型Normal map导入并且sRGB (Color Texture)未选中该选项。
4.3.4 特殊用途材质
4.3.4.1 TextMeshPro/距离场
4.3.4.2 TextMeshPro/Mobile/距离场
TMP 距离场材质将转换为仅遵循Face Color和Face Texture属性的着色器图形材质。
4.3.4.3 用户界面/默认
UI 默认材质将转换为尊重色调和纹理属性的无光照材质。
4.3.4.4 通用渲染管线/粒子/无光照
URP 未光照粒子材质将转换为尊重Base Map纹理和颜色的未光照材质以及Surface Type.
4.3.4.5 AR/基本遮挡
4.3.4.6 AR/遮挡
遮挡材质转换为基本等效材质。
4.3.5 着色器图形材质
着色器图可以使用内置或 URP 目标以及 Unlit 或 Lit 材质。支持所有输出块。有关着色器图支持的更多信息请参阅着色器图转换说明。
4.4 ShaderGraph支持
您可以使用 Unity ShaderGraph 为visionOS 创建自定义材质。这些将在 Unity 中以其编译形式进行预览但会转换为 MaterialX 以在模拟器和设备上显示。虽然 MaterialX 非常具有表现力但某些 ShaderGraph 节点在 MaterialX 中没有类似物。在 ShaderGraph 编辑器中不支持的节点将通过#符号的存在来指示。
出于技术、安全和隐私原因visionOS 不允许在使用 AR 直通时运行基于 Metal 的着色器或其他低级着色语言。
4.4.1 VisionOS 中的 Shader Graph 限制
下表显示了VisionOS 的 PolySpatial 中Shader Graph 节点的当前支持状态包括支持的节点列表及其各种注意事项。
如果此处未出现节点则表示当前不支持该节点。请注意随着我们继续添加对更多节点的支持此列表将会更新。
4.4.2 美术 部分 节点 笔记 调整 对比 颜色可能不一致。 色调 颜色可能不一致。 饱和 颜色可能不一致。 混合 混合 支持差值、减法、加深、减淡、线性减淡、叠加、滤色、覆盖、求反、乘法 筛选 抖动 - 需要模拟屏幕空间位置。 - 由于 curvelookup 节点定义存在错误目前无法工作。 普通的 正常混合 ✓ 支持 从高度看正常 ✓ 支持 正常重建 Z ✓ 支持 正常强度 ✓ 支持 正常拆包 ✓ 支持 公用事业 色彩空间转换 不一致 - 未实现线性转换。 4.4.3 通道 部分 节点 笔记 渠道 结合 ✓ 支持 分裂 ✓ 支持 调配 ✓ 支持
4.4.4 输入
Custom Interpolators仅限于此特定/名称类型
Color矢量4UV0矢量2UV1矢量2UserAttribute矢量4 部分 节点 笔记 基本的 布尔值 ✓ 支持 颜色 ✓ 支持 持续的 ✓ 支持 整数 ✓ 支持 滑块 ✓ 支持 时间 ✓ 支持 漂浮 ✓ 支持 向量2 ✓ 支持 矢量3 ✓ 支持 矢量4 ✓ 支持 几何学 双切向量 切线和视图空间选项不是标准的。 法向量 切线和视图空间选项不是标准的。 位置 切线和视图空间选项不是标准的。 屏幕位置 ✓ 支持 切向量 切线和视图空间选项不是标准的。 紫外线 ✓ 支持 顶点颜色 ✓ 支持 顶点ID ✓ 支持 坡度 坡度 ✓ 支持 样本梯度 ✓ 支持 灯光 主光方向 ✓ 支持 矩阵 不起作用由于常量矩阵节点定义中的错误 不起作用由于常量矩阵节点定义中的错误 矩阵构建 ✓ 支持 变换矩阵 切线和视图空间选项不是标准的。 场景 相机 Position和Direction支持的输出非标准。 目的 ✓ 支持 场景深度 平台不允许访问深度缓冲区这只是剪辑或视图空间中的相机距离。 屏幕 ✓ 支持 质地 2D 纹理示例 ✓ 支持 示例纹理 2D LOD ✓ 支持 采样器状态 MirrorOnce不支持换行模式。 纹理 2D 资源 ✓ 支持 纹理尺寸 ✓ 支持
4.4.5 数学 部分 节点 笔记 先进的 绝对 ✓ 支持 指数 ✓ 支持 长度 ✓ 支持 日志 ✓ 支持 模块 ✓ 支持 否定 ✓ 支持 标准化 ✓ 支持 基本的 添加 ✓ 支持 划分 ✓ 支持 乘 ✓ 支持 力量 ✓ 支持 平方根 ✓ 支持 减去 ✓ 支持 插值法 逆向线性化 ✓ 支持 莱普 ✓ 支持 平滑步 ✓ 支持 矩阵 矩阵行列式 如果使用 Matrix2将标记为不受支持。 矩阵转置 如果使用 Matrix2将标记为不受支持。 范围 夹钳 ✓ 支持 分数 ✓ 支持 最大限度 ✓ 支持 最低限度 ✓ 支持 一减 ✓ 支持 随机范围 ✓ 支持 重新映射 ✓ 支持 饱和 ✓ 支持 圆形的 天花板 ✓ 支持 地面 ✓ 支持 圆形的 ✓ 支持 符号 ✓ 支持 步 ✓ 支持 三角学 反余弦 ✓ 支持 反正弦 ✓ 支持 反正切 ✓ 支持 反正切2 ✓ 支持 余弦 ✓ 支持 他的 ✓ 支持 切线 ✓ 支持 向量 叉积 ✓ 支持 距离 ✓ 支持 点积 ✓ 支持 菲涅耳效应 ✓ 支持 反射 ✓ 支持 绕轴旋转 ✓ 支持 转换 有些空间是模拟的未在测试中涵盖。 海浪 三角波 ✓ 支持
4.4.6 程序 部分 节点 笔记 噪音 梯度噪声 - 无法确定目标平台噪声函数的行为是否相同。 - 频率当前关闭比例映射到幅度而不是频率。 沃罗诺伊 - 无法确定目标平台噪声函数的行为是否相同。 形状 椭圆 ✓ 支持
4.4.7 Utility 部分 节点 笔记 Utility 预览 ✓ 支持 分体式左轮 特定于 PolySpatial 的非标准着色器图形节点。实现 splitlr 函数如中所述材质X规格. 逻辑 分支 ✓ 支持 比较 ✓ 支持 或者 ✓ 支持
4.4.8 UV 部分 节点 笔记 紫外线 翻页书 ✓ 支持 旋转 仅支持度数。 平铺和偏移 ✓ 支持 三平面 ✓ 支持
4.5 输入
在 VisionOS 上有两种捕获用户意图的方法3D 触摸和骨骼手跟踪。在独占模式下开发人员还可以访问头部跟踪数据。
4.5.1 3D Touch 和 TouchSpace
在有界和无界体积中当用户使用输入碰撞器查看对象并执行“捏”拇指和食指一起触摸以“点击”或“拖动”手势时就会提供3D触摸输入。PolySpatialTouchSpace输入设备向开发人员提供该信息。如果用户按住捏合手势则会启动拖动并向应用程序提供相对于原始起点的“移动”更新。如果对象在触手可及的范围内无需特定注视用户还可以直接在对象上执行捏合手势。
3D触摸事件通过PolySpatialTouchSpace 输入设备公开该设备构建在封装之上com.unity.inputsystem也称为新输入系统。绑定到触摸屏设备的现有操作应该适用于 2D 输入。对于 3D 输入用户可以将操作绑定到特定的PolySpatialTouchSpace设备以获得 3D 位置向量。
任何可以接收 3D 触摸事件的对象都需要将碰撞遮罩设置为 PolySpatial 输入层的碰撞器。仅报告对这些事件的接触。目前平台不会在点击手势开始时提供凝视光线。
4.5.2 骨骼手追踪
骨骼手部跟踪由XR Hands 包中的手部子系统提供。使用场景中的手部可视化器组件用户可以显示玩家手部的蒙皮网格或每关节几何体以及基于手部物理交互的物理对象。用户可以直接针对手子系统编写 C# 脚本来推断骨骼之间的距离和关节角度。Hand Visualizer组件的代码可在XR Hands Package中找到并且可以作为利用Hand Subsystem 的代码的良好起点。
4.5.3 头部追踪
ARKit 通过VisionOS Package提供头部跟踪。这可以使用移动 AR 的创建菜单在场景中进行设置创建 XR XR Origin (Mobile AR)。位姿数据来自devicePosition [HandheldARInputDevice]和deviceRotation [HandheldARInputDevice]的新输入系统。
4.6 自定义 PolySpatial 组件
4.6.1 体积相机
PolySpatial 提供了一个名为 的新 Unity 组件用于Volume Camera与visionOS 环境提供的模式和体积进行交互。体积相机与常规 Unity 相机类似因为它们指示用户应该看到哪些内容但不同之处在于它们捕获 3D 内容而不是 2D 图像。
将 VolumeCamera 组件添加到场景中的对象以指定向用户呈现的内容以及内容的呈现方式。保存 VolumeCamera 的 GameObject 的变换例如比例会影响向用户显示的体积大小。VolumeCamera 的编辑器内预览范围可以帮助可视化应渲染的内容。
通常然后通过相应的“体积渲染器”将该规范体积映射到主机体积渲染器自己的不同OBB将该内容显示在主机平台上。效果是体积相机边界内的 3D 内容被变换、旋转、拉伸和/或挤压以填充体积渲染器的边界。
当Mode设置为 时Unbounded一切都与典型的 Unity 相机类似只是体积相机和体积渲染器各自定义了无界 3 空间而不是有界 VolumeCamera组件公开以下属性 财产 描述 模式 指定音量的模式。 有界 体积相机具有由其尺寸定义的有限边界。任意数量的体积相机都可以处于“有界”模式。 无界 体积相机捕获所有内容无论位置如何并且尺寸字段被禁用和忽略。对于给定应用程序在给定时间只能有一台卷相机处于无界模式。将体积相机的模式设置为无界相当于请求您的应用程序切换到“独占”模式。 方面 定义相机边界框的未缩放大小该边界框以 VolumeCamera变换的位置为中心。世界空间维度是通过维度和变换比例的元素相乘来计算的。 剔除掩码 定义 Unity 图层的位掩码。体积相机只会显示属于指定图层的对象。对于典型的 Unity 相机和 CullingMask 工作流程这可用于指定每个单独的体积相机可见的对象。例如库存体积相机可用于通过定义“库存”图层来渲染一个体积内的 3D 库存而“小地图”图层可用于渲染第二体积内整个场景的鸟瞰图。 4.6.2 PolySpatial视频组件
为了支持 VisionOS 上的视频内容PolySpatial 目前包含一个自定义的PolySpatialVideoComponent. 我们预计最终会支持股票视visionOS提供关键视频功能。要使用它请将 设置Target Material Renderer为频组件但该组件在此期间为GameObject要MeshRenderer显示视频的资源并设置Clip为指向要播放的视频资源例如.mp4
当前系统的一个限制是必须手动将剪辑复制到../StreamingAssets/PolySpatialVideoClips/文件夹中才能在 VisionOS 上实现完整功能。如果该文件夹不存在则创建该文件夹。确保剪辑不仅移入此文件夹而且复制到其中以便有它的两个实例。
该PolySpatialVideoComponent组件公开以下属性 财产 描述 目标材质渲染器 引用应在其上渲染视频的 MeshRenderer。视频将覆盖该 MeshRenderer 上的当前材质。 夹子 要播放的视频资源。 正在循环 当播放到达剪辑末尾时视频是否应重复。 醒着玩 视频是否应在Awake()调用时开始播放。 沉默的 当 true 时音频播放被抑制如果为 false则遵循体积值。 体积 剪辑的当前音频播放音量范围在 0 到 1 之间。
4.6.3 PolySpatial悬停效果
向平台提供提示以在用户将鼠标悬停在此对象上时应用系统悬停效果。这通常用于向用户提供该对象是交互式的视觉提示。这种效果可以通过凝视或用手戳来触发。该效果应用于正在悬停的对象而不是正在悬停的对象。
出于隐私原因visionOS 不允许应用程序直接访问用户的视线。然而在视觉上突出显示用户正在注视的对象通常是有帮助的以便暗示如果用户执行捏合手势哪个对象将接收输入。为此Unity PolySpatialPolySpatialHoverEffect为visionOS 提供了一个组件可以将其添加到可能通过注视接收输入的游戏对象中。该组件的存在指示主机平台 (RealityKit) 在用户的凝视光线与其相应的碰撞体相交时向GameObject应用着色效果。MeshRenderer
必须存在所有三个组件才能实现效果 指示PolySpatialHoverEffect应GameObject显示悬停Collider组件定义凝视光线投射的碰撞形状提供MeshRenderer将应用着色效果的网格和几何体。
4.7 PolySpatial Tooling
4.7.1 日志
PolySpatial 日志记录消息按类别和级别进行标记以便于更有针对性的调试。从 Unity 编辑器的主菜单中选择“窗口”“PolySpatial”“日志记录”以打开“PolySpatial 日志记录”窗口。从这里您可以切换启用哪些类别是否应生成堆栈跟踪以及对于启用堆栈跟踪的类别哪些级别将生成跟踪。
4.7.2 多空间统计
首先通过启用项目设置 PolySpatial 启用统计来启用 PolySpatial 统计跟踪。然后可以在 Unity Editor 主菜单中的Window PolySpatial PolySpatial Statistics下找到该编辑器。在播放模式下此编辑器显示时间的直方图跟踪、跟踪的对象以及已复制到 PolySpatial 主机的资源。
4.7.3 调试链接
为了便于在播放模式下进行调试PolySpatial 运行时添加了DebugPolySpatialGameObjectLinks组件以将每个模拟游戏对象连接到Unity SceneGraph 中其相应的支持游戏对象。
4.7.4 资产查找器
在播放模式下AssetFinder 会跟踪已复制到主机渲染器的所有资源。这对于追踪资产链接非常有用。该编辑器可以在 Unity Editor 主菜单中的PolySpatial Asset Finder下找到。
4.7.5 录音与回放
要录制 PolySpatial 播放模式会话请转至Windows PolySpatial 录制和播放。按Record进入播放模式并开始录音。正常进行交互并提供输入然后退出播放模式以停止录制。新文件将添加到列表中您可以通过选择该录音然后按Play按钮来重播该录音。新输入不会被处理但原始录音中编码的输入将重播。
录音保存在Library/PolySpatialRecordings任何使用相同版本 PolySpatial 软件包的机器上并且可以在任何机器上播放。除此之外这些文件可以提交给 Unity 支持使我们能够调试许多特定于项目的问题而无需项目的完整 zip 文件。