From 3f0531757a28bbe06c36261490cb51f9efaddfd1 Mon Sep 17 00:00:00 2001 From: luboslenco Date: Thu, 19 Mar 2020 22:25:22 +0100 Subject: [PATCH] Apply mask to height --- Sources/arm/node/MakeMesh.hx | 4 ++++ Sources/arm/render/Uniforms.hx | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/Sources/arm/node/MakeMesh.hx b/Sources/arm/node/MakeMesh.hx index 28af998c..4c0fe974 100644 --- a/Sources/arm/node/MakeMesh.hx +++ b/Sources/arm/node/MakeMesh.hx @@ -39,6 +39,10 @@ class MakeMesh { numLayers++; vert.add_uniform('sampler2D texpaint_pack_vert' + l.id, '_texpaint_pack_vert' + l.id); vert.write('height += textureLod(texpaint_pack_vert' + l.id + ', tex, 0.0).a;'); + if (l.texpaint_mask != null) { + vert.add_uniform('sampler2D texpaint_mask_vert' + l.id, '_texpaint_mask_vert' + l.id); + vert.write('height *= textureLod(texpaint_mask_vert' + l.id + ', tex, 0.0).r;'); + } } vert.write('wposition += wnormal * vec3(height, height, height) * vec3($displaceStrength, $displaceStrength, $displaceStrength);'); } diff --git a/Sources/arm/render/Uniforms.hx b/Sources/arm/render/Uniforms.hx index ea26a215..2a89539c 100644 --- a/Sources/arm/render/Uniforms.hx +++ b/Sources/arm/render/Uniforms.hx @@ -338,6 +338,10 @@ class Uniforms { var tid = link.substr(link.length - 1); return RenderPath.active.renderTargets.get("texpaint_pack" + tid).image; } + if (link.startsWith("_texpaint_mask_vert")) { + var tid = Std.parseInt(link.substr(link.length - 1)); + return Project.layers[tid].texpaint_mask; + } if (link == "_texpaint_mask") { return Context.layer.texpaint_mask;