小编thr*_*ist的帖子

如何在着色器中制作波形扭曲效果?

我想像这样做一个波形扭曲效果:

WAVE1

但我只能创造正常的正弦波.

这是我的片段着色器:

precision mediump float;
varying vec2 v_texCoord;
uniform sampler2D s_baseMap;

vec2 SineWave( vec2 p ){
    float pi = 3.14159;
    float A = 0.15;
    float w = 10.0 * pi;
    float t = 30.0*pi/180.0;
    float y = sin( w*p.x + t) * A; 
    return vec2(p.x, p.y+y);?
}
void main(){
    vec2 p = v_texCoord; 
    vec2 uv = SineWave( p ); 
    vec4 tcolor = texture2D(s_baseMap, uv); 
    gl_FragColor = tcolor; 
}
Run Code Online (Sandbox Code Playgroud)

结果是:

WAVE2

那么问题是如何在特定方向上扭曲波浪?

谢谢.

这是原点纹理: 起源纹理


更新:我在计算y时扭曲x轴,但结果似乎不正确.

float x = p.x + p.y*tan( …
Run Code Online (Sandbox Code Playgroud)

opengl shader textures 2d glsl

7
推荐指数
1
解决办法
7383
查看次数

标签 统计

2d ×1

glsl ×1

opengl ×1

shader ×1

textures ×1