Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/sculpt_paint/sculpt.c
| Show First 20 Lines • Show All 1,255 Lines • ▼ Show 20 Lines | else if (ss->texcache) { | ||||
| } | } | ||||
| else { | else { | ||||
| const float point_3d[3] = {point_2d[0], point_2d[1], 0.0f}; | const float point_3d[3] = {point_2d[0], point_2d[1], 0.0f}; | ||||
| avg = BKE_brush_sample_tex_3d(scene, br, point_3d, rgba, 0, ss->tex_pool); | avg = BKE_brush_sample_tex_3d(scene, br, point_3d, rgba, 0, ss->tex_pool); | ||||
| } | } | ||||
| } | } | ||||
| /* Falloff curve */ | /* Falloff curve */ | ||||
| avg *= BKE_brush_curve_strength(br, len, cache->radius); | float dist, factor; | ||||
| dist = len / cache->radius; | |||||
| dist = 1 - dist; | |||||
| switch (br->curve_preset) { | |||||
| case BRUSH_CURVE_CUSTOM: | |||||
| factor = BKE_brush_curve_strength(br, len, cache->radius); | |||||
| break; | |||||
| case BRUSH_CURVE_SHARP: | |||||
| factor = dist * dist; | |||||
| break; | |||||
| case BRUSH_CURVE_SMOOTH: | |||||
| factor = 3.0f * dist * dist - 2.0f * dist * dist * dist; | |||||
| break; | |||||
| case BRUSH_CURVE_ROOT: | |||||
| factor = sqrtf(dist); | |||||
| break; | |||||
| case BRUSH_CURVE_LIN: | |||||
| factor = dist; | |||||
| break; | |||||
| case BRUSH_CURVE_CONSTANT: | |||||
| factor = 1.0f; | |||||
| break; | |||||
| case BRUSH_CURVE_SPHERE: | |||||
| factor = sqrtf(2 * dist - dist * dist); | |||||
| break; | |||||
| case BRUSH_CURVE_POW4: | |||||
| factor = dist * dist * dist * dist; | |||||
| break; | |||||
| case BRUSH_CURVE_INVSQUARE: | |||||
| factor = dist * (2.0f - dist); | |||||
| break; | |||||
| } | |||||
| avg *= factor; | |||||
| avg *= frontface(br, cache->view_normal, vno, fno); | avg *= frontface(br, cache->view_normal, vno, fno); | ||||
| /* Paint mask */ | /* Paint mask */ | ||||
| avg *= 1.0f - mask; | avg *= 1.0f - mask; | ||||
| return avg; | return avg; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 5,260 Lines • Show Last 20 Lines | |||||