Utilities

  • 04boilerplateFree
  • 02color
  • 01noise
  • 12postprocessing
  • 06patterns
  • 03distortion
  • 02sdf
  • 06function
  • 04interactivityNew

Enroll in Fragments ↵

Color Space Correction

A composable component that sets the renderer's outputColorSpace to LinearSRGBColorSpace and disables tone mapping.

Loading...
Cosine Palette→
←→

Color Space Correction142

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
Sketches142Writing27

Fragments

Learn creative coding with shaders. For design engineers, creative coders and shader artists: techniques, tools, deep dives. Powered by ThreeJS and TSL.

Loading...

2025 Phobon

phobon.io↗Shadercraft↗

Pages

Home↗Techniques↗Utilities↗Breakdowns↗Sketches↗Writing↗

Contact

X @thenoumenon↗hey@fragments.supply↗OKAY DEV @phobon↗
All rights reserved.

What is it?

Admittedly this is a workaround for a bug in Three.js, but it can be useful to see how different Canvas parameters are set in React Three Fiber (R3F).

Currently (as of Three.js 0.177.0), using flat and linear together will result in an error with the renderer. Using either of them on their own is fine, however.

What this does, is set the renderer's outputColorSpace to LinearSRGBColorSpace and disables tone mapping applied automatically by the renderer. This matches the output that you'll get by default using the WebGLRenderer in Three.js.

Note that if you're using vanilla Three.js, you won't need this component - this is mainly for use in React Three Fiber (R3F) projects.

How to use it

Just drop it in to your R3F project - it does need to be a child of the Canvas component to work with the correct context.

Using the ColorSpaceCorrection component
import { Canvas } from '@react-three/fiber'
import { ColorSpaceCorrection } from '@/components/canvas/webgpu_scene'
 
export const Scene = () => {
  return (
    <Canvas>
      <ColorSpaceCorrection />
    </Canvas>
  )
}

Implementation Reference

Sets the renderer's outputColorSpace to LinearSRGBColorSpace and disables tone mapping. Ensures correct color output for WebGPU rendering.

Links to additional resources

  • React Three Fiber Canvas API
Genuary 1

Genuary 1

Genuary 2

Genuary 2

Genuary 3

Genuary 3

Genuary 4

Genuary 4

Genuary 5

Genuary 5

Genuary 6

Genuary 6

Genuary 8

Genuary 8

Genuary 9

Genuary 9

Genuary 10

Genuary 10

Genuary 11

Genuary 11

Genuary 12

Genuary 12

Genuary 13

Genuary 13

Genuary 14

Genuary 14

Genuary 15

Genuary 15

Genuary 16

Genuary 16

Genuary 17

Genuary 17

Genuary 18

Genuary 18

Genuary 19

Genuary 19

Genuary 20

Genuary 20

Genuary 22

Genuary 22

Genuary 23

Genuary 23

Genuary 24

Genuary 24

Genuary 25

Genuary 25

Genuary 26

Genuary 26

Genuary 27

Genuary 27

Genuary 28

Genuary 28

Genuary 29

Genuary 29

Genuary 30

Genuary 30

Genuary 31

Genuary 31

Flare 1

Flare 1

Free
Flare 2

Flare 2

Flare 3

Flare 3

Flare 4

Flare 4

Flare 5

Flare 5

Flare 6

Flare 6

Flare 7

Flare 7

Flare 8

Flare 8

Flare 9

Flare 9

Eidolon 1

Eidolon 1

Eidolon 2

Eidolon 2

Eidolon 3

Eidolon 3

Eidolon 4

Eidolon 4

Eidolon 5

Eidolon 5

Dawn 1

Dawn 1

Free
Dawn 2

Dawn 2

Dawn 3

Dawn 3

Dawn 4

Dawn 4

Dawn 5

Dawn 5

Arcs 1

Arcs 1

Arcs 2

Arcs 2

Arcs 3

Arcs 3

Arcs 4

Arcs 4

Arcs 5

Arcs 5

Arcs 6

Arcs 6

Imaginary 1

Imaginary 1

Imaginary 2

Imaginary 2

Imaginary 3

Imaginary 3

Imaginary 4

Imaginary 4

Imaginary 5

Imaginary 5

Imaginary 6

Imaginary 6

Imaginary 7

Imaginary 7

Imaginary 8

Imaginary 8

Mesh 7

Mesh 7

Mesh 8

Mesh 8

Fundament

Fundament

Cellular

Cellular

Network

Network

Spiral

Spiral

Monde

Monde

Concentric

Concentric

Flow

Flow

Shift 1

Shift 1

Shift 2

Shift 2

Shift 3

Shift 3

Shift 4

Shift 4

Shift 5

Shift 5

Shift 6

Shift 6

Shift 7

Shift 7

Shift 8

Shift 8

Cascade 1

Cascade 1

Cascade 2

Cascade 2

Cascade 3

Cascade 3

Cascade 4

Cascade 4

Cascade 5

Cascade 5

Cascade 6

Cascade 6

Cascade 7

Cascade 7

Cascade 8

Cascade 8

Cascade 9

Cascade 9

Cascade 10

Cascade 10

Abiogenic 1

Abiogenic 1

Abiogenic 2

Abiogenic 2

Abiogenic 3

Abiogenic 3

Abiogenic 4

Abiogenic 4

Abiogenic 5

Abiogenic 5

Warp 1

Warp 1

Warp 2

Warp 2

Warp 3

Warp 3

Warp 4

Warp 4

Warp 5

Warp 5

Gravity 1

Gravity 1

Gravity 2

Gravity 2

Gravity 3

Gravity 3

Gravity 4

Gravity 4

Gravity 5

Gravity 5

Gravity 6

Gravity 6

Gravity 7

Gravity 7

Gravity 8

Gravity 8

Gravity 9

Gravity 9

Gravity 10

Gravity 10

Slate 1

Slate 1

Slate 2

Slate 2

Slate 3

Slate 3

Slate 4

Slate 4

Slate 5

Slate 5

Bands 1

Bands 1

Bands 2

Bands 2

Bands 3

Bands 3

Bands 4

Bands 4

Bands 5

Bands 5

Bands 6

Bands 6

Bands 7

Bands 7

Genuary 1

Genuary 1

Genuary 2

Genuary 2

Genuary 3

Genuary 3

Genuary 4

Genuary 4

Genuary 5

Genuary 5

Genuary 6

Genuary 6

Genuary 7

Genuary 7

Genuary 8

Genuary 8

Genuary 9

Genuary 9

Genuary 12

Genuary 12

Genuary 13

Genuary 13

Genuary 14

Genuary 14

Genuary 17

Genuary 17

Genuary 19

Genuary 19

Genuary 20

Genuary 20

Genuary 21

Genuary 21

Genuary 23

Genuary 23

Genuary 24

Genuary 24

Genuary 25

Genuary 25

Genuary 27

Genuary 27

Genuary 30

Genuary 30

Be the first to know what's next