The spotLight() function in p5.js is used to create a spotlight with a given color, position, direction of light, angle and concentration. A scene can have a maximum of 5 spotlights active at one time. The coordinates of the spotlight can be set according to the below-given diagram.
Syntax: This method can be used with multiple parameters depending on the syntax.
spotLight(v1, v2, v3, x, y, z, rx, ry, rz, [angle], [conc]) spotLight(color, position, direction, [angle], [conc]) spotLight(v1, v2, v3, position, direction, [angle], [conc]) spotLight(color, x, y, z, direction, [angle], [conc]) spotLight(color, position, rx, ry, rz, [angle], [conc]) spotLight(v1, v2, v3, x, y, z, direction, [angle], [conc]) spotLight(v1, v2, v3, position, rx, ry, rz, [angle], [conc]) spotLight(color, x, y, z, rx, ry, rz, [angle], [conc])
Parameters: This function accept fifteen parameters as mentioned above and described below:
- v1: It is a number which determines the red or hue value relative to the current color mode.
- v2: It is a number which determines the green or saturation value relative to the current color mode.
- v3: It is a number which determines the blue or brightness value relative to the current mode.
- x: It is the position of the light on the x-axis.
- y: It is the position of the light on the y-axis.
- z: It is the position of the light on the z-axis.
- rx: It is the direction of light in the x-axis.
- ry: It is the direction of light in the y-axis.
- rz: It is the direction of light in the z-axis.
- angle: It provides the angle for light. The default value is PI/3.
- conc: It specifies the concentration value for the light. The default value is 100.
- color: It specifies the color of the light. It can either be color Array, CSS color string, or p5.Color value.
- position: It is a p5.Vector which specifies the position of the light.
- direction: It is a p5.Vector which specifies the direction of the light.
Below examples illustrates the spotLight() function in p5.js:
Example 1: This example show the spotlight at one specific position.
Javascript
function setup() {      // Creating canvas with width   // and height of 100   createCanvas(100, 100, WEBGL); } Â
function draw() { Â
  // Setting background colour   // to black   background(0);      // Setting the spotlight   spotLight(0, 250, 0, 20, 20,             100, 0, 0, -1, Math.PI );   noStroke();      // Drawing a sphere to show   // the spotlight   sphere(40); } |
Â
Â
Output:
Â
Â
Example 2: This example illustrates how to change the spotlight position based on the mouse movement.
Â
Javascript
function setup() {      // Creating canvas with width   // and height to 100   createCanvas(100, 100, WEBGL); } Â
function draw() {   // Setting background colour   // to black   background(0);      // Getting position based   // on mouse movement   let locX = mouseX - width / 2;   let locY = mouseY - height / 2;      // Setting the spotlight   spotLight(0, 250, 0, locX, locY,             100, 0, 0, -1, Math.PI );   noStroke();      // Drawing a sphere to show   // the spotlight   sphere(40); } |
Â
Â
Output:
Â
Reference:https://p5js.org/reference/#/p5/spotLight
Â