diff --git a/Shaders/painter/glsl/layer_copy.frag.glsl b/Shaders/painter/glsl/layer_copy.frag.glsl index 5d3fdd19..b0b28b3a 100644 --- a/Shaders/painter/glsl/layer_copy.frag.glsl +++ b/Shaders/painter/glsl/layer_copy.frag.glsl @@ -1,23 +1,8 @@ #version 330 uniform sampler2D tex; -uniform int channel; in vec2 texCoord; in vec4 color; out vec4 FragColor; void main() { - if (channel == 1) { - FragColor = textureLod(tex, texCoord, 0).rrra * color; - } - else if (channel == 2) { - FragColor = textureLod(tex, texCoord, 0).ggga * color; - } - else if (channel == 3) { - FragColor = textureLod(tex, texCoord, 0).bbba * color; - } - else if (channel == 4) { - FragColor = textureLod(tex, texCoord, 0).aaaa * color; - } - else { - FragColor = textureLod(tex, texCoord, 0).rgba * color; - } + FragColor = textureLod(tex, texCoord, 0).rgba * color; } diff --git a/Shaders/painter/glsl/layer_view.frag.glsl b/Shaders/painter/glsl/layer_view.frag.glsl index 569c48fc..e5951c65 100644 --- a/Shaders/painter/glsl/layer_view.frag.glsl +++ b/Shaders/painter/glsl/layer_view.frag.glsl @@ -17,6 +17,9 @@ void main() { else if (channel == 4) { FragColor = textureLod(tex, texCoord, 0).aaaa * color; } + else if (channel == 5) { + FragColor = textureLod(tex, texCoord, 0).rgba * color; + } else { vec4 tex_sample = textureLod(tex, texCoord, 0).rgba; tex_sample.rgb *= tex_sample.a; diff --git a/Shaders/painter/hlsl/layer_copy.frag.glsl b/Shaders/painter/hlsl/layer_copy.frag.glsl index 8ec76148..e732fbcf 100644 Binary files a/Shaders/painter/hlsl/layer_copy.frag.glsl and b/Shaders/painter/hlsl/layer_copy.frag.glsl differ diff --git a/Shaders/painter/hlsl/layer_view.frag.glsl b/Shaders/painter/hlsl/layer_view.frag.glsl index 8d63714a..00707559 100644 Binary files a/Shaders/painter/hlsl/layer_view.frag.glsl and b/Shaders/painter/hlsl/layer_view.frag.glsl differ diff --git a/Shaders/painter/hlsl/src/layer_copy.frag.hlsl b/Shaders/painter/hlsl/src/layer_copy.frag.hlsl index 67b90127..6a653ae3 100644 --- a/Shaders/painter/hlsl/src/layer_copy.frag.hlsl +++ b/Shaders/painter/hlsl/src/layer_copy.frag.hlsl @@ -1,20 +1,5 @@ Texture2D tex; SamplerState _tex_sampler; -uniform int channel; float4 main(float4 color : TEXCOORD0, float2 texCoord : TEXCOORD1) : SV_Target0 { - if (channel == 1) { - return tex.SampleLevel(_tex_sampler, texCoord, 0).rrra * color; - } - else if (channel == 2) { - return tex.SampleLevel(_tex_sampler, texCoord, 0).ggga * color; - } - else if (channel == 3) { - return tex.SampleLevel(_tex_sampler, texCoord, 0).bbba * color; - } - else if (channel == 4) { - return tex.SampleLevel(_tex_sampler, texCoord, 0).aaaa * color; - } - else { - return tex.SampleLevel(_tex_sampler, texCoord, 0).rgba * color; - } + return tex.SampleLevel(_tex_sampler, texCoord, 0).rgba * color; } diff --git a/Shaders/painter/hlsl/src/layer_view.frag.hlsl b/Shaders/painter/hlsl/src/layer_view.frag.hlsl index 34b19d06..419fdfbe 100644 --- a/Shaders/painter/hlsl/src/layer_view.frag.hlsl +++ b/Shaders/painter/hlsl/src/layer_view.frag.hlsl @@ -14,6 +14,9 @@ float4 main(float4 color : TEXCOORD0, float2 texCoord : TEXCOORD1) : SV_Target0 else if (channel == 4) { return tex.SampleLevel(_tex_sampler, texCoord, 0).aaaa * color; } + else if (channel == 5) { + return tex.SampleLevel(_tex_sampler, texCoord, 0).rgba * color; + } else { float4 sample = tex.SampleLevel(_tex_sampler, texCoord, 0).rgba; sample.rgb *= sample.a; diff --git a/Sources/arm/ui/UIView2D.hx b/Sources/arm/ui/UIView2D.hx index 378016ee..8a965366 100644 --- a/Sources/arm/ui/UIView2D.hx +++ b/Sources/arm/ui/UIView2D.hx @@ -112,11 +112,12 @@ class UIView2D { layer.texpaint_pack; channel = - Context.layerIsMask ? 1 : + Context.layerIsMask ? 1 : texType == TexOcclusion ? 1 : texType == TexRoughness ? 2 : texType == TexMetallic ? 3 : texType == TexOpacity ? 4 : + texType == TexNormal ? 5 : 0; } else { // View2DAsset