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!