From 745b51f10f7d841f3eda71cd3c52afeefdaabcb5 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 1 Nov 2017 20:19:40 +0100 Subject: [PATCH] ShaderGenerator: fix M_blend to match fixed-function pipeline See panda3d/panda3d#178 --- panda/src/pgraphnodes/shaderGenerator.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/panda/src/pgraphnodes/shaderGenerator.cxx b/panda/src/pgraphnodes/shaderGenerator.cxx index 0251f7f445..bfa7642ac8 100644 --- a/panda/src/pgraphnodes/shaderGenerator.cxx +++ b/panda/src/pgraphnodes/shaderGenerator.cxx @@ -1417,7 +1417,10 @@ synthesize_shader(const RenderState *rs, const GeomVertexAnimationSpec &anim) { text << "\t result.rgb = lerp(result, tex" << i << ", tex" << i << ".a).rgb;\n"; break; case TextureStage::M_blend: - text << "\t result.rgb = lerp(result, tex" << i << " * texcolor_" << i << ", tex" << i << ".r).rgb;\n"; + text << "\t result.rgb = lerp(result.rgb, texcolor_" << i << ".rgb, tex" << i << ".rgb);\n"; + if (key._calc_primary_alpha) { + text << "\t result.a *= tex" << i << ".a;\n"; + } break; case TextureStage::M_replace: text << "\t result = tex" << i << ";\n";