Skip to content
Attempt at a 1-Bit shader in Three.js
JavaScript HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
1-Bit Demo


Attempt at a very basic 1-Bit shader in Three.js.

Warning - The scene demo currently causes WebGL to crash after a short period of time.

Also Note: Due to current three.js limitations, the code to determine edge color is partially written in the (modified) three.js source file.

Resources Used;

Skeleton code for First-Person controls modified from:

Three js Effect Composer (Post-Processing) Library;

“Standard Male Figure” (figure.json) Model provided by user “Ben Houston”;

Floor Texture (floor.jpg) by FreePik user “yingyang” @

“Color FAQ” by Charles Ponyton – Article about how accurate luminance, gamma, color, etc. conversions are calculated in computer graphics, used to find the RGB weights for my grayscaling method;

Matrix coefficients and information used in dithering found from;

Original forum post (Inspiration) by Lucas Pope, briefly explaining how his 1-bit was achieved in Unity, and his efforts to make the dither respond more smoothly to movement

You can’t perform that action at this time.