골유리 굴절

Fluted Glass

반복되는 홈을 통과하듯 입력 화면이 굴절되어 줄무늬와 빛 반사가 생깁니다.

다른 이름: FlutedGlassRibbed glass

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

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

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

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

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

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

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

속성(props) · FlutedGlass

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

이름값기본값범위·선택지설명(원문)
shapeShapebarsbars · rounded · wavesCross-section shape of each flute
angleAngle00 – 360 (step 1)Direction of the flutes in degrees (0 = vertical bars)
frequencyFrequency101 – 20 (step 1)Number of flutes across the longest viewport axis
softnessSoftness0.50 – 1 (step 0.01)How smoothly distortion fades from each flute centre to its edge (0 = flat middle / sharp seams, 1 = gentle curve)
waveAmplitudeWave Amplitude0.060 – 0.5 (step 0.01)How far each flute sways horizontally as it travels (Waves shape only)
waveFrequencyWave Frequency1.50.1 – 10 (step 0.1)How many sways fit along each flute (Waves shape only)
speedSpeed0-1 – 1 (step 0.01)Animation speed — drifts the flute pattern over time and flows wave perturbations
refractionRefraction1.50 – 4 (step 0.01)How aggressively each flute bends content beneath it
aberrationAberration0.20 – 1 (step 0.01)Chromatic aberration — splits RGB along the refraction direction at flute seams
lightAngleLight Angle30-90 – 90 (step 1)Direction the light source is coming from (0 = head-on, 90 = grazing)
highlightHighlight0.20 – 2 (step 0.01)Strength of the specular reflection on each flute
highlightSoftnessHighlight Softness0.30 – 1 (step 0.01)Spread of the specular peak (0 = pin-tight, 1 = broad sheen)
highlightColorHighlight Color#ffffff—Color of the specular highlight
edgesEdgesmirrorstretch · transparent · mirror · wrapHow to handle edges when distortion samples beyond the canvas

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

세로 홈이 있는 골유리 너머를 보는 것처럼, 뒤쪽 이미지가 길고 반복되는 굴절 무늬로 흔들리고 홈마다 빛이 맺힙니다.

`shape`는 막대·둥근 면·물결 홈 중 모양을 고르고 `angle`은 홈 방향을 돌립니다. `frequency`를 올리면 홈이 촘촘해지며 `refraction`은 이미지가 꺾이는 정도, `aberration`은 홈 경계에서 색이 분리되는 정도를 조절합니다.

입력 레이어 위에 놓아야 유리 너머 화면이 보입니다. `highlight`와 `lightAngle`로 반사를 다듬고 `Glass` 재질이나 블러와 조합해 유리 패널 느낌을 강화할 수 있습니다. 굴절이 강하면 글자가 흐려지므로 본문 위에는 약하게 적용하세요.

언제 쓰나

유리 파티션, 반투명 패널, 배경을 굴절시키는 히어로 장면에 좋습니다. 텍스트를 선명하게 전달해야 하거나 색 분리가 산만해질 때는 피하세요.

페이지로 열기 ↗