この API は実験中です
p5.js の将来のバージョンで動作が変更される可能性があります。
元のシェーダーに基づいて、デフォルトの動作を置き換えるカスタムシェーダーコードのスニペットを含む新しいシェーダーを返します。
各シェーダーでは、その動作の一部を上書きすることができます。各部分はフックと呼ばれます。フックは、頂点の位置に影響を与える場合は頂点シェーダー用、ピクセルの色に影響を与える場合はフラグメントシェーダー用です。利用可能な異なるフックを確認するには、yourShader.inspectHooks()
を呼び出します。また、デフォルトのマテリアル、ノーマルマテリアル、カラー、ライン、ポイントシェーダーのリファレンスを読んで、利用可能なフックを確認することもできます。
modify()
は1つのパラメータhooks
を取ります。これは上書きしたいフックを含むオブジェクトです。hooks
オブジェクトの各キーはフックの名前で、値はそのフックのGLSLコードを含む文字列です。
既存のフックではない関数を提供した場合、それらはシェーダーの先頭にヘルパー関数として追加され、フック内で使用できるようになります。
シェーダーに新しいユニフォームを追加するには、ユニフォームの型と名前をキーとし、デフォルト値または関数を返すデフォルト値を値とするuniforms
オブジェクトを渡すことができます。これらはshader(yourShader)
でシェーダーが設定されると自動的に設定されます。
declarations
キーを追加することもできます。その値はGLSL文字列で、カスタムユニフォーム変数、グローバル変数、フック間で共有される関数を宣言します。頂点シェーダーまたはフラグメントシェーダーにのみ宣言を追加するには、vertexDeclarations
およびfragmentDeclarations
キーを追加します。
実例
シンタックス
modify([hooks])
パラメーター
シェーダー内で置き換えるフック。