threejs-shaders について
threejs-shadersは、Three.jsプロジェクトでカスタムシェーダーを開発するためのガイダンススキルです。既存の構成やインストール済みバージョンに沿った実装、互換性確認、検証方法を扱います。
主な機能
- 01レンダラーとシェーダーパイプラインの特定
- 02座標空間の定義と法線変換
- 03マテリアルを再構築せずuniformを更新
- 04段階的なシェーダー作成とエラー確認
- 05頂点変位、影、境界の処理
活用シーン
- 01Three.jsプロジェクトへのカスタムシェーダー効果の追加
- 02シェーダーのコンパイル・リンクエラーの調査
- 03影、ピッキング、モバイル精度の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cesartevisual/ threejs-skills --skill threejs-shadersインストール後、Claude Code で/threejs-shadersを入力して読み込まれたか確認します。
詳細
カスタムシェーダー
プロジェクトにインストールされているバージョンと既存のアーキテクチャを使用してください。これらの指示はユーザーのタスクを補足するものであり、無関係な変更や外部での操作を許可するものではありません。
シェーダーコードを書く前に、レンダラー、インストールされているリビジョン、シェーダー言語、マテリアルの拡張方法を特定してください。互換性のあるパイプラインでは GLSL ShaderMaterial/RawShaderMaterial を使用してください。WebGL シェーダーが WebGPU マテリアルとしてそのまま使用できると思い込まないでください。
すべての位置、法線、光ベクトル、varying の座標空間を明記してください。非一様スケールを適用する場合は、法線を正しく変換してください。uniform は安定した状態に保ち、フレームごとにマテリアルを再構築するのではなく、その値を更新してください。不要なフラグメントごとの処理や動的なシェーダーのバリエーションは避けてください。
エフェクトは段階的に構築してください。定数出力、座標、テクスチャサンプル、エフェクトの順に進めます。エラーをすべて有効にして、コンパイルとリンクのログを確認してください。ゼロベクトルの正規化、ゼロに近い値での除算、未定義の smoothstep 範囲を適切に処理してください。微分関数には、適切なステージとサポートが必要です。
頂点を変位させる場合は、法線を更新するか、適切なシェーディングを計算してください。カリング用に境界を拡張し、シャドウ用に対応する depth/distance マテリアルも検討してください。対応する仕組みを用意しない限り、CPU のレイキャストでは引き続き CPU ジオメトリが参照されます。
onBeforeCompile とシェーダーチャンクはリビジョンに依存するものとして扱ってください。カスタムコンパイルのバリエーションごとに異なるプログラムが必要な場合は、適切なカスタムプログラムキャッシュキーを使用し、アップグレードに備えて再現可能なシェーダーフィクスチャを保持してください。出力境界でのディスプレイカラーとトーンマッピングを確認してください。
極端なパラメーター値、リサイズ、モバイル端末での精度、透明オブジェクトの重なり、シャドウ、ピッキングを確認してください。この機能がオプションの場合は、通常のマテリアルへのフォールバックを維持してください。
API リファレンス
正確なシグネチャとリビジョン固有の動作については、公式ドキュメントを参照してください。ドキュメントにアクセスできない場合は、インストール済みの型定義またはソースコードを調べ、残る不明点を明記してください。