Skip to content

Commit 11ef2c8

Browse files
committed
Updated shader to support tint effect attribute
1 parent 52b24e2 commit 11ef2c8

4 files changed

Lines changed: 31 additions & 3 deletions

File tree

src/renderer/webgl/shaders/TextureTint-frag.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,22 @@ module.exports = [
66
'uniform sampler2D uMainSampler;',
77
'',
88
'varying vec2 outTexCoord;',
9+
'varying float outTintEffect;',
910
'varying vec4 outTint;',
1011
'',
1112
'void main()',
1213
'{',
1314
' vec4 texel = texture2D(uMainSampler, outTexCoord);',
14-
' texel *= vec4(outTint.rgb * outTint.a, outTint.a);',
15+
'',
16+
' if (outTintEffect == 1.0)',
17+
' {',
18+
' texel.rgb = mix(texel.rgb, outTint.rgb, texel.a);',
19+
' }',
20+
' else',
21+
' {',
22+
' texel *= vec4(outTint.rgb * outTint.a, outTint.a);',
23+
' }',
24+
'',
1525
' gl_FragColor = texel;',
1626
'}',
1727
''

src/renderer/webgl/shaders/TextureTint-vert.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,20 @@ module.exports = [
99
'',
1010
'attribute vec2 inPosition;',
1111
'attribute vec2 inTexCoord;',
12+
'attribute float inTintEffect;',
1213
'attribute vec4 inTint;',
1314
'',
1415
'varying vec2 outTexCoord;',
16+
'varying float outTintEffect;',
1517
'varying vec4 outTint;',
1618
'',
1719
'void main ()',
1820
'{',
1921
' gl_Position = uProjectionMatrix * uViewMatrix * uModelMatrix * vec4(inPosition, 1.0, 1.0);',
22+
'',
2023
' outTexCoord = inTexCoord;',
2124
' outTint = inTint;',
25+
' outTintEffect = inTintEffect;',
2226
'}',
2327
'',
2428
''

src/renderer/webgl/shaders/src/TextureTint.frag

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,21 @@ precision mediump float;
55
uniform sampler2D uMainSampler;
66

77
varying vec2 outTexCoord;
8+
varying float outTintEffect;
89
varying vec4 outTint;
910

10-
void main()
11+
void main()
1112
{
1213
vec4 texel = texture2D(uMainSampler, outTexCoord);
13-
texel *= vec4(outTint.rgb * outTint.a, outTint.a);
14+
15+
if (outTintEffect == 1.0)
16+
{
17+
texel.rgb = mix(texel.rgb, outTint.rgb, texel.a);
18+
}
19+
else
20+
{
21+
texel *= vec4(outTint.rgb * outTint.a, outTint.a);
22+
}
23+
1424
gl_FragColor = texel;
1525
}

src/renderer/webgl/shaders/src/TextureTint.vert

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,19 @@ uniform mat4 uModelMatrix;
88

99
attribute vec2 inPosition;
1010
attribute vec2 inTexCoord;
11+
attribute float inTintEffect;
1112
attribute vec4 inTint;
1213

1314
varying vec2 outTexCoord;
15+
varying float outTintEffect;
1416
varying vec4 outTint;
1517

1618
void main ()
1719
{
1820
gl_Position = uProjectionMatrix * uViewMatrix * uModelMatrix * vec4(inPosition, 1.0, 1.0);
21+
1922
outTexCoord = inTexCoord;
2023
outTint = inTint;
24+
outTintEffect = inTintEffect;
2125
}
2226

0 commit comments

Comments
 (0)