Как выполнить битовые операции в glsl - PullRequest
7 голосов
/ 09 ноября 2009

Как мне выполнить битовые операции в glsl?

Использование обычных побитовых операторов в стиле C |, &, ^ или ! не работает.

Ответы [ 2 ]

7 голосов
/ 09 ноября 2009

Они были представлены с GLSL 1.30 (OGL 3.0).

В зависимости от того, что вы хотите сделать, вы можете в конечном итоге эмулировать их с помощью операций с плавающей запятой, например, x & (2^n)-1 = frac(x/(2^n))*(2^n), но вам придется позаботиться об ошибках с плавающей запятой.

5 голосов
/ 21 декабря 2009

Вам нужно поставить либо

#version 130

или

#extension GL_EXT_gpu_shader4 : enable

в верхней части вашего шейдера, чтобы получить доступ к битовым операторам

...