GLSL - Pourquoi les opérateurs réservés au niveau du bit? Ce qui est une bonne alternative à l'utilisation ops au niveau du bit (opérations à virgule flottante qui émulent au niveau du bit)

StackOverflow https://stackoverflow.com/questions/3543273

  •  30-09-2019
  •  | 
  •  

Question

Je suis en cours d'exécution des expériences en WebGL, l'un d'entre eux étant un fragment shader effet XOR. Pour une raison quelconque tous les opérateurs sont réservés à bitwise GLSL et provoquer une erreur du compilateur lorsqu'il est utilisé. Pourquoi ces opérateurs illégaux? Que puis-je utiliser au lieu de | dans ce cas?

Était-ce utile?

La solution

Dans la spécification GLSL 1.0, ils étaient réservés « pour une utilisation future », qui était la spécification 1.3. Il est permis pour les entiers non signés et signés, à la fois scalaire et vectoriel.

Vous devriez commencer par shader

#version 130

Autres conseils

J'ai couru aussi ce problème, par exemple essayant de courir Slisesix Shader Toy en utilisant Chrome.

Cette question a deux réponses montrant comment vous pourriez mettre en œuvre XOR sans opérateurs. bitwise Ils pourraient être lents, mais dans certains cas, ils seraient assez vite. Mieux que rien.

Vous pouvez voir également si + est une approximation assez proche de XOR, en fonction de vos exigences.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top