Können Sie ein Array von vec2 an einen Geometrieshader als Eingabe übergeben? Wenn ja, wie lautet die Syntax?Können Sie ein Array als Eingabe an einen Geometrieshader übergeben?
Antwort
Arrays von Arrays in GLSL werden von links nach rechts gelesen. vec2[3][6]
wird als "ein Array von 3 Elementen gelesen, wobei jedes Element ein Array von 6 Elementen ist, wobei jedes Element ein vec2
ist."
GS-Eingänge sind gruppiert; Jedes Element repräsentiert eine einzelne Ausgabe von der vorhergehenden Shaderstufe. Die Tatsache, dass die "einzelne Ausgabe" tatsächlich ein Array-Typ sein kann, ist irrelevant.
Also, wenn Sie Eingabe/Ausgabe-Variablen verwenden, die nicht in Schnittstellenbausteine sind, würde dies wie folgt aussehen:
//Vertex Shader
out vec2[6] someVariable;
//Geometry Shader
in vec2[][6] someVariable;
Der erste Index ist der Vertex-Index.
Beachten Sie, dass dies GLSL 4.30 oder die ARB_arrays_of_arrays erfordern kann.
Wenn Sie interface blocks verwenden, um Daten zu übergeben, dann geht das Array auf dem Instanznamen des Schnittstellenblocks selbst:
//Vertex Shader
out SomeName
{
vec2[6] someVariable;
};
//Geometry Shader
in SomeName
{
vec2[6] someVariable;
} instanceName[];
Da der Block einen Instanznamen hat, Sie es in GLSL als instanceName[index].someVariable
befassen .
Dies kann in OpenGL 3.2 erfolgen.
- 1. Übergeben Sie einen Array-Wert an ein anderes Array
- 2. Können Sie einen zusätzlichen Parameter an ein Prädikat übergeben?
- 3. Können Sie einen Delegaten als Serversteuerparameter übergeben?
- 4. Können Sie ein Array fester Größe als GLSL-Funktionsparameter übergeben?
- 5. Können Sie einen "Typ" als Argument übergeben?
- 6. Übergeben variierender Variablen durch Geometrieshader
- 7. Übergeben Sie ein Array als Attribut-Wert-
- 8. Können Sie ein Argument an sigaction übergeben?
- 9. Ein Array an einen Konstruktor übergeben?
- 10. Übergeben Sie ein Array als Vorlage
- 11. Können Sie Webdienstanrufe generisch an einen anderen Server übergeben?
- 12. Ein Array als Argument übergeben
- 13. R-Daten als Eingabe an HTML übergeben?
- 14. Ruby: Übergeben Sie ein Array an Starts_with?
- 15. Übergeben Sie eine Eingabe an jedem Zeicheneintrag
- 16. So übergeben Sie PDF als Eingabe an den Drucker
- 17. Übergeben Sie die lokale Variable an die Direktive als Eingabe
- 18. Können Sie ein _tag als ein Rails-Helfer-Argument übergeben?
- 19. Ein Array an pthread_create übergeben
- 20. Ein Array als Eigenschaft übergeben
- 21. Übergeben Sie einen Typennamen an einen Vorlagenoperator
- 22. Können Sie Umgebungsvariablen an xcodebuild übergeben?
- 23. Wie mehrere Bilder als Eingabe an Python-Skript übergeben werden
- 24. Nicht einen Dynamikbereich als Argument übergeben können
- 25. Können Sie eine Variable an einen Spring-Flow-Entscheidungsstatus übergeben, um sie als Ziel zu verwenden?
- 26. Python - So übergeben Sie ein Verzeichnis als MapReduce-Eingabe
- 27. Übergeben Sie ein Array an benutzerdefinierten Validator Angular
- 28. Übergeben von benutzerdefinierten Swift-Objekt an Javascript-Methoden als Eingabe
- 29. Wie kann man ein Array effizient an einen Datenrahmen übergeben?
- 30. Können Sie eine keyfile.json an gsutil übergeben?