From 03881e3f014fc398069432e6d7e35d7a729d48dd Mon Sep 17 00:00:00 2001 From: ilithya Date: Wed, 2 Sep 2026 17:41:20 +0200 Subject: [PATCH 1/4] Add p5strands color tutorial. --- .../en/hello-color-world-p5-strands.mdx | 452 ++++++++++++++++++ 1 file changed, 452 insertions(+) create mode 100644 src/content/tutorials/en/hello-color-world-p5-strands.mdx diff --git a/src/content/tutorials/en/hello-color-world-p5-strands.mdx b/src/content/tutorials/en/hello-color-world-p5-strands.mdx new file mode 100644 index 0000000000..e4763ab063 --- /dev/null +++ b/src/content/tutorials/en/hello-color-world-p5-strands.mdx @@ -0,0 +1,452 @@ +--- +title: "Hello Color World: p5.strands" +description: An introduction to fragment shaders using p5.strands +category: "2.0" +categoryIndex: 0 +featuredImage: ../images/featured/intro-to-p5-strands.png +featuredImageAlt: " " +relatedContent: + references: + - en/p5/p5shader +authors: + - ilithya +--- + +import { Columns, Column } from "../../../components/Columns"; +import EditableSketch from "../../../components/EditableSketch/index.astro"; +import Callout from "../../../components/Callout/index.astro"; + +## X Ways To Work With Color In Shaders + +Let's discover a few techniques for manipulating color using p5.strands, and learn a bit of fragment shader fundamentals in the process. + +We'll explore color in shaders to enhance our p5.js sketches with more sophisticated effects that pure JavaScript wouldn't let us do. + + +p5.strands is a new way of writing shaders using JavaScript in p5.js. +- [Writing shaders in JavaScript](https://www.davepagurek.com/blog/writing-shaders-in-js/), Dave Pagurek's blog +- [Introduction to shaders](/tutorials/intro-to-p5-strands) + + +To understand the advantages that p5.strands brings to us when dealing with shaders, we'll look at each technique through examples with variations of creating a p5 sketch together with p5.strands vs. GLSL (shader language). + +Let's start from simple to complex, like having a x-course meal, by first dipping our toes into an appetizer. + +
+ +### 01. Solid Colors + +We'll begin by simply painting the canvas of our sketch and one 3D primitive. + + +A shader in charge of outputing the color of each pixel. They output a color using RGBA values from 0.0 to 1.0. +- [RGBA color](https://hughsk.io/fragment-foundry/chapters/03-rgb.html), self-guided workshop on fragment shaders by Hugh Kennedy +- [RGB color model](https://courses.ilithya.rocks/p/courses/intro-to-shaders/3486602-module-02-color/11410544-07-rgb-color-model), fragment shader course by ilithya + + +With p5.strands we can modify the color of a shader and have the benefit of using several color notations and models that we already know from p5.js, since it translates them for us into the GLSL specific one with hooks (e.g. `finalColor`). + + +We can use p5.js functions like [`color()`](/reference/p5/color) for a: +- named color, `color("blue")` +- hex color value, `color("#0000ff")` +- hsl values, `color("hsl(40, 100%, 50%)")` +- RGB 8-bit values, `color(0, 255, 0)` + + + + + +#### sketch with p5.strands + + + + + + +#### sketch with GLSL + + + + + +### 02. Textured Colors +We'll continue evolving our canvas and 3D primitive sketch as we learn more techniques to color with our fragment shaders. + + +A set of code implementing algorithms to get the pixels of a mesh rendered on the screen. In WebGL shaders are written in GLSL, and there are two types: vertex and fragment. +- [Introduction to GLSL](https://p5js.org/tutorials/intro-to-glsl/) + + +p5.strands hooks (e.g. `pixelInputs`) allow us to speak GLSL with familiar p5.js language. In the following table, we can see how some of the p5.strands syntax we're learning translates into GLSL. + + + + + + + + + + + + + + + + + + + + + + + + + + +
p5.strandsGLSL
hook.texCoord vec2 uv = gl_FragCoord.xy / u_resolution
hook.colorgl_FragColor
hook.set(val)gl_FragColor = val
getTexture(img, uv)texture(u_texture, uv)
+ + +Let's add a colored texture to our shaders by using the [`noise()`](/reference/p5/noise) p5.js function. + +Applying randomness to a color equation, can create visually smooth organic textures such as clouds, as well as rougher textures found in crystals. + +We can also add the time elapsed with [`millis()`](/reference/p5/millis) to our textures, for a natural-looking movement. + + + + + +#### sketch with p5.strands + + + + + + +#### sketch with GLSL + + + + + +### 03. Image Filter Colors \ No newline at end of file From 145fb8609ff7b96c14b4f2cf5ca90e60b8de813f Mon Sep 17 00:00:00 2001 From: ilithya Date: Wed, 9 Sep 2026 13:32:36 +0200 Subject: [PATCH 2/4] Add second p5strands color tutorial milestone. --- public/assets/mont-photo-low.jpg | Bin 0 -> 164639 bytes .../en/hello-color-world-p5-strands.mdx | 475 ++++++++++++++---- 2 files changed, 388 insertions(+), 87 deletions(-) create mode 100644 public/assets/mont-photo-low.jpg diff --git a/public/assets/mont-photo-low.jpg b/public/assets/mont-photo-low.jpg new file mode 100644 index 0000000000000000000000000000000000000000..01a1b98002b44fb94a2f37f9e7fd5de7412ed918 GIT binary patch literal 164639 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⩔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 EKX$X-;{X5v literal 0 HcmV?d00001 diff --git a/src/content/tutorials/en/hello-color-world-p5-strands.mdx b/src/content/tutorials/en/hello-color-world-p5-strands.mdx index e4763ab063..302f7ed658 100644 --- a/src/content/tutorials/en/hello-color-world-p5-strands.mdx +++ b/src/content/tutorials/en/hello-color-world-p5-strands.mdx @@ -23,13 +23,20 @@ Let's discover a few techniques for manipulating color using p5.strands, and lea We'll explore color in shaders to enhance our p5.js sketches with more sophisticated effects that pure JavaScript wouldn't let us do. -p5.strands is a new way of writing shaders using JavaScript in p5.js. -- [Writing shaders in JavaScript](https://www.davepagurek.com/blog/writing-shaders-in-js/), Dave Pagurek's blog -- [Introduction to shaders](/tutorials/intro-to-p5-strands) +It's a new way of writing shaders using JavaScript in p5.js. +- [p5.strands: Writing shaders in JavaScript](https://www.davepagurek.com/blog/writing-shaders-in-js/), Dave Pagurek's blog +- [p5.strands: Introduction to shaders](/tutorials/intro-to-p5-strands) To understand the advantages that p5.strands brings to us when dealing with shaders, we'll look at each technique through examples with variations of creating a p5 sketch together with p5.strands vs. GLSL (shader language). +Each technique will present a few ideas for using p5.js syntax that you can try in the sketches with p5.strands. This can help you learn how to combine them. + + +A set of instructions implementing algorithms that control how a mesh is rendered into pixels on the screen. In WebGL shaders are written in GLSL, and there are two types: vertex and fragment. +- [Introduction to GLSL](https://p5js.org/tutorials/intro-to-glsl/) + + Let's start from simple to complex, like having a x-course meal, by first dipping our toes into an appetizer.

@@ -39,18 +46,36 @@ Let's start from simple to complex, like having a x-course meal, by first dippin We'll begin by simply painting the canvas of our sketch and one 3D primitive. -A shader in charge of outputing the color of each pixel. They output a color using RGBA values from 0.0 to 1.0. +A shader in charge of outputting the color of each pixel on the screen, using RGBA values from 0.0 to 1.0. - [RGBA color](https://hughsk.io/fragment-foundry/chapters/03-rgb.html), self-guided workshop on fragment shaders by Hugh Kennedy - [RGB color model](https://courses.ilithya.rocks/p/courses/intro-to-shaders/3486602-module-02-color/11410544-07-rgb-color-model), fragment shader course by ilithya -With p5.strands we can modify the color of a shader and have the benefit of using several color notations and models that we already know from p5.js, since it translates them for us into the GLSL specific one with hooks (e.g. `finalColor`). +With p5.strands we can modify the color of a shader and have the benefit of using several color notations and models that we already know from p5.js, since it translates them for us into the GLSL specific one with hooks (e.g. [`finalColor`](/reference/p5/finalColor/)). + +These hooks allow us to speak GLSL when we use them with familiar p5.js language: + + + + + + + + + + + + + + +
p5.strandsGLSL (fragment)
hook.set(val)gl_FragColor = val
+ -We can use p5.js functions like [`color()`](/reference/p5/color) for a: -- named color, `color("blue")` -- hex color value, `color("#0000ff")` -- hsl values, `color("hsl(40, 100%, 50%)")` +We can use p5.js functions like [`color()`](/reference/p5/color) to paint with the shader: +- named color, `color('blue')` +- hex color value, `color('#0000ff')` +- hsl values, `color('hsl(40, 100%, 50%)')` - RGB 8-bit values, `color(0, 255, 0)` @@ -62,12 +87,25 @@ We can use p5.js functions like [`color()`](/reference/p5/color) for a: let shaderCanvas; let shaderPrimitive; + function setup() { + createCanvas(300, 300, WEBGL); + pixelDensity(1); + + // Custom shaders using p5.strands + shaderCanvas = buildColorShader( + colorCanvas + ); + shaderPrimitive = buildMaterialShader( + colorPrimitive + ); + } + function colorCanvas() { // p5.strands hook // connects p5.js with GLSL finalColor.begin(); - const solidColor = color("blue"); + const solidColor = color('blue'); finalColor.set(solidColor); finalColor.end(); @@ -78,20 +116,12 @@ We can use p5.js functions like [`color()`](/reference/p5/color) for a: // connects p5.js with GLSL finalColor.begin(); - const solidColor = color("#ff0000"); + const solidColor = color('#ff0000'); finalColor.set(solidColor); finalColor.end(); } - function setup() { - createCanvas(300, 300, WEBGL); - pixelDensity(1); - - shaderCanvas = buildColorShader(colorCanvas); - shaderPrimitive = buildMaterialShader(colorPrimitive); - } - function draw() { // Apply color shader in canvas filter(shaderCanvas); @@ -116,8 +146,21 @@ We can use p5.js functions like [`color()`](/reference/p5/color) for a: let shaderCanvas; let shaderPrimitive; - // GLSL + function setup() { + createCanvas(300, 300, WEBGL); + pixelDensity(1); + + // Custom shaders using GLSL + shaderCanvas = createShader( + vertex, fragmentCanvas + ); + shaderPrimitive = createShader( + vertex, fragmentPrimitive + ); + } + let vertex = \` +// GLSL precision highp float; attribute vec3 aPosition; @@ -131,6 +174,7 @@ void main() { \`; let fragmentCanvas = \` +// GLSL precision highp float; void main() { @@ -142,6 +186,7 @@ void main() { \`; let fragmentPrimitive = \` +// GLSL precision highp float; void main() { @@ -152,14 +197,6 @@ void main() { } \`; - function setup() { - createCanvas(300, 300, WEBGL); - pixelDensity(1); - - shaderCanvas = createShader(vertex, fragmentCanvas); - shaderPrimitive = createShader(vertex, fragmentPrimitive); - } - function draw() { // Apply color shader in canvas filter(shaderCanvas); @@ -179,48 +216,44 @@ void main() { ### 02. Textured Colors -We'll continue evolving our canvas and 3D primitive sketch as we learn more techniques to color with our fragment shaders. +We'll continue evolving our canvas and 3D primitive sketch as we learn more techniques to color with our fragment shaders. Let's add a colored texture to them. - -A set of code implementing algorithms to get the pixels of a mesh rendered on the screen. In WebGL shaders are written in GLSL, and there are two types: vertex and fragment. -- [Introduction to GLSL](https://p5js.org/tutorials/intro-to-glsl/) + +An access point into a shader that connects p5.js with GLSL to modify its behavior. +- `Cheat sheet link?` -p5.strands hooks (e.g. `pixelInputs`) allow us to speak GLSL with familiar p5.js language. In the following table, we can see how some of the p5.strands syntax we're learning translates into GLSL. +With p5.strands we can apply randomness to a color equation, creating visually smooth organic textures such as clouds, as well as rougher textures found in crystals, by using the [`noise()`](/reference/p5/noise) p5.js function with a hook (e.g. [`pixelInputs`](/reference/p5/pixelInputs/)) instead of implementing GLSL algorithms from scratch. + +We can also add the time elapsed with [`millis()`](/reference/p5/millis) to our textures to simulate natural-looking movements. This value becomes a GLSL uniform, useful to adjust the shader. + +Here are other p5.strands syntax examples we'll use, and their GLSL translations. - + - + - - - - - - - -
p5.strandsGLSLGLSL (fragment)
hook.texCoord vec2 uv = gl_FragCoord.xy / u_resolutionvarying vec2 uv
hook.color gl_FragColor
hook.set(val)gl_FragColor = val
getTexture(img, uv)texture(u_texture, uv)
-Let's add a colored texture to our shaders by using the [`noise()`](/reference/p5/noise) p5.js function. - -Applying randomness to a color equation, can create visually smooth organic textures such as clouds, as well as rougher textures found in crystals. - -We can also add the time elapsed with [`millis()`](/reference/p5/millis) to our textures, for a natural-looking movement. +Experiment with different inputs for the cloud texture: +- static, `noise(uv);` +- animated, `noise(uv + millis() * 0.00015);` +- horizontal mouse movement, `noise(uv + mouseX / width);` +- vertical mouse movement, `noise(uv + mouseY / height);` @@ -231,12 +264,25 @@ We can also add the time elapsed with [`millis()`](/reference/p5/millis) to our let shaderCanvas; let shaderPrimitive; + function setup() { + createCanvas(300, 300, WEBGL); + pixelDensity(1); + + // Custom shaders using p5.strands + shaderCanvas = buildMaterialShader( + colorCanvas + ); + shaderPrimitive = buildMaterialShader( + colorPrimitive + ); + } + function colorCanvas() { // p5.strands hook // connects p5.js with GLSL pixelInputs.begin(); - // Coordinates of our rendered space + // Coordinates of rendered space // (X and Y) const uv = pixelInputs.texCoord; @@ -260,7 +306,7 @@ We can also add the time elapsed with [`millis()`](/reference/p5/millis) to our // connects p5.js with GLSL pixelInputs.begin(); - // Coordinates of our rendered space + // Coordinates of rendered space // (X and Y) const uv = pixelInputs.texCoord; @@ -270,14 +316,6 @@ We can also add the time elapsed with [`millis()`](/reference/p5/millis) to our pixelInputs.end(); } - async function setup() { - createCanvas(300, 300, WEBGL); - pixelDensity(1); - - shaderCanvas = buildMaterialShader(colorCanvas); - shaderPrimitive = buildMaterialShader(colorPrimitive); - } - function draw() { // Apply color shader in canvas filter(shaderCanvas); @@ -303,8 +341,21 @@ We can also add the time elapsed with [`millis()`](/reference/p5/millis) to our let shaderCanvas; let shaderPrimitive; - // GLSL + function setup() { + createCanvas(300, 300, WEBGL); + pixelDensity(1); + + // Custom shaders using GLSL + shaderCanvas = createShader( + vertex, fragmentCanvas + ); + shaderPrimitive = createShader( + vertex, fragmentPrimitive + ); + } + let vertex = \` +// GLSL precision highp float; attribute vec2 aTexCoord; @@ -313,23 +364,26 @@ attribute vec3 aPosition; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; -varying vec2 vUv; +varying vec2 uv; void main() { - vUv = aTexCoord; + uv = aTexCoord; gl_Position = uProjectionMatrix * uModelViewMatrix * vec4(aPosition, 1.0); } \`; let fragmentCanvas = \` +// GLSL precision highp float; -uniform vec2 uResolution; -uniform float uMouseX; -uniform float uTime; +uniform vec2 u_resolution; +uniform float u_mouseX; +uniform float u_time; -varying vec2 vUv; +// Coordinates of rendered space +// (X and Y) +varying vec2 uv; // GLSL Noise Algorithms by Patricio Gonzalez Vivo // https://gist.github.com/patriciogonzalezvivo/670c22f3966e662d2f83 @@ -363,13 +417,9 @@ float fbm( in vec2 p ){ } void main() { - // Coordinates of our rendered space - // (X and Y) - vec2 uv = vUv; - - float cloudTexture = fbm(uv * 2.5 + uTime * 0.15); + float cloudTexture = fbm(uv * 2.5 + u_time); - float r = uMouseX / uResolution.x; + float r = u_mouseX / u_resolution.x; float g = 0.0; float b = cloudTexture * 1.5; @@ -380,9 +430,12 @@ void main() { \`; let fragmentPrimitive = \` +// GLSL precision highp float; -varying vec2 vUv; +// Coordinates of rendered space +// (X and Y) +varying vec2 uv; // GLSL Noise Algorithms by Patricio Gonzalez Vivo // https://gist.github.com/patriciogonzalezvivo/670c22f3966e662d2f83 @@ -403,10 +456,6 @@ float noise(vec2 p){ } void main() { - // Coordinates of our rendered space - // (X and Y) - vec2 uv = vUv; - float grainTexture = noise(uv * 200.0); grainTexture -= 0.05; @@ -416,26 +465,157 @@ void main() { } \`; + function draw() { + const time = millis() * 0.00015; + + // Setup uniforms for fragment shader + shaderCanvas.setUniform( + 'u_time', time + ); + shaderCanvas.setUniform( + 'u_mouseX', mouseX + ); + shaderCanvas.setUniform( + 'u_resolution', [width, height] + ); + + // Apply color shader in canvas + filter(shaderCanvas); + + // Apply color shader in 3D primitive + shader(shaderPrimitive); + + // Rotate 3D primitive + rotateY(time); + + stroke(120); + box(120); + } +`} /> + + + + +### 03. Image Color Filters +Let's add an image to our canvas and 3D primitive to learn how we can create a color filter with adjustments in the fragment shader. To simplify things, we’ll use the same image for both. +{/* We'll add the same image to our 3D primitive without any effect to see the difference. */} + {/* using the p5.js [`filter()`](/reference/p5/filter/) function. */} + + +It's a color distortion that occurs when the colors of light don't focus on the same point. The RGB channels appear to be separated, making the colors of an image appear shifted. +- [Chromatic aberration](https://en.wikipedia.org/wiki/Chromatic_aberration), wikipedia + + +With p5.strands we can customize an image filter to our liking, and create a chromatic aberration effect with hooks (e.g. [`filterColor`](/reference/p5/filterColor/)). We can displace the image colors vertically and horizontally, using the p5.js variables [`mouseX`](/reference/p5/mouseX) and [`mouseY`](/reference/p5/mouseY), which are translated into GLSL uniforms to control the shader. + +We'll add this p5.strands vs. GLSL translation to our knowledge base: + + + + + + + + + + + + + + +
p5.strandsGLSL (fragment)
getTexture(texture, uv)texture2D(u_texture, uv)
+ + +Explore different offsets, in both axes (X, Y), for the image displacement: +- centered horizontal mouse movement, `(0.5 - mouseX / width) * 0.5` +- centered vertical mouse movement, `(0.5 - mouseY / height) * 0.5` +- linear animation, `sin(millis() * 0.001) * 0.5` +- animated, `noise(uv + millis() * 0.00025)` + + + {/* It always starts with a `begin()` */} +{/* It's a color distortion that occurs when the colors in an image don't focus on the same point. The RGB channels appear to be separated. */} + +{/* We'll add a tinted filter to an image placed in the canvas. */} + +{/* In p5.strands we can modify the color of a shader and have the benefit of using several color notations and models that we already know from p5.js, since it translates them for us into the GLSL specific one with hooks (e.g. `finalColor`). */} + +{/* p5.strands hooks (e.g. pixelInputs) allow us to speak GLSL with familiar p5.js language. In the following table, we can see how some of the p5.strands syntax we’re learning translates into GLSL. */} + + {/* It's possible to also write GLSL-like-JavaScript. */} +{/* - [p5.strands GLSL built-in functions](https://github.com/processing/p5.js/blob/main/src/strands/strands_builtins.js) */} + + + + +#### sketch with p5.strands + - -### 03. Image Filter Colors \ No newline at end of file + + +#### sketch with GLSL + + + + \ No newline at end of file From 186ff0965e6199a42c9f2942a7d6cefedf95a2f3 Mon Sep 17 00:00:00 2001 From: ilithya Date: Wed, 9 Sep 2026 16:42:42 +0200 Subject: [PATCH 3/4] Update last sketches, table and text. --- .../en/hello-color-world-p5-strands.mdx | 186 +++++++++++++----- 1 file changed, 137 insertions(+), 49 deletions(-) diff --git a/src/content/tutorials/en/hello-color-world-p5-strands.mdx b/src/content/tutorials/en/hello-color-world-p5-strands.mdx index 302f7ed658..9025c7c318 100644 --- a/src/content/tutorials/en/hello-color-world-p5-strands.mdx +++ b/src/content/tutorials/en/hello-color-world-p5-strands.mdx @@ -278,6 +278,8 @@ Experiment with different inputs for the cloud texture: } function colorCanvas() { + const time = millis() * 0.00015; + // p5.strands hook // connects p5.js with GLSL pixelInputs.begin(); @@ -286,8 +288,6 @@ Experiment with different inputs for the cloud texture: // (X and Y) const uv = pixelInputs.texCoord; - const time = millis() * 0.00015; - const cloudTexture = noise(uv + time); const r = mouseX / width; @@ -468,7 +468,8 @@ void main() { function draw() { const time = millis() * 0.00015; - // Setup uniforms for fragment shader + // Setup uniforms for + // canvas fragment shader shaderCanvas.setUniform( 'u_time', time ); @@ -498,8 +499,6 @@ void main() { ### 03. Image Color Filters Let's add an image to our canvas and 3D primitive to learn how we can create a color filter with adjustments in the fragment shader. To simplify things, we’ll use the same image for both. -{/* We'll add the same image to our 3D primitive without any effect to see the difference. */} - {/* using the p5.js [`filter()`](/reference/p5/filter/) function. */} It's a color distortion that occurs when the colors of light don't focus on the same point. The RGB channels appear to be separated, making the colors of an image appear shifted. @@ -518,6 +517,14 @@ We'll add this p5.strands vs. GLSL translation to our knowledge base: + + hook.canvasContent + uniform sampler2D u_texture + + + uniformTexture(texture) + uniform sampler2D u_texture + getTexture(texture, uv) texture2D(u_texture, uv) @@ -527,31 +534,20 @@ We'll add this p5.strands vs. GLSL translation to our knowledge base: Explore different offsets, in both axes (X, Y), for the image displacement: +- animated, `noise(uv + millis() * 0.00025)` +- linear animation, `sin(millis() * 0.001) * 0.5` - centered horizontal mouse movement, `(0.5 - mouseX / width) * 0.5` - centered vertical mouse movement, `(0.5 - mouseY / height) * 0.5` -- linear animation, `sin(millis() * 0.001) * 0.5` -- animated, `noise(uv + millis() * 0.00025)` - {/* It always starts with a `begin()` */} -{/* It's a color distortion that occurs when the colors in an image don't focus on the same point. The RGB channels appear to be separated. */} - -{/* We'll add a tinted filter to an image placed in the canvas. */} - -{/* In p5.strands we can modify the color of a shader and have the benefit of using several color notations and models that we already know from p5.js, since it translates them for us into the GLSL specific one with hooks (e.g. `finalColor`). */} - -{/* p5.strands hooks (e.g. pixelInputs) allow us to speak GLSL with familiar p5.js language. In the following table, we can see how some of the p5.strands syntax we’re learning translates into GLSL. */} - - {/* It's possible to also write GLSL-like-JavaScript. */} -{/* - [p5.strands GLSL built-in functions](https://github.com/processing/p5.js/blob/main/src/strands/strands_builtins.js) */} - #### sketch with p5.strands Date: Wed, 9 Sep 2026 17:28:53 +0200 Subject: [PATCH 4/4] Add feedback adjustments. --- .../en/hello-color-world-p5-strands.mdx | 44 +++++++++++++------ 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/src/content/tutorials/en/hello-color-world-p5-strands.mdx b/src/content/tutorials/en/hello-color-world-p5-strands.mdx index 9025c7c318..a951df02f0 100644 --- a/src/content/tutorials/en/hello-color-world-p5-strands.mdx +++ b/src/content/tutorials/en/hello-color-world-p5-strands.mdx @@ -16,7 +16,7 @@ import { Columns, Column } from "../../../components/Columns"; import EditableSketch from "../../../components/EditableSketch/index.astro"; import Callout from "../../../components/Callout/index.astro"; -## X Ways To Work With Color In Shaders +## 3 Ways To Work With Color In Shaders Let's discover a few techniques for manipulating color using p5.strands, and learn a bit of fragment shader fundamentals in the process. @@ -24,29 +24,31 @@ We'll explore color in shaders to enhance our p5.js sketches with more sophistic It's a new way of writing shaders using JavaScript in p5.js. -- [p5.strands: Writing shaders in JavaScript](https://www.davepagurek.com/blog/writing-shaders-in-js/), Dave Pagurek's blog -- [p5.strands: Introduction to shaders](/tutorials/intro-to-p5-strands) +- [p5.strands: Writing shaders in JavaScript](https://www.davepagurek.com/blog/writing-shaders-in-js/), blog post by Dave Pagurek +- [p5.strands: Introduction to shaders](/tutorials/intro-to-p5-strands), tutorial by Luke Plowden -To understand the advantages that p5.strands brings to us when dealing with shaders, we'll look at each technique through examples with variations of creating a p5 sketch together with p5.strands vs. GLSL (shader language). +To understand what advantages using p5.strands brings to us when dealing with shaders, we'll look at each technique through examples with variations of creating a p5 sketch together with p5.strands and comparing them to GLSL. Each technique will present a few ideas for using p5.js syntax that you can try in the sketches with p5.strands. This can help you learn how to combine them. A set of instructions implementing algorithms that control how a mesh is rendered into pixels on the screen. In WebGL shaders are written in GLSL, and there are two types: vertex and fragment. -- [Introduction to GLSL](https://p5js.org/tutorials/intro-to-glsl/) +- [Introduction to GLSL](https://p5js.org/tutorials/intro-to-glsl/), tutorial by Dave Pagurek, Austin Lee Slominski, Adam Ferriss -Let's start from simple to complex, like having a x-course meal, by first dipping our toes into an appetizer. +Although GLSL can be used alongside JavaScript in a p5.js sketch, it is a separate shader language that shaders require. With p5.strands you can focus only in JavaScript, given that GLSL is managed by p5.js. -
+Let's start from simple to complex, like having a three-course meal, by first dipping our toes into an appetizer. -### 01. Solid Colors +
+ +### 1. Solid Colors We'll begin by simply painting the canvas of our sketch and one 3D primitive. -A shader in charge of outputting the color of each pixel on the screen, using RGBA values from 0.0 to 1.0. +A shader that sets the color of each pixel on the screen, using RGBA values from 0.0 to 1.0. - [RGBA color](https://hughsk.io/fragment-foundry/chapters/03-rgb.html), self-guided workshop on fragment shaders by Hugh Kennedy - [RGB color model](https://courses.ilithya.rocks/p/courses/intro-to-shaders/3486602-module-02-color/11410544-07-rgb-color-model), fragment shader course by ilithya @@ -215,7 +217,7 @@ void main() {
-### 02. Textured Colors +### 2. Textured Colors We'll continue evolving our canvas and 3D primitive sketch as we learn more techniques to color with our fragment shaders. Let's add a colored texture to them. @@ -497,17 +499,19 @@ void main() { -### 03. Image Color Filters +### 3. Image Color Filters Let's add an image to our canvas and 3D primitive to learn how we can create a color filter with adjustments in the fragment shader. To simplify things, we’ll use the same image for both. It's a color distortion that occurs when the colors of light don't focus on the same point. The RGB channels appear to be separated, making the colors of an image appear shifted. - [Chromatic aberration](https://en.wikipedia.org/wiki/Chromatic_aberration), wikipedia +- [Filter Shader (p5.strands)](/examples/3D-Filter-Shader-p5strands/), example by Dave Pagurek +- [Filter Shader (GLSL)](/examples/3D-Filter-Shader/), example by Dave Pagurek With p5.strands we can customize an image filter to our liking, and create a chromatic aberration effect with hooks (e.g. [`filterColor`](/reference/p5/filterColor/)). We can displace the image colors vertically and horizontally, using the p5.js variables [`mouseX`](/reference/p5/mouseX) and [`mouseY`](/reference/p5/mouseY), which are translated into GLSL uniforms to control the shader. -We'll add this p5.strands vs. GLSL translation to our knowledge base: +We'll add these p5.strands vs. GLSL translations to our knowledge base: @@ -644,7 +648,13 @@ let shaderPrimitive; function draw() { // Add image to canvas - image(img, width/-2, height/-2, width, height); + image( + img, + width/-2, + height/-2, + width, + height + ); // Apply color shader in canvas filter(shaderCanvas); @@ -797,7 +807,13 @@ void main() { const time = millis() * 0.00015; // Add image to canvas - image(img, width/-2, height/-2, width, height); + image( + img, + width/-2, + height/-2, + width, + height + ); // Apply color shader in canvas filter(shaderCanvas);