modify()

この API は実験中です

p5.js の将来のバージョンで動作が変更される可能性があります。

元のシェーダーに基づいて、デフォルトの動作を置き換えるカスタムシェーダーコードのスニペットを含む新しいシェーダーを返します。

各シェーダーでは、その動作の一部を上書きすることができます。各部分はフックと呼ばれます。フックは、頂点の位置に影響を与える場合は頂点シェーダー用、ピクセルの色に影響を与える場合はフラグメントシェーダー用です。利用可能な異なるフックを確認するには、yourShader.inspectHooks()を呼び出します。また、デフォルトのマテリアル、ノーマルマテリアル、カラー、ライン、ポイントシェーダーのリファレンスを読んで、利用可能なフックを確認することもできます。

modify()は1つのパラメータhooksを取ります。これは上書きしたいフックを含むオブジェクトです。hooksオブジェクトの各キーはフックの名前で、値はそのフックのGLSLコードを含む文字列です。

既存のフックではない関数を提供した場合、それらはシェーダーの先頭にヘルパー関数として追加され、フック内で使用できるようになります。

シェーダーに新しいユニフォームを追加するには、ユニフォームの型と名前をキーとし、デフォルト値または関数を返すデフォルト値を値とするuniformsオブジェクトを渡すことができます。これらはshader(yourShader)でシェーダーが設定されると自動的に設定されます。

declarationsキーを追加することもできます。その値はGLSL文字列で、カスタムユニフォーム変数、グローバル変数、フック間で共有される関数を宣言します。頂点シェーダーまたはフラグメントシェーダーにのみ宣言を追加するには、vertexDeclarationsおよびfragmentDeclarationsキーを追加します。

実例

シンタックス

modify([hooks])

パラメーター

hooks
Object:

シェーダー内で置き換えるフック。

リターン

p5.Shader:
Notice any errors or typos? Please let us know. Please feel free to edit src/webgl/p5.Shader.js and open a pull request!

関連するリファレンス