gpt4 book ai didi

unity3d - 将 XNA Shader channel 、混合和剔除模式移植到 Unity shaderlab 中

转载 作者:行者123 更新时间:2023-12-03 17:31:55 25 4
gpt4 key购买 nike

我不得不将 XNA 着色器移植到 Unity 的着色器中,并想验证我是否正确执行了此操作。
Pass1使用 alpha 混合的部分,如 SrcBlend , DestBlend将剔除设置为 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 中的传递设置完全相同?如果不是,那么需要进行哪些更改才能获得确切的等效性。

最佳答案

您应该只放置一次“混合”关键字:它后面的两个关键字分别是用于源和目标的混合因子。您可以将其视为“Blend [SrcBlend] [DstBlend]”格式。

这是正确的混合:

Blend SrcAlpha OneMinusSrcAlpha

这会导致基本的 alpha 混合。

关于unity3d - 将 XNA Shader channel 、混合和剔除模式移植到 Unity shaderlab 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52537853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com