Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenlib/intern/noise.cc
| Context not available. | |||||
| { | { | ||||
| float p = co; | float p = co; | ||||
| const float pwHL = std::pow(lacunarity, -H); | const float pwHL = std::pow(lacunarity, -H); | ||||
| float pwr = pwHL; | |||||
| float value = perlin_signed(p) + offset; | float pwr = 1.0f; | ||||
| float weight = gain * value; | float value = 0.0f; | ||||
| p *= lacunarity; | float weight = 1.0f; | ||||
| const float octaves = CLAMPIS(octaves_unclamped, 0.0f, 15.0f); | const float octaves = CLAMPIS(octaves_unclamped, 0.0f, 15.0f); | ||||
| for (int i = 1; (weight > 0.001f) && (i < (int)octaves); i++) { | for (int i = 0; (weight > 0.001f) && (i < (int)octaves); i++) { | ||||
| if (weight > 1.0f) { | if (weight > 1.0f) { | ||||
| weight = 1.0f; | weight = 1.0f; | ||||
| } | } | ||||
| Context not available. | |||||
| } | } | ||||
| const float rmd = octaves - floorf(octaves); | const float rmd = octaves - floorf(octaves); | ||||
| if (rmd != 0.0f) { | if ((rmd != 0.0f) && (weight > 0.001f)) { | ||||
| value += rmd * ((perlin_signed(p) + offset) * pwr); | if (weight > 1.0f) { | ||||
| weight = 1.0f; | |||||
| } | |||||
| float signal = (perlin_signed(p) + offset) * pwr; | |||||
| value += rmd * weight * signal; | |||||
| } | } | ||||
| return value; | return value; | ||||
| Context not available. | |||||
| { | { | ||||
| float2 p = co; | float2 p = co; | ||||
| const float pwHL = std::pow(lacunarity, -H); | const float pwHL = std::pow(lacunarity, -H); | ||||
| float pwr = pwHL; | |||||
| float value = perlin_signed(p) + offset; | float pwr = 1.0f; | ||||
| float weight = gain * value; | float value = 0.0f; | ||||
| p *= lacunarity; | float weight = 1.0f; | ||||
| const float octaves = CLAMPIS(octaves_unclamped, 0.0f, 15.0f); | const float octaves = CLAMPIS(octaves_unclamped, 0.0f, 15.0f); | ||||
| for (int i = 1; (weight > 0.001f) && (i < (int)octaves); i++) { | for (int i = 0; (weight > 0.001f) && (i < (int)octaves); i++) { | ||||
| if (weight > 1.0f) { | if (weight > 1.0f) { | ||||
| weight = 1.0f; | weight = 1.0f; | ||||
| } | } | ||||
| Context not available. | |||||
| } | } | ||||
| const float rmd = octaves - floorf(octaves); | const float rmd = octaves - floorf(octaves); | ||||
| if (rmd != 0.0f) { | if ((rmd != 0.0f) && (weight > 0.001f)) { | ||||
| value += rmd * ((perlin_signed(p) + offset) * pwr); | if (weight > 1.0f) { | ||||
| weight = 1.0f; | |||||
| } | |||||
| float signal = (perlin_signed(p) + offset) * pwr; | |||||
| value += rmd * weight * signal; | |||||
| } | } | ||||
| return value; | return value; | ||||
| Context not available. | |||||
| { | { | ||||
| float3 p = co; | float3 p = co; | ||||
| const float pwHL = std::pow(lacunarity, -H); | const float pwHL = std::pow(lacunarity, -H); | ||||
| float pwr = pwHL; | |||||
| float value = perlin_signed(p) + offset; | float pwr = 1.0f; | ||||
| float weight = gain * value; | float value = 0.0f; | ||||
| p *= lacunarity; | float weight = 1.0f; | ||||
| const float octaves = CLAMPIS(octaves_unclamped, 0.0f, 15.0f); | const float octaves = CLAMPIS(octaves_unclamped, 0.0f, 15.0f); | ||||
| for (int i = 1; (weight > 0.001f) && (i < (int)octaves); i++) { | for (int i = 0; (weight > 0.001f) && (i < (int)octaves); i++) { | ||||
| if (weight > 1.0f) { | if (weight > 1.0f) { | ||||
| weight = 1.0f; | weight = 1.0f; | ||||
| } | } | ||||
| Context not available. | |||||
| } | } | ||||
| const float rmd = octaves - floorf(octaves); | const float rmd = octaves - floorf(octaves); | ||||
| if (rmd != 0.0f) { | if ((rmd != 0.0f) && (weight > 0.001f)) { | ||||
| value += rmd * ((perlin_signed(p) + offset) * pwr); | if (weight > 1.0f) { | ||||
| weight = 1.0f; | |||||
| } | |||||
| float signal = (perlin_signed(p) + offset) * pwr; | |||||
| value += rmd * weight * signal; | |||||
| } | } | ||||
| return value; | return value; | ||||
| Context not available. | |||||
| { | { | ||||
| float4 p = co; | float4 p = co; | ||||
| const float pwHL = std::pow(lacunarity, -H); | const float pwHL = std::pow(lacunarity, -H); | ||||
| float pwr = pwHL; | |||||
| float value = perlin_signed(p) + offset; | float pwr = 1.0f; | ||||
| float weight = gain * value; | float value = 0.0f; | ||||
| p *= lacunarity; | float weight = 1.0f; | ||||
| const float octaves = CLAMPIS(octaves_unclamped, 0.0f, 15.0f); | const float octaves = CLAMPIS(octaves_unclamped, 0.0f, 15.0f); | ||||
| for (int i = 1; (weight > 0.001f) && (i < (int)octaves); i++) { | for (int i = 0; (weight > 0.001f) && (i < (int)octaves); i++) { | ||||
| if (weight > 1.0f) { | if (weight > 1.0f) { | ||||
| weight = 1.0f; | weight = 1.0f; | ||||
| } | } | ||||
| Context not available. | |||||
| } | } | ||||
| const float rmd = octaves - floorf(octaves); | const float rmd = octaves - floorf(octaves); | ||||
| if (rmd != 0.0f) { | if ((rmd != 0.0f) && (weight > 0.001f)) { | ||||
| value += rmd * ((perlin_signed(p) + offset) * pwr); | if (weight > 1.0f) { | ||||
| weight = 1.0f; | |||||
| } | |||||
| float signal = (perlin_signed(p) + offset) * pwr; | |||||
| value += rmd * weight * signal; | |||||
| } | } | ||||
| return value; | return value; | ||||
| Context not available. | |||||