Terrain-Shader: detail_kontrast (1,3) gegen blasse Büschel nach Hex-Tiling
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
a1f386f5e6
commit
b1d8f7626d
1 changed files with 3 additions and 1 deletions
|
|
@ -94,6 +94,8 @@ vec2 warp(vec2 g) {
|
||||||
// Achsen mehr, keine harten Nähte. Quest-Kosten: 3 Albedo-Fetches je Material
|
// Achsen mehr, keine harten Nähte. Quest-Kosten: 3 Albedo-Fetches je Material
|
||||||
// (nur 1 Material in ~allen Pixeln, die Mischzone nimmt 2). Danach Makro-
|
// (nur 1 Material in ~allen Pixeln, die Mischzone nimmt 2). Danach Makro-
|
||||||
// Variation: Helligkeit (~35 m) + Farbstich (~120 m), je 1 Value-Noise.
|
// Variation: Helligkeit (~35 m) + Farbstich (~120 m), je 1 Value-Noise.
|
||||||
|
uniform float detail_kontrast = 1.3; // >1 = Büschel/Steine kräftiger (Hex-Mischung glättet sonst)
|
||||||
|
|
||||||
vec3 alb_hex(float id, vec2 wp, vec2 gx, vec2 gy) {
|
vec3 alb_hex(float id, vec2 wp, vec2 gx, vec2 gy) {
|
||||||
float T = max(tile_size, 0.05);
|
float T = max(tile_size, 0.05);
|
||||||
vec2 st = wp / T * 1.7320508; // sqrt(3): Dreieckskante ≈ 0,58 Kachel (größer = weniger Mischzone)
|
vec2 st = wp / T * 1.7320508; // sqrt(3): Dreieckskante ≈ 0,58 Kachel (größer = weniger Mischzone)
|
||||||
|
|
@ -124,7 +126,7 @@ vec3 alb_hex(float id, vec2 wp, vec2 gx, vec2 gy) {
|
||||||
// Kontrast-Erhalt: Mischen dreier Abtastungen glättet auf den Mittelwert →
|
// Kontrast-Erhalt: Mischen dreier Abtastungen glättet auf den Mittelwert →
|
||||||
// Abweichung vom Mittelwert (grober Mip) durch ||w|| teilen.
|
// Abweichung vom Mittelwert (grober Mip) durch ||w|| teilen.
|
||||||
vec3 mean_c = textureLod(albedo_array, vec3(0.5, 0.5, id), 8.0).rgb;
|
vec3 mean_c = textureLod(albedo_array, vec3(0.5, 0.5, id), 8.0).rgb;
|
||||||
acc = mean_c + (acc - mean_c) / max(wn, 0.577);
|
acc = mean_c + (acc - mean_c) * (detail_kontrast / max(wn, 0.577));
|
||||||
float bright = mix(0.86, 1.12, vnoise(wp * 0.028 + vec2(17.0, 3.0)));
|
float bright = mix(0.86, 1.12, vnoise(wp * 0.028 + vec2(17.0, 3.0)));
|
||||||
float tint = vnoise(wp * 0.0085 + vec2(5.0, 41.0)) - 0.5;
|
float tint = vnoise(wp * 0.0085 + vec2(5.0, 41.0)) - 0.5;
|
||||||
vec3 col = acc * bright;
|
vec3 col = acc * bright;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue