휘어진 부드러운 대각 경계가 화면을 쓸고 지나가며, 경계 근처의 두 도판이 진행 방향으로 늘어나 번진다A soft, bent diagonal edge sweeps across the frame while both plates near the edge stretch and smear along the direction of travel.
종이색 문장 도판 위로 45도 대각 경계가 왼쪽 아래에서 휘며 올라오고, 경계 근처 글자가 대각 방향으로 늘어졌다가 먹색 939 도판으로 바뀐다
번짐 세기를 0.3 이상 줘 전환 내내 화면 전체가 뭉개지거나, 경계를 직선·단단하게 둬 일반 와이프와 구분이 안 된다
기본값은 클립에 쓴 값Defaults are the values used in the clip
| 항목PARAM | 기본DEFAULT | 범위RANGE | 메모NOTE |
|---|---|---|---|
| 방향 | 45° (0.707, 0.707) | 20~60° | 화면 비율을 보정한 좌표에서 계산 |
| 경계 휨 | 0.08·sin + 0.03·sin | 0~0.15 | 경계선 방향 좌표의 사인 두 개 |
| 경계 부드러움 | ±0.035 | 0.01~0.06 | smoothstep 폭 |
| 번짐 세기 | 0.10, 28샘플 | 0.05~0.18 | 경계 가우시안 k로 가중, 진행 방향으로 늘림 |
| 전환 시간 | 2.0s | 0.8~2.2s | sine.inOut |
float e = mix(-.16, 1.16, u_p) + .08*sin(t*2.2+1.3) + .03*sin(t*6.1+u_p*4.);
float x = s - e;
float m = smoothstep(-.035, .035, x); // 부드러운 경계
float k = exp(-x*x/.012); // 경계 근처 가중
vec4 a = smear(A, v - dir*k*.10, dir, k*.10);
vec4 b = smear(B, v + dir*k*.10, -dir, k*.10);
gl_FragColor = mix(b, a, m);
tl.to(pr, { p: 1, duration: 2.0, ease: 'sine.inOut', onUpdate: () => draw(pr.p) }, 0.3);그대로 붙여 넣는다Paste as is
<파일>에서 <대상> 도판을 다음 도판으로 넘기는 WebGL 방향 워프 와이프를 새로 작성해줘. 두 도판은 폰트 로드 뒤 2D 캔버스에 그려 텍스처로 쓰고, 경계는 45도 대각 좌표에서 u_p에 따라 -0.16에서 1.16까지 움직이며 사인 두 개(0.08, 0.03)로 휘게 해. 경계 폭 ±0.035 smoothstep으로 섞고, 경계 가우시안 가중 k로 두 도판을 진행 방향으로 0.10만큼 늘려 28샘플로 번지게 해. u_p는 GSAP 프록시 tween 2.0초 sine.inOut, 끝에 0.7초 홀드.
Write a new WebGL directional warp wipe in <file> that hands <target> off to the next plate. Draw both plates to 2D canvases after fonts load and use them as textures; move the edge along 45-degree diagonal coordinates from -0.16 to 1.16 with u_p and bend it with two sines (0.08 and 0.03). Blend across a ±0.035 smoothstep and, weighted by a Gaussian k around the edge, stretch both plates 0.10 along the travel direction with 28 smear samples. Drive u_p with a 2.0s sine.inOut GSAP proxy tween and hold 0.7s at the end.
<파일>의 전환을 셰이더 와이프로 구현해. WebGL 컨텍스트는 preserveDrawingBuffer:true, 텍스처 두 장(UNPACK_FLIP_Y, CLAMP_TO_EDGE, LINEAR), 프래그먼트 셰이더에서 s=dot(q,(0.707,0.707)) 정규화, e=mix(-0.16,1.16,u_p)+휨, m=smoothstep(-0.035,0.035,s-e), k=exp(-(s-e)^2/0.012)로 A·B를 각각 반대 방향 28샘플 번짐 후 섞는다. 0.7초·1.2초·1.7초·2.8초를 캡처해 휘어진 경계와 번짐이 보이고 헤드리스 캡처가 빈 화면이 아닌지 확인해.
Implement the transition in <file> as a shader wipe. Use a WebGL context with preserveDrawingBuffer:true and two textures (UNPACK_FLIP_Y, CLAMP_TO_EDGE, LINEAR); in the fragment shader normalize s=dot(q,(0.707,0.707)), set e=mix(-0.16,1.16,u_p)+bend, m=smoothstep(-0.035,0.035,s-e), k=exp(-(s-e)^2/0.012), smear A and B with 28 samples in opposite directions, then mix. Capture 0.7s, 1.2s, 1.7s and 2.8s to verify the bent edge and smear are visible and the headless capture is not blank.
HyperFrames · ReelForge · Scrolline
개념 출처와 라이선스. 구현은 이 레포에서 새로 씀Concept sources and licenses. Implementations are original to this repo