Wireframe-Shader - Problem mit Schwerpunktkoordinaten bei Verwendung gemeinsamer Scheitelpunkte

Ich arbeite daran, in WebGL ein Terrain zu zeichnen. Das Problem ist, dass ich nur 4 Eckpunkte verwende, um ein einzelnes Quad zu zeichnen, indem ich Indizes verwende, um Eckpunkte zu teilen. Daher kann ich keine eindeutigen barizentrischen Koordinaten für jeden Scheitelpunkt hochladen, da diese gemeinsam genutzt werden.

Hier ist ein Bild, das das Problem deutlicher zeigt.

Es gibt keine Schwerpunktkoordinate, die ich für das Fragezeichen verwenden kann. (0,1,0) wird oben links verwendet, (0,0,1) wird oben verwendet und (1,0,0) wird links verwendet. Ich kann das also auf keinen Fall tun, wenn ich Indizes verwende, um die Anzahl der Scheitelpunkte zu speichern.

Kann ich wirklich so viel Leistung sparen, wenn ich ein Quad mit 4 statt 6 Eckpunkten zeichne? Wenn nicht, ist dies der einfachste Weg, um mein Problem zu beheben. Aber ich bin immer noch neugierig, ob es einen Weg gibt, wie ich es mit geteilten Vertices machen kann.

Ich bin mir bewusst, dass ich mein Terrain mit GL_LINES im Drahtmodell zeichnen kann, aber ich mag diese Methode nicht. Ich möchte mehr Kontrolle über mein Drahtmodell haben (z. B. nicht transparent machen).

Einige Leute fragen sich vielleicht, warum ich baryzentrische Koordinaten verwende, um mein Terrain im Drahtgittermodus zu zeichnen. Das liegt daran, dass es in dieser Demo gut funktioniert:

http://codeflow.org/entries/2012/aug/02/easy-wireframe-display-with-barycentric-coordinates/

Im Grunde sind es zwei Dinge, die ich suche:

Verliere ich beim Zeichnen meines Terrains, in dem jedes Quad 6 statt 4 Eckpunkte verwendet, viel Leistung? Denn wenn nicht, dann würde das mein Problem lösen, indem ich keine Vertices teile.Ist es möglich, eine eindeutige Schwerpunktkoordinate für 4 Scheitelpunkte zu haben, die zum Zeichnen eines einzelnen Quadrats gemeinsam genutzt werden?

Vielen Dank!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage