โ† All examples

godot shaders

Colour vision deficiency simulation

Simulate protanopia, deuteranopia, tritanopia or achromatopsia on the whole screen with a severity mix, to check that a game's colours stay distinguishable for colour-blind players.

Recorded render of Colour vision deficiency simulation

What this component contains

  • ATTRIBUTION.md
  • LICENSE
  • README.md
  • component.json
  • demo.tscn
  • inspect_shader.py
  • material.tres
  • post_color_blindness.gdshader
  • preview.png
  • test_package.py
  • verification/native.json

How it works

Shader type
spatial
Render modes
unshaded, cull_disabled, depth_test_disabled, depth_draw_never, skip_vertex_transform, fog_disabled
Parameters
screen_texture (sampler2D), mode (int = 1), severity (float = 1), split_view (bool = no)
Use it on
A MeshInstance3D with a 2 x 2 QuadMesh, `material.tres` as its material override and a large extra cull margin, as in `demo.tscn`.
Result
The scene as seen with deuteranopia: reds and greens collapse toward ochre and olive while blues remain.
Renderers
compatibility: compiled and rendered, forward plus: not verified, mobile: not verified
Placement
res://baltor/godot_shaders/post_color_blindness/

Recorded checks

godot 4.7.2.stable.official.ed1daf0bf

  • contract_static
  • engine_run
  • engine_log_clean
  • shader_in_scene
  • capture_written
  • render_not_uniform
  • shader_changes_pixels

Limits to consider

A simulation for testing, not a correction filter, and only for typical dichromacy. Individual vision varies. The pass assumes the screen texture holds sRGB-encoded colour. The pass reads Godot's screen texture after opaque geometry, so transparent objects drawn after it are not processed and its order among other transparent passes is not controlled.