PolySpatial材质支持
每个管线的几个重要标准着色器已映射到最接近的RealityKit模拟。目前的支持包括:
- 标准URP着色器:Lit, Simple Lit, Unlit,(+待定-即将推出)
- 标准内置着色器:标准,(+待定 - 更多即将推出)
自定义着色器
可以通过 Unity Shader Graph 为 visionOS 编写着色器和材质。在后台,这些着色器图被转换成 MaterialX。虽然 MaterialX 非常具有表现力,但一些 Shader Graph 节点在 MaterialX 中没有类似物。在 ShaderGraph 编辑器中,不支持的节点将通过“#”符号来指示,但另请参阅Shader Graph 支持。支持 Lit 和 Unlit 根节点。
ShaderLab, Metal和其他基于代码的着色器不可用,因为用于visionOS的RealityKit目前没有公开低级着色语言。
不受光材质
通用渲染管线/不受光
对于URP不受光材质,PolySpatial支持“Base Map”颜色和纹理属性,以及“Opaque”和“Transparent”(具有混合模式“Alpha”)表面类型。可以启用“Alpha Clipping”;如果“Threshold”大于零,则不会进行混合(仅进行alpha测试)。如果“Threshold”等于0,材质将在visionOS上使用alpha-to-coverage模式。
不受光/彩色
对于内置渲染器管线不受光彩色材质,支持“Main Color”属性。
不受光/纹理
对于内置渲染器管线不受光纹理材质,支持“Base (RGB)”纹理。
不受光/透明
对于内置渲染器管线不受光透明材质,支持“Base (RGBA)”纹理。
受光材质
默认情况下,使用受光材质只会将主机系统的光照应用到材质上。例如,在visionOS上,这只适用于编码真实世界照明的系统IBL。如果您还想在材质中Unity的内部照明(如光照贴图、光探针和/或动态光源),则需要选择通过连接PolySpatial Lighting Node来按材质添加这些更昂贵的照明计算。
通用渲染管线/受光
对于URP受光材质,都会遵守“Base Map”颜色和纹理以及“Render Face”选项和“Surface Inputs”的“Tiling”和“Offset”属性。
在启用“Specular”工作流程和“Specular Highlights”时,PolySpatial支持“Specular Map”纹理或相关颜色的(灰度)强度。在“Metallic”工作流程中,PolySpatial 支持“Metallic Map”纹理或强度,并遵循“Specular Highlights”切换。
对于这两个工作流程,都会考虑“Smoothness”强度,但不支持来自纹理通道的平滑度(例如,来自“Metallic Alpha”)。支持“Normal Map”[^1],但不支持法线比例。同样,支持“Occlusion Map”,但不支持遮挡强度。可以规定“Emission”颜色or纹理;如果两者都予以规定,则颜色会被还原为灰度,并用作乘数。
支持“Opaque”和“Transparent”(使用“Alpha”混合模式)表面类型。在“Transparent”模式下,会考虑“Preserve Specular”标志。可以启用“Alpha Clipping”;如果“Threshold”大于零,则不会进行混合(仅进行alpha测试)。如果“Threshold”等于0,材质将在visionOS上使用alpha-to-coverage模式。
通用渲染管线/简单光照
对于URP简单光照材质,除了没有“Metallic”属性和“Occlusion Map”外,支持的选项与受光材质相同。
通用渲染管线/复杂光照
对于URP复杂光照材质,支持的选项与光照材质相同,但添加了“Clear Coat”选项及其“Mask”和“Smoothness”属性。
标准
内置标准光照材质的支持方式与“Metallic”工作流程中的URP受光材质大致相同。同样,也遵守“Albedo”纹理和颜色、“Metallic”贴图或强度以及“Smoothness”强度(但不包括平滑度“Source”)。支持“Normal Map”[^1]和“Occlusion”(但不支持其相应的强度),以及“Emission”颜色或纹理、“Main Maps”、“Tiling”和“Offset”以及“Specular Highlights”标志。支持所有渲染模式:“Opaque”,“Transparent”,“Fade”和“Cutout”.
标准(镜面设置)
内置光照镜面材质的支持方式与“Specular”工作流程中URP受光材质的支持方式相同。同样,也遵守“Albedo”纹理和颜色、“Specular”贴图或(灰度)强度以及“Smoothness”强度(但不包括平滑度“Source”)。支持“Normal Map”[^1]和“Occlusion”(但不支持其相应的强度),以及“Emission”颜色或纹理、“Main Maps”、“Tiling”和“Offset”以及“Specular Highlights”标志。支持所有渲染模式:“Opaque”,“Transparent”,“Fade”和“Cutout”.
[^1]: 目前,非 shader graph 材质中使用的法线贴图必须作为“Default”纹理类型导入(即,not“Normal map”类型),并且未选中“sRGB (Color Texture)”选项。
特殊用途材质
TextMeshPro/距离场
TextMeshPro/移动/距离场
TMP 距离场材质将转换为仅考虑“Face Color”和“Face Texture”属性的 shader graph 材质。
UI/默认
UI默认材质被转换为不受光材质,符合色调和纹理属性。
通用渲染管线/粒子/不受光
URP不受光粒子材质转换为不受光材质,符合“Base Map”的纹理和颜色以及“Surface Type”。
通用渲染管线/粒子/受光
URP受光粒子材质被转换为“Base Map”纹理和颜色、“Metallic Map”和强度、“Normal Map”、“Smoothness”强度、“Normal”强度、“Emission Map”纹理和颜色以及“Surface Type”的受光材质。
颗粒/标准表面
内置渲染管线受光粒子材质转换为“Albedo”纹理和颜色、“Normal Map”、“Smoothness”强度、“Normal”强度、“Emission Map”纹理和颜色以及“Surface Type”的受光材质。
AR/基本遮挡
AR/遮挡
遮挡材质转换为基本等效材质。
着色器图材质
Shader Graph可以使用内置或URP目标以及不受光或受光材质。支持所有输出块。有关着色器图支持的更多信息,请参阅shader graph conversion notes。
后备材质
如果使用不支持的着色器,PolySpatial将尝试回退到基本的受光或不受光着色器。该操作可以通过PolySpatial设置中的“Enable Fallback Shader Conversion”来切换。如果禁用该选项,不支持的着色器将在设备上渲染为洋红色。