5 ポイント 投稿者 GN⁺ 2025-09-02 | 1件のコメント | WhatsAppで共有
  • フォイルステッカー効果を実装するシェーダーのソースコードで、表面の反射ときらめきを本物のようにシミュレーションする
  • 金属性、粗さ、虹色反射 などのさまざまな特性を細かく調整できる
  • フォイル表面の微粒子(フレーク)効果と、角度によって変化する 虹色の色彩 表現が中核となる
  • 環境マップのサンプリング、フレネル効果、AOシャドウ、アルファカットオフなど、さまざまな 物理ベースのグラフィックス技術 を活用している
  • 実際の2D/3D環境で 高品質なフォイルステッカーのレンダリング に活用できる高度なシェーダー実装である

概要

これは フォイルステッカーのようにきらめく視覚効果を実装 するGLSLシェーダーコードである。金属性、虹色効果、表面の微粒子効果、環境反射などを複合的に処理し、高品質な視覚的質感を作り出すことを目的としている。2Dテクスチャと環境マップ、さまざまな調整パラメータを活用して、リアルなフォイル効果を生成する。

主要な変数と定数

  • 多様な uniform 変数 で効果を調整可能
    • 例: uFlakeSize(フレークサイズ)、uRoughness(粗さ)、uMetalness(金属性)、uIridescence(虹色効果)など
  • テクスチャ、環境マップ、そしてワールド座標系の情報をサポート

主な関数構造

ハッシュ関数(hash)

  • 微粒子(フレーク)効果に必要な 乱数値 の生成に使用

環境マップ座標変換(dirToEquirectUv)、環境マップサンプリング(sampleEnvRough)

  • 環境マップ で方向に応じたサンプリングをサポート
  • 粗さ(lod) に応じて適切な mip level を適用する

虹色効果(iridescenceColor)

  • 角度と表面の厚み に応じて動的に色を生成
  • 実際のフォイル表面のように、見る角度によって色が変化する

輝度(luminance)

  • 色の明るさ情報を計算し、後処理などに反映

シェーダーのメインロジック

アルファカットオフおよび前面/背面処理

  • base テクスチャの アルファ値 でピクセルの生存可否を決定
  • 前面/背面に応じて AO強度、剥離(peeled)処理 および色を調整

反射、フレーク、虹色効果、金属性の処理

  • 表面法線(normal)、視線ベクトル、反射ベクトル、環境反射などを計算
  • フレーク効果 のために位置ごとの hash と角度のランダムオフセットを適用
  • フレークの 明るさ、マスキング、ブーストなど を細かく制御
  • perturbedNormal を使ってフレーク表面の変位を反映
  • フレークと周囲の色を 虹色の色彩 とともにブレンド

環境マップの合成と最終カラー出力

  • フレーク強度に応じて粗さを動的に変化
  • メタル/ノーマル/反射マスキング、フレネル計算 などでリアリティを向上
  • diffuse(拡散)、spec(反射)成分を混合して最終カラーを生成
  • base アルファとともに最終色として出力

示唆

このシェーダーは フォイル素材特有の複雑な視覚効果(強い反射、微粒子、虹色効果など)をリアルに再現するのに適している。多様なパラメータで効果を精密に調整できるため、柔軟なカスタマイズと高い視認性を持つフォイルステッカーのレンダリングが可能である。3D、2Dウェブ、ゲーム、インタラクティブUIなど、さまざまな用途で活用できる利点が大きい。

1件のコメント

 
GN⁺ 2025-09-02
Hacker News の意見
  • 以前モバイルゲーム開発をしていたとき、かっこいいカードに実際の3Dオブジェクトのように、スマホの傾きに応じて「光沢」が変化する効果を入れたことがある。最近のiOSではこうしたステッカー効果が標準でサポートされていると知って驚いた

  • Magicカードのマーケットプレイスサイトでは、ホイルカードに簡単なCSS効果を適用している。だが、実際のMagicカードで見られるさまざまなホイル効果を、パフォーマンス低下なしでSvelteのCRUD UXに合わせてもう少しリアルに実装するにはどうすればよいか、いつも考えている

    • これに関連して、pokemon-cards-css リポジトリはぜひ参考にしてほしい
  • シェーダー技術は本当に興味深い。Webサイト Shadertoy では、さまざまなシェーダーを直接試すことができる

  • Tim Oliver が Threads の "golden ticket" に適用されたホログラフィックホイル効果の制作経験について、すばらしいプレゼンテーションをしたことがある。動画は こちら で見られる

  • この効果は本当にすばらしく、視覚的にも優れていると感じるが、実はキラキラしたホイル効果そのものはそれほど好みではない。ステッカーやカードにも使われているが、こういうスタイルよりも、やわらかなメタリックな光沢がアクセントとして入るほうがきれいだと思う。自分だけがそう思っているようにも見えるが、この効果の大衆的な人気を見ると、やはり少数派の好みなのだろう

  • 本当にすごい効果だ。Alan Zucconi がCDレンダリングのために作った回折格子シェーダーを思い出した。関連内容は こちら で確認できる

  • 期待以上にすばらしい出来だ。設定値を調整しながら部屋全体の反射画像を眺める過程が楽しかった

    • 自分も反射マップが気になって調べてみた。調べると、その部屋はポーランドにある Jedlinka Palace だった。実際のテクスチャ画像は こちら で見られる
  • iOS には、スマホを傾けると反応するステッカーの「shiny」効果がある。これを初めて見たときは本当に感心した

  • オフトピックではあるが、この記事を見て、AIが今後こうした効果の実装方法まで学習できるようになるのだろうと思った。一方で、ブックマークをわざわざため込まなくても、AIが究極のブックマークの役割を果たしてくれるという点では解放感もある。だが、こうしたすばらしい投稿がAIにきちんと評価されないのではないかと思うと、残念でほろ苦い面もある

    • 今後もブックマークは維持しておいたほうがいいと思う。今でさえGoogle検索だけでも多くの情報が忘れ去られているのに、AI時代にはさらに多くの情報が簡単に消えてしまうかもしれないからだ
    • 結局、AIがこうした投稿まで書くようになり、AIがまたAIから学んでいく状況になるのだろう。そうなると、美的感覚を持つプログラマーや専門家は姿を消し、コンピューターが自動生成したビジネスソリューションを組み合わせるだけの平凡な仕事しか残らなくなるのかもしれないと思ってしまう
  • こういう予想外で興味深い文章を読めるのが本当にうれしい