Ich habe einen Geometrieshader für meine OpenGL-Anwendung eingeführt. Meine Shader haben einige "variierende" Variablen, die ich vom Vertex-Shader zum Fragment-Shader übergebe. Jetzt, nachdem ich den Geometrieshader eingeführt habe, muss ich jeden variierenden Wert im Geometrieshader für jeden Eckpunkt manuell übergeben. Gibt es eine Möglichkeit, das zu vermeiden und Dinge "automatisch" zu tun?Übergeben variierender Variablen durch Geometrieshader
Antwort
Nr
Sobald Sie einen Geometrie-Shader in Ihrer Pipeline vorstellen, wenn Sie Variablen, um von dem Vertex-Shader mit dem Fragment-Shader Sie wollen manuell passieren müssen, eine Eingangsgröße von der Spitze zu schaffen Shader und eine Ausgabevariable für den Fragment-Shader. Ich weiß nicht, welche GLSL-Version Sie verwenden, aber Sie können Abschnitt 4.3.4 des GLSL 3.30 spec überprüfen.
Nein, weil es für nichts außer einem Noop-Geometrieshader keine sinnvolle Methode gibt. Und wenn Ihr Geometrieshader nichts mit der Geometrie zu tun hat, warum wird er überhaupt aktiviert?
Im Allgemeinen nimmt ein Geometrie-Shader eine Anzahl von Scheitelpunkten als Eingabe und erzeugt eine (andere) Anzahl von Scheitelpunkten als Ausgabe. Also, welche Eingabespitze (n) soll (n) 'automatisch' auf welche Ausgabespitze (n) gemappt werden?
- 1. GLSL-Geometrieshader mit lines_adjacency
- 2. Variierender C-Code-Ausgang
- 3. Variierender Titel Python 2.7
- 4. Übergeben Sie eine Datei und Variablen durch --Extra-Vars
- 5. While-Schleife: nur Variablen können durch Referenzfehler übergeben werden
- 6. Wie kann ich vermeiden, Variablen durch mehrere Funktionen zu übergeben?
- 7. Probleme beim Übergeben von statischen Variablen durch Funktionen
- 8. Übergabe der Variablen durch link_to
- 9. Sequenz variierender Inkremente mit R?
- 10. Variablen an shell_exec() übergeben?
- 11. Lokale Variablen übergeben (C++)
- 12. node.js übergeben Variablen
- 13. PHP-Variablen über Funktionen übergeben?
- 14. Django urls.py Problem übergeben Variablen
- 15. Looping durch Variablen
- 16. Looping durch $ _POST-Variablen
- 17. XGBoost - Poisson-Verteilung mit variierender Belichtung/Offset
- 18. Java: Variablen über Klassen übergeben
- 19. XSL: Variablen zwischen Vorlagen übergeben
- 20. Übergeben von Variablen in jquery
- 21. Weniger Variablen aus Webpack übergeben
- 22. verstecken Variablen übergeben in URL
- 23. Übergeben von Variablen innerhalb Appdelegate
- 24. Übergeben von Variablen an XSLT
- 25. Variablen über Jade-Vorlagen übergeben
- 26. Variablen an Yeoman Subgeneratoren übergeben
- 27. Verwirrt von, wie "durch Wert übergeben" funktioniert
- 28. Übergeben von zwei Variablen in die Pipeline
- 29. Wie übergeben Variablen an page.executescript() in Capybara
- 30. Gleiche Zeilenhöhe mit variierender Randbreite (Rand-Box)
Ja, Sie haben Recht. In meinem Fall tut der Geometrieshader eigentlich nichts mit der Geometrie zu tun, abgesehen davon, dass er Vertices verwerfen muss, daher ist es dort sinnvoll. Aber ich verstehe, dass die Anwendung von Geometrieshadern viel breiter ist, also was ich will, ist nicht machbar. Danke für die Erklärung. – SimpleMan
Es gibt sehr nützliche Geometrieshader, die die Geometrie nicht verändern. Geometrieshader sind die einzige Stelle, an der alle Eckpunkte eines Primitivs für die Berechnung verfügbar sind. Die "Single-Pass Wireframe" -Technik verwendet diese Informationen, um zusätzliche Informationen hinzuzufügen, ohne die Geometrie zu ändern. Wenn man diese Technik benutzt, ist es ein bisschen nervig alle anderen Werte zu durchlaufen. Aber wir müssen, so cest'la'vie. –