我不得不将 XNA 着色器移植到 Unity 的着色器中,并想验证我是否正确地执行了此操作。
Pass1
使用 alpha 混合的部分,如SrcBlend
,DestBlend
和 set's cull to none 是我要确保我做对的唯一地方。
这是 XNA 着色器版本:
pass Pass1
{
AlphaBlendEnable = true;
SrcBlend = SRCALPHA;
DestBlend = INVSRCALPHA;
CullMode = None;
VertexShader = compile vs_2_0 TheVertexShader();
PixelShader = compile ps_2_0 ThePixelShader();
}
这是我制作的 Unity Shaderlab 端口:
Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" }
LOD 100
Blend SrcAlpha One
Blend DstAlpha OneMinusSrcAlpha
ZWrite Off
Cull Off
它似乎在 Unity 中运行良好,但这与 Unity 中的等效通道设置完全相同吗?如果不是,则需要进行哪些更改才能获得确切的等效性。