GLSL - Perché sono riservati operatori bit per bit? Qual è una buona alternativa all'utilizzo ops bit a bit (floating point op che bitwise emulare)

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

  •  30-09-2019
  •  | 
  •  

Domanda

Io corro alcuni esperimenti in WebGL, uno dei quali è un ombreggiatore XOR effetto frammento. Per qualche motivo tutti gli operatori bit per bit sono riservati a GLSL e causano un errore di compilazione quando viene utilizzato. Perché questi operatori illegali? Quello che posso usare al posto di | in questo caso?

È stato utile?

Soluzione

Nel GLSL 1.0 spec, erano riservati "per uso futuro", che è stato il 1.3 spec. E 'consentito per numeri interi senza segno e firmati, sia scalari e vettoriali.

Si dovrebbe iniziare il vostro Shader da

#version 130

Altri suggerimenti

mi sono imbattuto in questo problema anche, ad esempio, cercando di eseguire Slisesix in Shader giocattolo utilizzando Chrome.

Questa domanda ha due risposte che mostrano modi si potrebbe implementare XOR bit a bit senza operatori bit per bit. Potrebbero essere lento, ma in alcuni casi sarebbero stati abbastanza veloci. Meglio di niente.

Si potrebbe anche vedere se + è un'approssimazione abbastanza per XOR bit a bit, a seconda di cosa siano le vostre esigenze.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top