그래서 나는 이미 반사 부분을 구현했습니다.
uniform sampler2D texture;
uniform vec2 resolution;
uniform vec3 overlayColor;
void main()
{
vec2 uv = gl_FragCoord.xy / resolution.xy;
if (uv.y > 0.3)// is air - no reflection or effect
{
gl_FragColor = texture2D(texture, vec2(uv.x, uv.y));
}
else
{
// Compute the mirror effect.
vec4 color = texture2D(texture, vec2(uv.x, 0.6 - uv.y));
//
vec4 finalColor = vec4(mix(color.rgb, overlayColor, 0.25), 1.0);
gl_FragColor = finalColor;
}
}
이제 문제는 이러한 파문이 어떻게 구현 되는가입니다.
이 힌트에 대해 대단히 감사합니다. @LeFauve의 구현을 시도한 후에 이것이 필요한 것으로 나타났습니다.
—
cepro
time
값을 사용uv.xy
하면(sin(time),cos(time))
오프셋 벡터를 사용하여를 이동할 수 있습니다 . 물론 사인 및 코사인 오프셋의 진폭을 파악해야합니다.uv.y
먼저 첫 번째 오프셋으로 시작 하고 효과를 더 조정할 수있는 방법을 봅니다.