Reference baseColorShader()

baseColorShader()

Get the shader used when no lights or materials are applied.

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

HookDescription

void beforeVertex

Called at the start of the vertex shader.

Vertex getObjectInputs

Update the vertex data of the model being drawn before any positioning has been applied. It takes in a Vertex struct, which includes:

  • vec3 position, the position of the vertex
  • vec3 normal, the direction facing out of the surface
  • vec2 texCoord, the texture coordinates associeted with the vertex
  • vec4 color, the per-vertex color The struct can be modified and returned.

Vertex getWorldInputs

Update the vertex data of the model being drawn after transformations such as translate() and scale() have been applied, but before the camera has been applied. It takes in a Vertex struct like, in the getObjectInputs hook above, that can be modified and returned.

Vertex getCameraInputs

Update the vertex data of the model being drawn as they appear relative to the camera. It takes in a Vertex struct like, in the getObjectInputs hook above, that can be modified and returned.

void afterVertex

Called at the end of the vertex shader.

void beforeFragment

Called at the start of the fragment shader.

vec4 getFinalColor

Update the final color after mixing. It takes in a vec4 color and must return a modified version.

void afterFragment

Called 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 baseColorShader().inspectHooks() to see all the possible hooks and their default implementations.

Examples

Syntax

baseColorShader()

Parameters

Returns

p5.Shader: The color 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