This commit is contained in:
2026-03-02 17:21:14 +08:00
parent db0fd98e4f
commit c59c921997
4 changed files with 106 additions and 1 deletions

View File

@@ -114,7 +114,7 @@ void main() {
float vC = texture(uHeightTex, vUV).r;
bool isZero = abs(vC) <= 1e-6;
float t = value01(vC);
float m = maxNeighborValue(vUV);
float m = maxNeighborValueK(vUV, 2);
float eps = max(1e-4, 0.001 * (uMaxV - uMinV));
float force = smoothstep(uMaxV - eps, uMaxV, m);
t = max(t, force);

37
shader/skirt.frag Normal file
View File

@@ -0,0 +1,37 @@
#version 330 core
in vec3 vNormal;
in vec3 vWorldPos;
in vec3 vUV;
out vec4 FragColor;
uniform vec3 uCameraPos;
uniform vec3 uLightDir;
uniform sampler2D uHeightTex;
uniform float uMinV;
uniform float uMaxV;
uniform vec2 uTexelSize;
uniform vec3 uColorZero;
uniform vec3 uColorLow;
uniform vec3 uColorMid;
uniform vec3 uColorHeigh;
float saturate(float x) {
return clamp(x, 0.0, 1.0);
}
float value01(float v) {
return saturate((v - uMinV) / max(uMaxV - uMinV, 1e-6));
}
vec3 colorRamp(float t) {
if (t < 0.5) {
return mix(uColorLow, uColorMid, t / 0.5);
}
return mix(uColorHeigh, uColorMid, (t - 0.5) / 0.5);
}
float maxNeighborValue(vec2 uv) {
}

18
shader/skirt.vert Normal file
View File

@@ -0,0 +1,18 @@
#version 330 core
layout(location=0) in vec3 aPos;
layout(location=1) in vec3 aNormal;
layout(location=2) in vec2 aUV;
out vec3 vNormal;
out vec3 vWorldPos;
out vec2 vUV;
uniform mat4 uMVP;
void main() {
vWorldPos = aPos;
vNormal = aNormal;
vUV = aUV;
gl_Position = uMVP * vec4(aPos, 1.0);
}