forked from bartvdbraak/blender
have texture paint use the curve rather then the falloff setting (falloff gave ugly center area of 100% opacity)
This commit is contained in:
parent
589ea76833
commit
46fb2d37e3
@ -378,10 +378,6 @@ class VIEW3D_PT_tools_brush(PaintPanel):
|
||||
row.itemR(brush, "strength", slider=True)
|
||||
row.itemR(brush, "strength_pressure", toggle=True, icon='ICON_BRUSH_DATA', text="")
|
||||
|
||||
row = col.row(align=True)
|
||||
row.itemR(brush, "falloff", slider=True)
|
||||
row.itemR(brush, "falloff_pressure", toggle=True, icon='ICON_BRUSH_DATA', text="")
|
||||
|
||||
col.itemR(brush, "blend")
|
||||
|
||||
# Weight Paint Mode #
|
||||
|
@ -64,7 +64,6 @@ float brush_curve_strength(struct Brush *br, float p, const float len);
|
||||
|
||||
/* sampling */
|
||||
float brush_sample_falloff(struct Brush *brush, float dist);
|
||||
float brush_sample_falloff_noalpha(struct Brush *brush, float dist);
|
||||
void brush_sample_tex(struct Brush *brush, float *xy, float *rgba);
|
||||
void brush_imbuf_new(struct Brush *brush, short flt, short texfalloff, int size,
|
||||
struct ImBuf **imbuf);
|
||||
|
@ -409,23 +409,6 @@ float brush_sample_falloff(Brush *brush, float dist)
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
float brush_sample_falloff_noalpha(Brush *brush, float dist)
|
||||
{
|
||||
float outer, inner;
|
||||
|
||||
outer = brush->size >> 1;
|
||||
inner = outer*brush->innerradius;
|
||||
|
||||
if (dist <= inner) {
|
||||
return 1.0f;
|
||||
}
|
||||
else if ((dist < outer) && (inner < outer)) {
|
||||
return 1.0f - sqrt((dist - inner)/(outer - inner));
|
||||
}
|
||||
else
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
void brush_sample_tex(Brush *brush, float *xy, float *rgba)
|
||||
{
|
||||
MTex *mtex= brush->mtex[brush->texact];
|
||||
|
@ -3707,7 +3707,7 @@ static void *do_projectpaint_thread(void *ph_v)
|
||||
ProjPaintImage *last_projIma= NULL;
|
||||
ImagePaintPartialRedraw *last_partial_redraw_cell;
|
||||
|
||||
float rgba[4], alpha, dist_nosqrt;
|
||||
float rgba[4], alpha, dist_nosqrt, dist;
|
||||
|
||||
float brush_size_sqared;
|
||||
float falloff;
|
||||
@ -3721,6 +3721,7 @@ static void *do_projectpaint_thread(void *ph_v)
|
||||
float co[2];
|
||||
float mask = 1.0f; /* airbrush wont use mask */
|
||||
unsigned short mask_short;
|
||||
float size_half = ((float)ps->brush->size) * 0.5f;
|
||||
|
||||
LinkNode *smearPixels = NULL;
|
||||
LinkNode *smearPixels_f = NULL;
|
||||
@ -3755,8 +3756,8 @@ static void *do_projectpaint_thread(void *ph_v)
|
||||
dist_nosqrt = Vec2Lenf_nosqrt(projPixel->projCoSS, pos);
|
||||
|
||||
/*if (dist < s->brush->size) {*/ /* correct but uses a sqrtf */
|
||||
if (dist_nosqrt < brush_size_sqared) {
|
||||
falloff = brush_sample_falloff_noalpha(ps->brush, sqrtf(dist_nosqrt));
|
||||
if (dist_nosqrt < brush_size_sqared && (dist=sqrtf(dist_nosqrt)) < size_half) {
|
||||
falloff = brush_curve_strength(ps->brush, dist, size_half);
|
||||
if (falloff > 0.0f) {
|
||||
if (ps->is_texbrush) {
|
||||
brush_sample_tex(ps->brush, projPixel->projCoSS, rgba);
|
||||
|
@ -58,7 +58,6 @@ CPPFLAGS += -I../../imbuf
|
||||
CPPFLAGS += -I../../blenloader
|
||||
CPPFLAGS += -I../../gpu
|
||||
CPPFLAGS += -I../../render/extern/include
|
||||
CPPFLAGS += -I../../radiosity/extern/include
|
||||
CPPFLAGS += -I../../../kernel/gen_system
|
||||
CPPFLAGS += -I../../blenfont
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user