跳转到内容

一些glsl

发布于:

uv坐标

U=横坐标,V=纵坐标,取值用永远是0到1之间的小数,UV 是比例不是像素

// 在 GLSL 片段着色器中,UV 通常这样传进来
varying vec2 vUv;  // 从顶点着色器插值过来的 UV 坐标

void main() {
    // vUv.x = 水平方向 [0.0, 1.0]
    // vUv.y = 垂直方向 [0.0, 1.0]
    gl_FragColor = texture2D(uTexture, vUv);
}

常见操作

// 1. 翻转纹理(上下颠倒)
vec2 flippedUV = vec2(vUv.x, 1.0 - vUv.y);

// 2. 缩放纹理(瓷砖效果)
vec2 tiledUV = vUv * 3.0;  // 重复 3×3 次

// 3. 平移纹理(滚动效果)
vec2 scrolledUV = vUv + vec2(uTime * 0.1, 0.0);

// 4. 扭曲效果(水波纹)
float distortion = sin(vUv.y * 10.0 + uTime) * 0.02;
vec2 waveUV = vUv + vec2(distortion, 0.0);

如果你看到有地方写uv-coordinates,这其实就是uv的全写

mix(a,b,t)=a×(1−t)+b×t

clamp(uv * scale - offset, 0, 1)

// 把渐变控制在 [start, end] 区间内(0~1 范围)
float start = 0.3;  // 开始渐变的位置
float end = 0.7;    // 结束渐变的位置
float t = clamp((vUv.x - start) / (end - start), 0.0, 1.0);