Reference baseNormalShader()

baseNormalShader()

This API is experimental

Its behavior may change in a future version of p5.js.

Get the shader used by normalMaterial().

You can call baseNormalShader().modify() and change any of the following hooks:

HookDescription
void beforeVertexCalled at the start of the vertex shader.
vec3 getLocalPositionUpdate the position of vertices before transforms are applied. It takes in vec3 position and must return a modified version.
vec3 getWorldPositionUpdate the position of vertices after transforms are applied. It takes in vec3 position and pust return a modified version.
vec3 getLocalNormalUpdate the normal before transforms are applied. It takes in vec3 normal and must return a modified version.
vec3 getWorldNormalUpdate the normal after transforms are applied. It takes in vec3 normal and must return a modified version.
vec2 getUVUpdate the texture coordinates. It takes in vec2 uv and must return a modified version.
vec4 getVertexColorUpdate the color of each vertex. It takes in a vec4 color and must return a modified version.
void afterVertexCalled at the end of the vertex shader.
void beforeFragmentCalled at the start of the fragment shader.
vec4 getFinalColorUpdate the final color after mixing. It takes in a vec4 color and must return a modified version.
void afterFragmentCalled at the end of the fragment shader.

Most of the time, you will need to write your hooks in GLSL ES version 300. If you are using WebGL 1 instead of 2, write your hooks in GLSL ES 100 instead.

Call baseNormalShader().inspectHooks() to see all the possible hooks and their default implementations.

Examples

Returns

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

Related References