RenderScript не имеет встроенной функции плавного перехода, поэтому самое простое - реализовать ее самостоятельно. Далее источник готов к использованию в ваших скриптах:
static inline float smoothstep(float edge0, float edge1, float x)
{
float value = clamp((x - edge0) / (edge1 - edge0), 0.0f, 1.0f);
return value * value * (3.0f - 2.0f * value);
}
Пример использования:
static inline float smoothstep(float edge0, float edge1, float x)
{
float value = clamp((x - edge0) / (edge1 - edge0), 0.0f, 1.0f);
return value * value * (3.0f - 2.0f * value);
}
uchar4 RS_KERNEL root(uint32_t x, uint32_t y)
{
....
float mask = btex.r;
float maskValue = smoothstep(0.3f, 0.5f, mask);
float4 ress = (float4){maskValue, maskValue, maskValue, 1.0f};
....
}
И еще одна ссылка о том, как внутренне работает сглаживание, если у вас есть другие сомнения:
smoothstep
Наслаждайтесь