GLSL nach C ++ übersetzen float / vec3?

8

Was genau macht diese Zeile

? %Vor%

Der Teil, über den ich verwirrt bin, ist, wie man

übersetzt %Vor%

Ein Float geteilt durch ein vec3? Ich möchte das in C ++ übersetzen, aber was ist das, das einen Float zurückgibt, geteilt durch alle Elemente des Vektors? usw.

(kein Zugriff auf Grafikkarte zu überprüfen?)

    
John Du 15.01.2014, 19:26
quelle

1 Antwort

4

Dies ist ein Beispiel für eine komponentenweise Aufteilung und funktioniert folgendermaßen:

GLSL 4.40 Spezifikation - 5.9 Expressions - pp. 101-102

  

Wenn die grundlegenden Typen in den Operanden nicht übereinstimmen, werden die Konvertierungen aus dem Abschnitt 4.1.10 "Implizite Conversions" angewendet, um passende Typen zu erstellen. [...] Nach der Konvertierung gelten die folgenden Fälle:

     
    

[...]

         
  • Ein Operand ist ein Skalar, und der andere ist ein Vektor oder eine Matrix. In diesem Fall wird die skalare Operation unabhängig auf jede Komponente des Vektors oder der Matrix angewendet, was zu dem Vektor oder der Matrix derselben Größe führt.
  •     

Gegeben der Ausdruck:

%Vor%

Der Skalar bR.r wird im Wesentlichen auf vec3 (bR.r, bR.r, bR.r) hochgestuft, und dann wird die teilerweise Aufteilung ausgeführt, was zu vec3 (bR.r/bR.r, bR.r/bR.g, bR.r/bR.b) führt.

Somit entspricht dieser Ausdruck:

%Vor%     
Andon M. Coleman 15.01.2014 21:05
quelle

Tags und Links