Konstante horizontale Bandhöhen in einem polygonalen Netz unterziehen vertikale Deformation (OpenGL ES 1.1)

StackOverflow https://stackoverflow.com/questions/512414

Frage

Wenn Textur-Mapping auf einem Standard-Polygonalnetz Durchführung des üblichen Algorithmus verwenden, können Sie auf Probleme stoßen, dass im Zusammenhang mit Verformungen entlang der y-Achse in den Verformungen entlang Bändern konstanter Höhe Reihen von Quads anstelle der Eckpunkt in dieser Richtung folgen in der Lage, entlang der x-Achse, die unabhängig voneinander im Vergleich zu dehnen.

Ich bin in diesem da laufen, wenn die Scheitelpunkte des Gitters definieren, definiert jede Reihe sowohl einen Boden und einen oberen Scheitelpunkt in der oberen Reihe von Scheitelpunkten für eine Zeile resultierende oben er die untere Reihe von Scheitelpunkten für die Zeilen Sharing .

Dies ist zwar in Ordnung, wenn man nur das Netz entlang Verformen entweder der x- oder z-Achse, wenn Sie das Netz entlang der y-Achse verformen, ohne dass dies zu berücksichtigen, werden Sie sehen, dass die Reihen von Quads wirken zusammen als ein Band mit konstanter Höhe statt Reihen von unabhängigen Punkten. Sie werden Deformation des Netzes entlang der y-Achse zu sehen, aber Sie werden auch Textur Reißen, da diese Bänder nicht sehen, in der Breite ändern, um Lücken in dem Netz führen.

Hat jemand sonst laufen in diese die Vorschläge, wie man am besten hätte eine (x, y) Verschiebung Karte Filter auf ein Polygonnetz auf diese Weise konstruiert bewerben? Oder ist der Ansatz zur Definition des Netzes in einigen grundlegend ändern?

Ein Beispiel für die Netzgenerierung Algorithmus gesehen auf ZEUS OpenGL werden kann | ES Tutorial auf Texture Mapping .

Danke.

War es hilfreich?

Lösung

Ok mal sehen, ob ich die Frage zuerst verstehen.

Wenn ich Sie richtig verstehe, Sie versuchen, eine Textur abgebildet Patch zu machen. Aber dann, wenn Sie versuchen, den Patch in der vertikalen Richtung holprig, so wird es größer, die verschiedenen horizontalen Bändern aus dem Maschenreiß und Sie am Ende mit mehreren horizontalen Band von Patch.

Ist das richtig?

Wenn ja, das Problem in dem Mesh-Erzeugungsalgorithmus ist, muss die Textur-Mapping selbst unverändert bleiben. Von dem, was ich auf dem angegebenen Link, die Ecken zwischen den einzelnen horizontalen Streifen sehen können nicht freigegeben werden, werden sie dupliziert. Also, wenn Sie den Abstand zwischen dem oberen Ecken skalieren, müssen Sie auch die Bandhöhe skalieren, so dass die unteren Ecken die nächste Zeile oben vertice passen.

Die Grundlagen des Algorithmus arbeiten, müssen Sie nur beide Reihenabstand und Zeilenhöhe einzustellen. Wenn Sie ein bisschen mehr verstehen, wie primitive Listen arbeiten, können Sie über indiziert Primitiven lernen. Diejenigen, werden Sie tatsächlich Ecken lassen teilen, anstatt sie für jeden primitiven duplizieren.

Hoffe, es hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top