Мне пришлось перенести XNA-шейдер в шейдер Unity и проверить, правильно ли я это сделал.
Раздел Pass1
, в котором используется альфа-смешивание, например SrcBlend
, DestBlend
, и для параметра cull установлено значение 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?Если нет, то какие изменения требуются, чтобы получить точную эквивалентность.