리퀴파이

Liquify

포인터를 움직이면 아래 이미지가 부드러운 천처럼 늘어나고 되돌아옵니다.

다른 이름: Liquifyliquify distortion

WebGPU 를 지원하는 브라우저에서 움직입니다

이 기기에서는 데모를 그리지 못해 정지 화면을 보여 줍니다

React
// WebGPU 를 지원하는 브라우저에서만 그립니다.
// /samples/… 는 이 사이트의 샘플 파일입니다. 내 프로젝트의 이미지·영상 경로로 바꾸세요.
import { Shader, ImageTexture, Liquify } from 'shaders/react'

export default function ShaderEffect() {
  return (
    <Shader style={{ width: '100%', height: 320 }} disableTelemetry>
      <ImageTexture
        objectFit="cover"
        url="/samples/photo.jpg" />
      <Liquify />
    </Shader>
  )
}
Vue
<!-- WebGPU 를 지원하는 브라우저에서만 그립니다. -->
<!-- /samples/… 는 이 사이트의 샘플 파일입니다. 내 프로젝트의 이미지·영상 경로로 바꾸세요. -->
<script setup lang="ts">
import { Shader, ImageTexture, Liquify } from 'shaders/vue'
</script>

<template>
  <Shader style="width: 100%; height: 320px" :disable-telemetry="true">
    <ImageTexture
      object-fit="cover"
      url="/samples/photo.jpg"/>
    <Liquify/>
  </Shader>
</template>
Svelte
<!-- WebGPU 를 지원하는 브라우저에서만 그립니다. -->
<!-- /samples/… 는 이 사이트의 샘플 파일입니다. 내 프로젝트의 이미지·영상 경로로 바꾸세요. -->
<script>
  import { Shader, ImageTexture, Liquify } from 'shaders/svelte'
</script>

<Shader style="width: 100%; height: 320px" disableTelemetry>
  <ImageTexture
    objectFit="cover"
    url="/samples/photo.jpg" />
  <Liquify />
</Shader>
Solid
// WebGPU 를 지원하는 브라우저에서만 그립니다.
// /samples/… 는 이 사이트의 샘플 파일입니다. 내 프로젝트의 이미지·영상 경로로 바꾸세요.
import { Shader, ImageTexture, Liquify } from 'shaders/solid'

export default function ShaderEffect() {
  return (
    <Shader style={{ width: '100%', height: '320px' }} disableTelemetry>
      <ImageTexture
        objectFit="cover"
        url="/samples/photo.jpg" />
      <Liquify />
    </Shader>
  )
}
JavaScript
// WebGPU 를 지원하는 브라우저에서만 그립니다.
// /samples/… 는 이 사이트의 샘플 파일입니다. 내 프로젝트의 이미지·영상 경로로 바꾸세요.
// <canvas id="canvas" style="width:100%;height:320px"></canvas> 가 페이지에 있어야 한다
import { createShader } from 'shaders/js'

const shader = await createShader(document.getElementById("canvas"), {
  components: [
    {
      type: 'ImageTexture',
      props: {
        objectFit: 'cover',
        url: '/samples/photo.jpg',
      },
    },
    {
      type: 'Liquify',
    }
  ]
}, { disableTelemetry: true })

속성(props) · Liquify

값을 바꾸면 위 데모와 코드 탭에 바로 반영됩니다. 설명은 라이브러리 레지스트리의 영어 원문(MIT)입니다.

이름값기본값범위·선택지설명(원문)
intensityIntensity100 – 20 (step 0.1)Scale of the fabric displacement effect
stiffnessStiffness31 – 30 (step 0.5)Fabric rigidity (higher = stiffer canvas, lower = stretchy silk)
dampingDamping30 – 10 (step 0.1)How quickly fabric motion settles
radiusRadius10.1 – 1.5 (step 0.1)Cursor influence area
edgesEdgesstretchstretch · transparent · mirror · wrapHow to handle edges when distortion pushes content out of bounds

모든 컴포넌트 공통: blendMode · opacity · visible · maskSource/maskType · boundingBox · id

포인터를 움직인 자리가 물렁한 표면처럼 늘어나고 다시 가라앉는 왜곡 효과다. 손가락으로 젤리나 천을 밀었다 놓는 느낌으로 사진의 형태를 바꾼다.

`intensity`는 밀려나는 정도(기본값 10, 범위 0–20), `stiffness`는 표면의 단단함(기본값 3, 범위 1–30), `damping`은 흔들림이 가라앉는 정도(기본값 3, 범위 0–10)를 조절한다. `radius`는 포인터 영향 범위(기본값 1, 범위 0.1–1.5)다.

효과이므로 아래에 사진이나 다른 시각 레이어가 있어야 변형이 보인다. 큰 이미지나 장식용 도형과 쓰고, 얼굴·로고·작은 글자처럼 형태를 보존해야 하는 대상에는 적용을 줄인다.

언제 쓰나

사진을 만지는 듯한 히어로 인터랙션, 제품 이미지의 짧은 반응, 장식용 도형의 유기적 움직임에 좋다. 형태 정확도가 중요한 로고·텍스트에는 피한다.

페이지로 열기 ↗