包含此页的版本:
不含此页的版本:
材质验证器适用于使用 Unity 标准着色器或表面着色器为内置渲染管线编写着色器的简化方法。更多信息
请参阅术语表. 但是,自定义着色器在 GPU 上运行的程序。更多信息
请参阅术语表需要名为“META”. 大多数支持光照贴图的自定义着色器都已经定义了此通道。有关更多详细信息,请参阅有关光照贴图和着色器的文档。
执行以下步骤,使自定义着色器与材质验证器兼容:
#pragma shader_feature EDITOR_VISUALIZATION
UnityMetaInput结构,将镜面反射颜色(specular color) 镜面反射高光的颜色。SpecularColor,如下面的代码示例所示。以下是自定义元通道的示例:
Pass
{
Name "META"
Tags { "LightMode"="Meta" }
Cull Off
CGPROGRAM
#pragma vertex vert_meta
#pragma fragment frag_meta
#pragma shader_feature _EMISSION
#pragma shader_feature _METALLICGLOSSMAP
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
#pragma shader_feature ___ _DETAIL_MULX2
#pragma shader_feature EDITOR_VISUALIZATION
float4 frag_meta(v2f_meta i) : SV_TARGET
{
UnityMetaInput input;
UNITY_INITIALIZE_OUTPUT(UnityMetaInput, input);
float4 materialSpecularColor = float4(1.0f, 0.0f, 0.0f, 1.0f);
float4 materialAlbedo = float4(0.0f, 1.0f, 0.0f, 1.0f);
input.SpecularColor = materialSpecularColor;
input.Albedo = materialAlbedo;
return UnityMetaFragment(input);
}
}