世界を動かす技術を、日本語で。

ホイルステッカー効果の実装

概要

  • Three.jsで ホログラム風フォイルステッカー を再現するカスタムシェーダの実装解説。
  • 角度依存の虹色変化(イリデセンス)金属フレークのキラキラ をリアルタイムで表現。
  • 頂点シェーダで ステッカーの剥がれ表現 を制御。
  • フラグメントシェーダで 反射、虹色、フレーク、環境光 などを合成。
  • 非商用ライセンス でコード利用可能、商用利用は要連絡。

Three.jsカスタムシェーダで作るホログラム・フォイルステッカー

  • Three.js のカスタムシェーダで、 高級感のあるホログラムステッカー をウェブ上でリアルタイム描画。
  • イリデセンス(虹色の変化) は、表面の角度によって色相を滑らかに変化させることで再現。
  • 金属フレークのキラキラ は、プロシージャルノイズでランダムな輝点を生成し、動きに合わせて輝きを演出。
  • 物理ベースレンダリング(PBR) の概念(メタルネス、ラフネス、Fresnel)を一部応用しつつ、 アーティスティックな効果重視 の設計。

イリデセンス(虹色変化)表現

  • 薄膜干渉 の物理現象を、 ビュー角度による色相シフト で簡易的に再現。
  • sin波 で色相を動的に変化させることで、 見る角度で色が滑らかに移ろう表現

フォイルフレーク(キラキラ)表現

  • 金属箔の微細な粒子 を、 ノイズ関数(hash) でランダム生成。
  • フレークごとに法線を微妙にズラし、反射や輝度変化を付与。
  • 環境マップ と組み合わせて、 動きに応じて輝く粒子 を演出。

頂点シェーダの役割

  • 剥がれアニメーション を制御するため、頂点ごとに 回転軸を計算 し、 Rodriguesの回転公式 で頂点と法線を回転。
  • 剥がれ部分の アンビエントオクルージョン(AO) も計算し、 立体感や影表現 を強化。

フラグメントシェーダの役割

  • アルファカットオフ で透明部分を除去し、 裏面描画 も制御。
  • フレークの輝き、イリデセンス、環境反射、Fresnel効果 を合成し、 高級感のある仕上がり を実現。
  • パラメータ調整 で、フレークサイズや虹色強度、環境反射量などをリアルタイムに変更可能。

主なシェーダ内パラメータ

  • uPeelAmount, uPeelAngle :剥がれ量・角度
  • uFlakeSize, uFlakeReduction, uFlakeBrightness :フレークの大きさ・密度・輝度
  • uIridescence, uIriMin, uIriRange :イリデセンスの強度・範囲
  • uMetalness, uRoughness, uEnvIntensity :金属感・粗さ・環境反射強度

デモと応用

  • パラメータを変更しながら、リアルタイムに ステッカーの表現を確認 可能。
  • トレーディングカード、パッケージ、Webアート など多用途なビジュアル表現。

ライセンス・利用規約

  • Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) ライセンス の下でコード利用可能。
  • 非商用利用・クレジット表記必須
  • 商用利用希望の場合は別途連絡・契約が必要

Hackerたちの意見

シェーダーってほんと面白いよね。Shadertoyはオンラインで試すのにいいサイトだよ。 https://www.shadertoy.com/

思ってたよりクール!部屋の反射画像をよく見るために設定を調整するのが楽しかった。

俺もそれやったよ、反射マップを調べてみた。実は、その部屋はポーランドのジェドリンカ宮殿にあるんだ。テクスチャはこれだよ: https://polyhaven.com/a/mirrored_hall

こういうランダムなものを見るのが大好きなんだ。

iOSにはこんな感じのステッカー効果(「光沢」)があって、電話の傾きに直接反応するのがいいんだよね。初めて見たときは思わず息を飲んだ。

これは面白い!俺のマジックカードマーケットサイトでは、フォイルカードにシンプルなCSS効果を適用してるけど、マジックカードの様々なフォイル効果を再現するには何が必要か考えてた。もっと多様でリアルに見えるように、パフォーマンスも考慮しつつCRUDのSvelte UXにフィットさせたいんだ。

必見!: https://github.com/simeydotme/pokemon-cards-css

ちなみに、Tim OliverがInstagramのThreadsの「ゴールデンチケット」のためにホログラフィックフォイル効果を作るプレゼンをしてたよ。 https://www.youtube.com/watch?v=_sHxHz0nVG8

オフトピックだけど、最初に思ったのは「すごい、AIがこの記事から学べるんだ!」ってこと。片方では解放感があるけど、もう一方ではちょっと落ち込むよね。だって、AIはこんな素晴らしい投稿にクレジットを付けないんだもん :(

AIがこういう投稿を書くようになったら、結局AIがAIから学ぶことになるよね。そうなると、アーティスティックなプログラマーも専門家もいなくなっちゃう。結局、コンピュータが自動生成したビジネスソリューションをつなぎ合わせるだけの普通の仕事しか残らないんだ。

すごくクールだね!アラン・ズッコーニのCD用回折格子シェーダーを思い出すよ。[1]

これはすごく neat な効果で見た目もいいけど、ちょっと聞きたいことがあるんだ。もちろんホログラフィックなリザードンは欲しいけど、キラキラしたホイル効果が... 何にでも使われるのはあんまり好きじゃないんだ。ステッカーやカードに使われると、見た目が悪くなる気がして、いつも無しの方がいいと思ってる。滑らかなメタリックな光沢はアクセントとしてはいいけど、何にでも振りかけるのはちょっと...。これって俺だけ?こんなに広まってるから、少数派なんじゃないかって思う。

これ、スマートウォッチの文字盤にしたらクールだね。