Improve directional brush

This commit is contained in:
luboslenco
2020-03-25 12:42:53 +01:00
parent a6fb7a8bb7
commit e75726926e
2 changed files with 13 additions and 4 deletions
+11 -2
View File
@@ -61,8 +61,17 @@ class MakeBrush {
frag.write('pa += wn * vec3(planeDist, planeDist, planeDist);');
}
frag.write('vec3 ba = winplast.xyz - winp.xyz;');
frag.write('float h = clamp(dot(pa, ba) / dot(ba, ba), 0.0, 1.0);');
frag.write('float dist = length(pa - ba * h);');
if (UISidebar.inst.brushLazyRadius > 0 && UISidebar.inst.brushLazyStep > 0) {
// Sphere
frag.write('float dist = distance(wposition, winp.xyz);');
}
else {
// Capsule
frag.write('float h = clamp(dot(pa, ba) / dot(ba, ba), 0.0, 1.0);');
frag.write('float dist = length(pa - ba * h);');
}
frag.write('if (dist > brushRadius) discard;');
}
else { // !brush3d
+2 -2
View File
@@ -214,12 +214,12 @@ class MakePaint {
if (UISidebar.inst.brushMaskImage != null && Context.tool == ToolDecal) {
frag.add_uniform('sampler2D texbrushmask', '_texbrushmask');
frag.write('vec4 mask_sample = textureLod(texbrushmask, texCoord, 0.0);');
frag.write('vec4 mask_sample = textureLod(texbrushmask, uvsp, 0.0);');
frag.write('opacity *= mask_sample.r * mask_sample.a;');
}
else if (Context.tool == ToolText) {
frag.add_uniform('sampler2D textexttool', '_textexttool');
frag.write('opacity *= textureLod(textexttool, texCoord, 0.0).r;');
frag.write('opacity *= textureLod(textexttool, uvsp, 0.0).r;');
}
if (UISidebar.inst.brushStencilImage != null && (