이미지가 잔물결 아래에서 흔들리고 물결의 밝은 면이 이동하는 수면 굴절The image wobbles beneath ripples while bright facets of the waves travel across it.
이미지가 진폭 0.02UV, 파장 0.12UV의 물결 아래에서 6초 동안 초당 0.1UV로 일렁이고 밝은 면이 이동한다
진폭이 0.06UV를 넘어 이미지가 찢기거나 파장이 너무 짧아 자글자글한 노이즈처럼 보인다
기본값은 클립에 쓴 값Defaults are the values used in the clip
| 항목PARAM | 기본DEFAULT | 범위RANGE | 메모NOTE |
|---|---|---|---|
| 지속 | 6s | 4~10s | 루프 |
| 진폭 | 0.02UV | 0.01~0.04 | UV 변위 |
| 파장 | 0.12UV | 0.08~0.2 | 사인 파장 |
| 이동 | 0.1UV/s | 0.05~0.2 | 파 진행 속도 |
| 하이라이트 | 0.25 | 0.1~0.4 | 기울기 기반 반사 |
const u = { t: 0 };
tl.to(u, { t: 6, duration: 6, ease: 'none', onUpdate: draw }, 0);
// GLSL: float h = sin((uv.x + uv.y*0.6 - t*0.1) * 6.283/0.12) + 0.6*sin((uv.y - uv.x*0.3 + t*0.07) * 6.283/0.17);
// vec2 g = vec2(dFdx(h), dFdy(h)); uv += g * 0.02; col = texture(tex, uv) + pow(max(dot(normalize(vec3(-g,1.0)), L), 0.0), 20.0) * 0.25;그대로 붙여 넣는다Paste as is
<대상> 이미지에 수면 굴절을 넣어줘. 사인 두 겹으로 수면 높이를 만들고(파장 0.12UV와 0.17UV, 초당 0.1UV와 0.07UV로 이동) 기울기만큼 UV를 0.02 굴절시켜. 기울기가 광원 방향과 맞는 곳에는 하이라이트를 0.25 세기로 더해. 6초 일정한 속도로 재생해.
Add water refraction to the image in <target>. Build the surface height from two sines (wavelengths 0.12UV and 0.17UV, traveling at 0.1UV and 0.07UV per second) and refract the UV by the slope at 0.02. Add a highlight at strength 0.25 where the slope faces the light. Play at constant speed for 6 seconds.
<파일>의 이미지 캔버스에 water 셰이더를 추가해. h=sin((uv.x+uv.y*0.6-t*0.1)*2π/0.12)+0.6*sin((uv.y-uv.x*0.3+t*0.07)*2π/0.17), g=(dFdx(h),dFdy(h)), uv+=g*0.02, 하이라이트 pow(...,20)*0.25. t는 6초 선형. 0초·3초·6초 캡처로 물결이 이동하고 이미지가 찢기지 않는지 확인해.
Add a water shader to the image canvas in <file>. h=sin((uv.x+uv.y*0.6-t*0.1)*2π/0.12)+0.6*sin((uv.y-uv.x*0.3+t*0.07)*2π/0.17); g=(dFdx(h),dFdy(h)); uv+=g*0.02; highlight pow(...,20)*0.25. Tween t linearly over 6 s. Capture 0 s, 3 s and 6 s to confirm ripples travel and the image does not tear.
HyperFrames · ReelForge · Scrolline
개념 출처와 라이선스. 구현은 이 레포에서 새로 씀Concept sources and licenses. Implementations are original to this repo