filter()関数で使用するp5.Shaderオブジェクトを作成します。
createFilterShader()はcreateShader()と同様に機能しますが、デフォルトの頂点シェーダーが含まれています。createFilterShader()はfilter()と一緒に使用して、キャンバスの内容をフィルタリングすることを目的としています。フィルターシェーダーはp5.Geometryオブジェクトだけでなく、キャンバス全体に適用されます。
パラメータfragSrcはフラグメントシェーダーを設定します。これはGLSLで書かれたフラグメントシェーダープログラムを含む文字列です。
作成されたp5.Shaderオブジェクトには、設定可能ないくつかのユニフォーム変数があります:
sampler2D tex0:キャンバスの内容をテクスチャとして含みます。vec2 canvasSize:ピクセル密度を含まないキャンバスの幅と高さです。vec2 texelSize:ピクセル密度を含む物理的なピクセルのサイズです。これはピクセル幅に対して1.0 / (width * density)、ピクセル高さに対して1.0 / (height * density)として計算されます。
作成されたp5.Shaderは、varying vec2 vTexCoordも提供します。これは0から1の間の値を持つ座標です。vTexCoordは、ピクセルがキャンバス上のどこに描画されるかを示します。
フィルターとシェーダーについての詳細は、Adam Ferrissのシェーダー例のリポジトリやシェーダー入門チュートリアルを参照してください。
実例
シンタックス
createFilterShader(fragSrc)
パラメーター
fragSrc
String:
フラグメントシェーダーのソースコード。
リターン
p5.Shader: フラグメントシェーダーから作成された新しいシェーダーオブジェクト。
Notice any errors or typos? Please let us know. Please feel free to edit src/webgl/material.js and open a pull request!