How do I perform bit operations in glsl

15,499

Solution 1

They have been introduced with GLSL 1.30 (OGL 3.0).

Depending on what you want to do, you could eventually emulate them with floating point operations, x & (2^n)-1 = frac(x/(2^n))*(2^n) for example, but you'll have to take care of floating point errors.

Solution 2

You need to put either

#version 130

or

#extension GL_EXT_gpu_shader4 : enable

in the top of your shader to get access to the bit operators

Share:
15,499
GameFreak
Author by

GameFreak

Updated on June 04, 2022

Comments

  • GameFreak
    GameFreak over 1 year

    How do I perform bit operations in glsl?

    Using the regular C style bitwise operators |, &, ^, or ! does not work.

  • St0fF
    St0fF about 6 years
    Are there more examples like that? This AND operation is what I needed the most, but also some OR would come in handy...
  • Admin
    Admin over 4 years
    @St0fF If you can find a way to do ¬ (not gate) then you can combine it with (and gate) using DeMorgan's law to obtain p ∨ q = ¬( ¬p ∧ ¬q ).