{}!Google Tag Manager end}} Shader Graph 支持 | PolySpatial visionOS | 1.0.3
docs.unity3d.com
    显示 / 隐藏目录

    Shader Graph 支持

    可以使用 Unity Shader Graph 为 visionOS 创建自定义材质。这些将在 Unity 中以编译形式预览,但转换为 MaterialX 以在模拟器和设备上显示。虽然 MaterialX 非常具有表现力,但一些 Shader Graph 节点在 MaterialX 中没有类似物。在 Shader Graph 编辑器中,不支持的节点将由“#”符号表示。

    出于技术、安全和隐私原因,在使用AR透传时,visionOS 不允许运行基于 Metal 的着色器或其他低级着色语言。

    纹理限制

    在 shader graph 中采样纹理时,请注意,与纹理本身关联的采样器状态(过滤器、包裹模式)将被忽略。 相反,如果您想使用默认模式(线性过滤、重复环绕模式)以外的模式,则必须使用Sampler State节点来控制纹理的采样方式。

    坐标空间注释

    在 shader graph 中的坐标空间之间进行转换时,需要注意两个注意事项。 由于内容根据 体积摄像机 进行转换,因此 shader graph 中返回的"world space"几何图形将与模拟场景的几何图形不匹配。此外,visionOS 目前在它返回的几何图形和它提供的变换矩阵方面不一致。

    检索源场景的几何图形

    要获取模拟场景的世界空间中的位置、法线、切线或双切线,请将“Position”、“Normal Vector”、“Tangent Vector”或“Bitangent Vector”节点与“Space”结合使用:“World”,然后使用“PolySpatial Volume to World”节点以及适合该类型的“Transform”对它们进行变换(通常为位置使用“Position”,其余为“Direction",在变换后将进行标准化)。

    VisionOS 中变换和变换矩阵节点的注意事项

    “Transformation Matrix”节点返回的矩阵和“Transform”节点使用的矩阵是直接从visionOS获得的,目前假设的世界空间既不匹配模拟场景,也不匹配“Position”、“Normal Vector”、“Tangent Vector”或“Bitangent Vector”节点的输出。 这些节点的“world space”输出与输出体积的变换相关,也就是说,当拖动有界应用程序体积时不会改变。 另一方面,“Transform”和“Transformation Matrix”节点假定所有应用程序卷之间共享的世界空间。 要获取此世界空间中的几何图形,请将几何图形(例如“Position”)节点与“Space”一起使用:“Object”,并将“Transform”节点设置为“From”对其进行变换:“Object”和“To”:“World”。

    输入属性

    Shader Graph 属性必须设置为“Exposed”,才能按实例进行设置。 全局参数不能是“Exposed”,并且必须使用PolySpatialShaderGlobals的方法在 C# 中设置全局值。

    基于时间的动画

    请注意,visionOS 材质本身不支持全局属性,因此 PolySpatial 必须将全局属性单独应用于所有材质实例,这可能会影响性能。 对于动画,请考虑使用“PolySpatial Time”节点,而不是标准的Unity shader graph “Time”。 虽然“PolySpatial Time”不会与 Time.time 完全同步(值得注意的是,不会反映 Time.timeScale),它在 visionOS 中得到本机支持,不需要每帧属性更新。

    支持的目标

    支持“Universal”和“Built-In”目标进行转换。 对于这两个目标,都支持“Lit”和“Unlit”材质,以及“Opaque”和“Transparent”表面类型以及“Alpha Clipping”设置。 对于“Transparent”表面,支持“Alpha”、“Premultiply”和“Additive”混合模式。 目前不支持转换的其他目标设置。 由于平台限制,所有材质都将具有“Front”渲染面、启用深度写入、“LEqual”深度测试和切线空间片段法线。

    Shader Graph 节点

    下表显示了visionOS在PolySpatial中的current support status for Shader Graph nodes,包括支持的节点列表及其各种警告。

    如果此处未出现节点,则表示当前不支持该节点。请注意,随着我们继续添加对更多节点的支持,此列表将会同步更新。*

    Artistic

    部分 节点 注意
    调整 通道混合器 ✓ 支持
    对比 ✓ 支持
    色调 ✓ 支持
    反转颜色 ✓ 支持
    替换颜色 ✓ 支持
    饱和 ✓ 支持
    白平衡 ✓ 支持
    混合 混合 ✓ 支持
    过滤 噪声处理 仅支持默认的“Screen Position”。
    淡入淡出过渡 ✓ 支持
    遮罩 通道遮罩 ✓ 支持
    彩色遮罩 ✓ 支持
    法线 法线混合 ✓ 支持
    高度法线 ✓ 支持
    纹理法线 ✓ 支持
    法线重建Z ✓ 支持
    法线强度 ✓ 支持
    法线拆分 ✓ 支持
    实用程序 色彩空间转换 ✓ 支持

    渠道

    部分 节点 注意
    通道 结合 ✓ 支持
    翻转 ✓ 支持
    分割 ✓ 支持
    重排 ✓ 支持

    输入

    “Custom Interpolators”仅限于这些特定/名称类型:

    • Color:Vector4
    • UV0: Vector2
    • UV1:Vector2
    • UserAttribute:Vector4

      部分 节点 注意
      基本 布尔值 (Boolean) ✓ 支持
      颜色 ✓ 支持
      常量 ✓ 支持
      整数 ✓ 支持
      滑动条 ✓ 支持
      时间 ✓ 支持
      浮点 ✓ 支持
      Vector2 ✓ 支持
      Vector3 ✓ 支持
      Vector4 ✓ 支持
      几何体 双切向量 切线和视图空间选项不是标准选项。
      法向量 切线和视图空间选项不是标准选项。
      位置 切线和视图空间选项不是标准选项。
      屏幕位置 ✓ 支持
      切向量 切线和视图空间选项不是标准选项。
      UV ✓ 支持
      顶点颜色 ✓ 支持
      顶点ID ✓ 支持
      视图方向 ✓ 支持
      渐变 黑体 ✓ 支持
      渐变 ✓ 支持
      样本梯度 ✓ 支持
      照明 环境 ✓ 支持
      主光源方向 ✓ 支持
      矩阵 矩阵2x2 ✓ 支持
      矩阵3x3 ✓ 支持
      矩阵4x4 ✓ 支持
      变换矩阵 切线和视图空间选项不是标准选项。
      PBR 电介质镜面 ✓ 支持
      金属反射率 ✓ 支持
      场景 摄像机 支持“Position”和“Direction”输出(非标准)。
      眼睛指数 ✓ 支持
      对象 ✓ 支持
      场景深度 平台不允许访问深度缓冲区,这只是在剪辑或视图空间的摄像机距离。
      屏幕 ✓ 支持
      纹理 立方体贴图资源 ✓ 支持
      立方体贴图示例 ✓ 支持
      反射立方体贴图示例 ✓ 支持
      2D纹理示例 ✓ 支持
      2D LOD纹理示例 ✓ 支持
      3D纹理示例 ✓ 支持
      采样器状态 不支持“MirrorOnce”环绕模式。
      纹理2D资源 ✓ 支持
      纹理3D资源 ✓ 支持
      纹理尺寸 ✓ 支持

    数学

    部分 节点 注意
    高級 绝对 ✓ 支持
    指数 ✓ 支持
    长度 ✓ 支持
    日志 ✓ 支持
    模数 ✓ 支持
    否定 ✓ 支持
    归一化 ✓ 支持
    色调分离 ✓ 支持
    相互 ✓ 支持
    倒数平方根 ✓ 支持
    基本 添加 ✓ 支持
    划分 ✓ 支持
    乘法 ✓ 支持
    幂 ✓ 支持
    平方根 ✓ 支持
    减去 ✓ 支持
    插值 逆线性插值 ✓ 支持
    线性插值 ✓ 支持
    平滑步 ✓ 支持
    矩阵 矩阵构建 ✓ 支持
    矩阵行列式 ✓ 支持
    矩阵分裂 ✓ 支持
    矩阵转置 ✓ 支持
    范围 钳制 ✓ 支持
    片段 ✓ 支持
    最大 ✓ 支持
    最小 ✓ 支持
    一减 ✓ 支持
    随机范围 ✓ 支持
    重新映射 ✓ 支持
    饱和 ✓ 支持
    圆形的 天花板 ✓ 支持
    地面 ✓ 支持
    圆形的 ✓ 支持
    符号 ✓ 支持
    步骤 ✓ 支持
    截断 ✓ 支持
    三角学 反余弦 ✓ 支持
    反正弦 ✓ 支持
    反正切 ✓ 支持
    Arctangent2 ✓ 支持
    余弦 ✓ 支持
    度到弧度 ✓ 支持
    双曲余弦 ✓ 支持
    双曲正弦 ✓ 支持
    双曲正切 ✓ 支持
    弧度到度 ✓ 支持
    正弦 ✓ 支持
    Tangent ✓ 支持
    Vector 叉积 ✓ 支持
    距离 ✓ 支持
    点积 ✓ 支持
    菲涅耳效应 ✓ 支持
    投影 ✓ 支持
    反射 ✓ 支持
    折射 ✓ 支持
    拒绝 ✓ 支持
    绕轴旋转 ✓ 支持
    球体遮罩 ✓ 支持
    变换 有些空间是模拟的,不包括在测试中。
    波形 噪声正弦波 ✓ 支持
    锯齿波 ✓ 支持
    方波 ✓ 支持
    三角波 ✓ 支持

    程序化

    部分 节点 注意
    程序化 棋盘 ✓ 支持
    噪音 梯度噪声 ✓ 支持
    泰森多边形 不支持“Cells”输出。
    形狀 椭圆 ✓ 支持
    多边形 ✓ 支持
    矩形 ✓ 支持
    圆角多边形 ✓ 支持
    圆角矩形 ✓ 支持

    实用程序

    部分 节点 注意
    实用程序 自定义功能 参见custom function node conversion notes。
    PolySpatial环境辐射 请参阅lighting notes。
    PolySpatial照明 请参阅lighting notes。
    PolySpatial时间 PolySpatial专用非标准 shader graph 节点。实现MaterialX Spec中所述的时间函数。
    预览 ✓ 支持
    分体式LR PolySpatial 专用非标 shader graph 节点。实现MaterialX Spec中所述的splitlr函数。
    逻辑 分支 ✓ 支持
    比较 ✓ 支持
    无限 ✓ 支持
    NaN ✓ 支持
    或 ✓ 支持

    UV

    部分 节点 注意
    UV Flipbook ✓ 支持
    极坐标 ✓ 支持
    径向剪切 ✓ 支持
    旋转 ✓ 支持
    球化 ✓ 支持
    平铺和偏移 ✓ 支持
    三平面 ✓ 支持
    旋转 ✓ 支持
    返回到顶部
    Copyright © 2024 Unity Technologies —
    • Your Privacy Choices (Cookie Settings)