Differential D13043 Diff 44271 source/blender/gpu/shaders/material/gpu_shader_material_tex_musgrave.glsl
Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/shaders/material/gpu_shader_material_tex_musgrave.glsl
| Show All 13 Lines | void node_tex_musgrave_fBm_1d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| float p = w * scale; | float p = w * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float value = 0.0; | float value = 0.0; | ||||
| float pwr = 1.0; | float pwr = 1.0; | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| for (int i = 0; i < int(octaves); i++) { | for (int i = 0; i < int(octaves); i++) { | ||||
| value += snoise(p) * pwr; | value += snoise(p) * pwr; | ||||
| Show All 23 Lines | void node_tex_musgrave_multi_fractal_1d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| float p = w * scale; | float p = w * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float value = 1.0; | float value = 1.0; | ||||
| float pwr = 1.0; | float pwr = 1.0; | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| for (int i = 0; i < int(octaves); i++) { | for (int i = 0; i < int(octaves); i++) { | ||||
| value *= (pwr * snoise(p) + 1.0); | value *= (pwr * snoise(p) + 1.0); | ||||
| Show All 24 Lines | void node_tex_musgrave_hetero_terrain_1d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| float p = w * scale; | float p = w * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| float pwr = pwHL; | float pwr = pwHL; | ||||
| /* first unscaled octave of function; later octaves are scaled */ | /* first unscaled octave of function; later octaves are scaled */ | ||||
| float value = offset + snoise(p); | float value = offset + snoise(p); | ||||
| p *= lacunarity; | p *= lacunarity; | ||||
| Show All 29 Lines | void node_tex_musgrave_hybrid_multi_fractal_1d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| float p = w * scale; | float p = w * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| float pwr = pwHL; | float pwr = pwHL; | ||||
| float value = snoise(p) + offset; | float value = snoise(p) + offset; | ||||
| float weight = gain * value; | float weight = gain * value; | ||||
| p *= lacunarity; | p *= lacunarity; | ||||
| Show All 33 Lines | void node_tex_musgrave_ridged_multi_fractal_1d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| float p = w * scale; | float p = w * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| float pwr = pwHL; | float pwr = pwHL; | ||||
| float signal = offset - abs(snoise(p)); | float signal = offset - abs(snoise(p)); | ||||
| signal *= signal; | signal *= signal; | ||||
| float value = signal; | float value = signal; | ||||
| Show All 28 Lines | void node_tex_musgrave_fBm_2d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec2 p = co.xy * scale; | vec2 p = co.xy * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float value = 0.0; | float value = 0.0; | ||||
| float pwr = 1.0; | float pwr = 1.0; | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| for (int i = 0; i < int(octaves); i++) { | for (int i = 0; i < int(octaves); i++) { | ||||
| value += snoise(p) * pwr; | value += snoise(p) * pwr; | ||||
| Show All 23 Lines | void node_tex_musgrave_multi_fractal_2d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec2 p = co.xy * scale; | vec2 p = co.xy * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float value = 1.0; | float value = 1.0; | ||||
| float pwr = 1.0; | float pwr = 1.0; | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| for (int i = 0; i < int(octaves); i++) { | for (int i = 0; i < int(octaves); i++) { | ||||
| value *= (pwr * snoise(p) + 1.0); | value *= (pwr * snoise(p) + 1.0); | ||||
| Show All 24 Lines | void node_tex_musgrave_hetero_terrain_2d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec2 p = co.xy * scale; | vec2 p = co.xy * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| float pwr = pwHL; | float pwr = pwHL; | ||||
| /* first unscaled octave of function; later octaves are scaled */ | /* first unscaled octave of function; later octaves are scaled */ | ||||
| float value = offset + snoise(p); | float value = offset + snoise(p); | ||||
| p *= lacunarity; | p *= lacunarity; | ||||
| Show All 29 Lines | void node_tex_musgrave_hybrid_multi_fractal_2d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec2 p = co.xy * scale; | vec2 p = co.xy * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| float pwr = pwHL; | float pwr = pwHL; | ||||
| float value = snoise(p) + offset; | float value = snoise(p) + offset; | ||||
| float weight = gain * value; | float weight = gain * value; | ||||
| p *= lacunarity; | p *= lacunarity; | ||||
| Show All 33 Lines | void node_tex_musgrave_ridged_multi_fractal_2d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec2 p = co.xy * scale; | vec2 p = co.xy * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| float pwr = pwHL; | float pwr = pwHL; | ||||
| float signal = offset - abs(snoise(p)); | float signal = offset - abs(snoise(p)); | ||||
| signal *= signal; | signal *= signal; | ||||
| float value = signal; | float value = signal; | ||||
| Show All 28 Lines | void node_tex_musgrave_fBm_3d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec3 p = co * scale; | vec3 p = co * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float value = 0.0; | float value = 0.0; | ||||
| float pwr = 1.0; | float pwr = 1.0; | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| for (int i = 0; i < int(octaves); i++) { | for (int i = 0; i < int(octaves); i++) { | ||||
| value += snoise(p) * pwr; | value += snoise(p) * pwr; | ||||
| Show All 23 Lines | void node_tex_musgrave_multi_fractal_3d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec3 p = co * scale; | vec3 p = co * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float value = 1.0; | float value = 1.0; | ||||
| float pwr = 1.0; | float pwr = 1.0; | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| for (int i = 0; i < int(octaves); i++) { | for (int i = 0; i < int(octaves); i++) { | ||||
| value *= (pwr * snoise(p) + 1.0); | value *= (pwr * snoise(p) + 1.0); | ||||
| Show All 24 Lines | void node_tex_musgrave_hetero_terrain_3d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec3 p = co * scale; | vec3 p = co * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| float pwr = pwHL; | float pwr = pwHL; | ||||
| /* first unscaled octave of function; later octaves are scaled */ | /* first unscaled octave of function; later octaves are scaled */ | ||||
| float value = offset + snoise(p); | float value = offset + snoise(p); | ||||
| p *= lacunarity; | p *= lacunarity; | ||||
| Show All 29 Lines | void node_tex_musgrave_hybrid_multi_fractal_3d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec3 p = co * scale; | vec3 p = co * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| float pwr = pwHL; | float pwr = pwHL; | ||||
| float value = snoise(p) + offset; | float value = snoise(p) + offset; | ||||
| float weight = gain * value; | float weight = gain * value; | ||||
| p *= lacunarity; | p *= lacunarity; | ||||
| Show All 33 Lines | void node_tex_musgrave_ridged_multi_fractal_3d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec3 p = co * scale; | vec3 p = co * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| float pwr = pwHL; | float pwr = pwHL; | ||||
| float signal = offset - abs(snoise(p)); | float signal = offset - abs(snoise(p)); | ||||
| signal *= signal; | signal *= signal; | ||||
| float value = signal; | float value = signal; | ||||
| Show All 28 Lines | void node_tex_musgrave_fBm_4d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec4 p = vec4(co, w) * scale; | vec4 p = vec4(co, w) * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float value = 0.0; | float value = 0.0; | ||||
| float pwr = 1.0; | float pwr = 1.0; | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| for (int i = 0; i < int(octaves); i++) { | for (int i = 0; i < int(octaves); i++) { | ||||
| value += snoise(p) * pwr; | value += snoise(p) * pwr; | ||||
| Show All 23 Lines | void node_tex_musgrave_multi_fractal_4d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec4 p = vec4(co, w) * scale; | vec4 p = vec4(co, w) * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float value = 1.0; | float value = 1.0; | ||||
| float pwr = 1.0; | float pwr = 1.0; | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| for (int i = 0; i < int(octaves); i++) { | for (int i = 0; i < int(octaves); i++) { | ||||
| value *= (pwr * snoise(p) + 1.0); | value *= (pwr * snoise(p) + 1.0); | ||||
| Show All 24 Lines | void node_tex_musgrave_hetero_terrain_4d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec4 p = vec4(co, w) * scale; | vec4 p = vec4(co, w) * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| float pwr = pwHL; | float pwr = pwHL; | ||||
| /* first unscaled octave of function; later octaves are scaled */ | /* first unscaled octave of function; later octaves are scaled */ | ||||
| float value = offset + snoise(p); | float value = offset + snoise(p); | ||||
| p *= lacunarity; | p *= lacunarity; | ||||
| Show All 29 Lines | void node_tex_musgrave_hybrid_multi_fractal_4d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec4 p = vec4(co, w) * scale; | vec4 p = vec4(co, w) * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| float pwr = pwHL; | float pwr = pwHL; | ||||
| float value = snoise(p) + offset; | float value = snoise(p) + offset; | ||||
| float weight = gain * value; | float weight = gain * value; | ||||
| p *= lacunarity; | p *= lacunarity; | ||||
| Show All 33 Lines | void node_tex_musgrave_ridged_multi_fractal_4d(vec3 co, | ||||
| float dimension, | float dimension, | ||||
| float lac, | float lac, | ||||
| float offset, | float offset, | ||||
| float gain, | float gain, | ||||
| out float fac) | out float fac) | ||||
| { | { | ||||
| vec4 p = vec4(co, w) * scale; | vec4 p = vec4(co, w) * scale; | ||||
| float H = max(dimension, 1e-5); | float H = max(dimension, 1e-5); | ||||
| float octaves = clamp(detail, 0.0, 16.0); | float octaves = clamp(detail, 0.0, 15.0); | ||||
| float lacunarity = max(lac, 1e-5); | float lacunarity = max(lac, 1e-5); | ||||
| float pwHL = pow(lacunarity, -H); | float pwHL = pow(lacunarity, -H); | ||||
| float pwr = pwHL; | float pwr = pwHL; | ||||
| float signal = offset - abs(snoise(p)); | float signal = offset - abs(snoise(p)); | ||||
| signal *= signal; | signal *= signal; | ||||
| float value = signal; | float value = signal; | ||||
| Show All 14 Lines | |||||