この API は実験中です
p5.js の将来のバージョンで動作が変更される可能性があります。
normalMaterial()
で使用されるシェーダーを取得します。
baseNormalShader().modify()
を呼び出して、 以下のフックのいずれかを変更することができます:
フック | 説明 |
---|---|
void beforeVertex | 頂点シェーダーの開始時に呼び出されます。 |
vec3 getLocalPosition | 変換が適用される前に頂点の位置を更新します。vec3 position を受け取り、 修正されたバージョンを返す必要があります。 |
vec3 getWorldPosition | 変換が適用された後に頂点の位置を更新します。vec3 position を受け取り、 修正されたバージョンを返す必要があります。 |
vec3 getLocalNormal | 変換が適用される前に法線を更新します。vec3 normal を受け取り、 修正されたバージョンを返す必要があります。 |
vec3 getWorldNormal | 変換が適用された後に法線を更新します。vec3 normal を受け取り、 修正されたバージョンを返す必要があります。 |
vec2 getUV | テクスチャ座標を更新します。vec2 uv を受け取り、 修正されたバージョンを返す必要があります。 |
vec4 getVertexColor | 各頂点の色を更新します。vec4 color を受け取り、 修正されたバージョンを返す必要があります。 |
void afterVertex | 頂点シェーダーの終了時に呼び出されます。 |
void beforeFragment | フラグメントシェーダーの開始時に呼び出されます。 |
vec4 getFinalColor | ミキシング後の最終的な色を更新します。vec4 color を受け取り、 修正されたバージョンを返す必要があります。 |
void afterFragment | フラグメントシェーダーの終了時に呼び出されます。 |
ほとんどの場合、フックはGLSL ESバージョン300で記述する必要があります。 WebGL 2の代わりにWebGL 1を使用している場合は、代わりにGLSL ES 100でフックを記述してください。
baseNormalShader().inspectHooks()
を呼び出すと、可能なすべてのフックと それらのデフォルト実装を確認できます。
実例
リターン
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!