diff --git a/Sources/arm/node/MakeDiscard.hx b/Sources/arm/node/MakeDiscard.hx index ab3bdc33..f8a71885 100644 --- a/Sources/arm/node/MakeDiscard.hx +++ b/Sources/arm/node/MakeDiscard.hx @@ -6,13 +6,10 @@ import arm.node.MaterialShader; class MakeDiscard { public static function colorId(vert: MaterialShader, frag: MaterialShader) { - vert.add_out('vec2 texCoordPick'); - vert.write('texCoordPick = fract(subtex);'); frag.add_uniform('sampler2D texpaint_colorid'); // 1x1 picker frag.add_uniform('sampler2D texcolorid', '_texcolorid'); // color map - frag.add_uniform('vec2 texcoloridSize', '_texcoloridSize'); // color map frag.write('vec3 c1 = texelFetch(texpaint_colorid, ivec2(0, 0), 0).rgb;'); - frag.write('vec3 c2 = texelFetch(texcolorid, ivec2(texCoordPick * texcoloridSize), 0).rgb;'); + frag.write('vec3 c2 = textureLod(texcolorid, subtex, 0).rgb;'); #if kha_opengl frag.write('if (c1 != c2) discard;'); #else @@ -22,7 +19,7 @@ class MakeDiscard { public static function face(vert: MaterialShader, frag: MaterialShader) { vert.add_out('vec2 texCoordPick'); - vert.write('texCoordPick = fract(subtex);'); + vert.write('texCoordPick = subtex;'); frag.add_uniform('sampler2D gbuffer2'); frag.add_uniform('sampler2D textrianglemap', '_textrianglemap'); // triangle map frag.add_uniform('float textrianglemapSize', '_texpaintSize'); @@ -33,7 +30,7 @@ class MakeDiscard { frag.write('vec2 texCoordInp = texelFetch(gbuffer2, ivec2(inp.x * gbufferSize.x, inp.y * gbufferSize.y), 0).ba;'); #end frag.write('vec4 c1 = texelFetch(textrianglemap, ivec2(texCoordInp * textrianglemapSize), 0);'); - frag.write('vec4 c2 = texelFetch(textrianglemap, ivec2(texCoordPick * textrianglemapSize), 0);'); + frag.write('vec4 c2 = textureLod(textrianglemap, texCoordPick, 0);'); #if kha_opengl frag.write('if (c1 != c2) discard;'); #else diff --git a/Sources/arm/render/Uniforms.hx b/Sources/arm/render/Uniforms.hx index 2a89539c..ffa8e22a 100644 --- a/Sources/arm/render/Uniforms.hx +++ b/Sources/arm/render/Uniforms.hx @@ -117,12 +117,6 @@ class Uniforms { vec2.set(-eps, eps, 0.0); return vec2; } - if (link == "_texcoloridSize") { - if (Project.assets.length == 0) return vec2; - var img = UISidebar.inst.getImage(Project.assets[UISidebar.inst.colorIdHandle.position]); - vec2.set(img.width, img.height, 0); - return vec2; - } if (link == "_gbufferSize") { vec2.set(0, 0, 0); var gbuffer2 = RenderPath.active.renderTargets.get("gbuffer2");