Pro*_*mer 5 shader xna unity-game-engine shaderlab unity3d-shaders
我不得不将XNA着色器移植到Unity的着色器中,并想验证我是否正确执行了此操作.
Pass1使用alpha混合的部分SrcBlend,DestBlend并将set的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();
}
Run Code Online (Sandbox Code Playgroud)
这是我制作的Unity Shaderlab端口:
Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" }
LOD 100
Blend SrcAlpha One
Blend DstAlpha OneMinusSrcAlpha
ZWrite Off
Cull Off
Run Code Online (Sandbox Code Playgroud)
它似乎在Unity中工作正常,但这是Unity中完全相同的传递设置吗?如果没有,则需要进行哪些更改以获得确切的等效性.
小智 0
您应该只放置一次“Blend”关键字:其后的两个关键字分别是用于源和目标的混合因子。您可以将其视为“Blend [SrcBlend] [DstBlend]”格式。
这是正确的混合:
Blend SrcAlpha OneMinusSrcAlpha
Run Code Online (Sandbox Code Playgroud)
这会产生基本的 Alpha 混合。
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |