유리 파편 효과

Shatter

금이 간 유리 조각처럼 아래 이미지가 갈라지고, 포인터 주변에서 파편이 밀려납니다.

다른 이름: Shattershattered glassglass fracture

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

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

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

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

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

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

export default function ShaderEffect() {
  return (
    <Shader style={{ width: '100%', height: '320px' }} disableTelemetry>
      <ImageTexture
        objectFit="cover"
        url="/samples/photo.jpg" />
      <Shatter />
    </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: 'Shatter',
    }
  ]
}, { disableTelemetry: true })

속성(props) · Shatter

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

이름값기본값범위·선택지설명(원문)
crackWidthCrack Width10.5 – 5 (step 0.1)Thickness of crack lines
intensityIntensity40 – 20 (step 1)How much shards shift
radiusRadius0.40.1 – 1 (step 0.1)Cursor influence radius
decayDecay10.1 – 10 (step 0.1)How fast shards return to rest
seedSeed20 – 50 (step 1)Random seed for pattern
chromaticSplitChromatic Split10 – 5 (step 0.1)RGB separation for prismatic glass effect
refractionStrengthRefraction50 – 10 (step 0.1)How much cracks bend/distort the underlying image
shardLightingShard Lighting0.10 – 0.5 (step 0.1)Subtle lighting on tilted shards for 3D depth
edgesEdgesmirrorstretch · transparent · mirror · wrapHow to handle edges when displacement pushes content out of bounds

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

금이 간 유리 조각처럼 아래 이미지가 면으로 갈라지고, 포인터가 지나가면 조각이 흔들리거나 밀려난다. 유리판에 금을 내고 살짝 건드렸을 때 파편이 움직이는 장면을 떠올리면 된다.

`crackWidth`는 금의 두께(기본값 1, 범위 0.5–5), `intensity`는 조각이 밀리는 정도(기본값 4, 범위 0–20), `radius`는 포인터 영향 범위(기본값 0.4, 범위 0.1–1)를 조절한다. `decay`는 조각이 가라앉는 속도(기본값 1, 범위 0.1–10), `chromaticSplit`은 파편 가장자리의 색 분리(기본값 1, 범위 0–5)다.

효과 레이어라 밑에 이미지나 도형이 있어야 파편 안에 내용이 보인다. 대비가 있는 사진과 조합하면 금과 조각이 선명하고, 텍스트나 버튼을 입력으로 쓰면 잘린 형태가 기능을 방해할 수 있다.

언제 쓰나

포인터에 반응하는 사진 히어로, 짧은 장면 전환, 깨지는 유리 질감의 장식에 좋다. 버튼·로고·읽어야 하는 문구에는 피한다.

페이지로 열기 ↗