2017-03-22 4 views
0

Ich frage mich, ob ein Tessellation Evaluation Shader (TES) irgendwie Nachbarschaftsinformationen ausgeben kann, die dann von einem Geometry Shader (GS) verwendet werden können.OpenGL TES, möglich, um Informationen zur Umgebung in der Ausgabe zu haben?

Nehmen wir als Beispiel eine TCS/TES-Kombination, die einige Isocurves unter Verwendung von layout (isolines, equal_spacing, ccw) in rendert. Anschließend layout (lines) in im GS arbeitet, obwohl layout (lines_adjacency) in nicht funktioniert. Ich weiß, dass Adjazenzinformationen explizit bereitgestellt werden müssen, wenn kein TCS/TES vorhanden ist (z. B. unter Verwendung einer aktualisierten Liste von Indizes und glDrawElements unter Verwendung von GL_LINES_ADJACENCY), aber gibt es eine Möglichkeit, die TES diese Informationen generieren zu lassen? Lesen this section Es scheint, dass diese Informationen nicht automatisch generiert werden können - hoffentlich übersehen ich etwas. Die Anwendung, die ich im Sinn habe, besteht darin, dicke glatte Kurven zu zeichnen, d. H. Zuerst viele Scheitelpunkte zu erzeugen und sie mit Liniensegmenten unter Verwendung von Tessellation zu verbinden und diese Liniensegmente anschließend durch Dreiecksstreifen zu ersetzen, wie erläutert here.

Eine sehr ähnliche Frage wurde vor here gestellt, bisher ohne schlüssige Antwort.

Antwort

0

Der Generator für Tesselation-Primitive generiert nur Sequenzen von Punkt-, Linien- oder Dreieck-Primitiven basierend auf der abstract patch type und point_mode Generation. Es erzeugt niemals Streifen/Fans/Listen und schon gar keine Adjazenz-Primitive.

Was Sie wollen, würde besser behandelt werden, indem die TES zusätzliche Daten pro Vertex generiert, die der GS verwendet, um zu tun, was auch immer Sie die Umgebung Informationen für wollten.

Verwandte Themen