Texturskalierung für Texturlayer >1 ändern

Started by Lobby, January 01, 2014, 09:13:33 PM

Previous topic - Next topic

Lobby

Hallo mal wieder,

ich spiele zur Zeit etwas mit der Terrain-Generierung herum. Nun frage ich mich, ob es auch möglich ist für Andere Texturlayer als 1 eine Transformationsmatrix zu setzen.

Möglicherweise gibt es aber auch eine ganz andere Lösung für folgendes Problem:
Ich möchte ein Terrain so darstellen, dass es an manchen Stellen eine Sand, und an anderen Stellen eine Steintextur aufweist. Wo welche dieser Texturen angezeigt werden soll, kann ich mittels einer weiteren Textur bestimmen (das ist ja unter anderem der Sinn von Multitexturing). Das Ganze funktioniert soweit auch problemlos, nur hätte ich gerne, dass die Stein- und die Sandtextur kleiner skaliert angezeigt werden, sodass die Landschaft detailreicher aussieht (das könnte man auch lösen, indem man riesige Texturen verwendet, aber ich denke das ist keine gute Idee).

EgonOlsen

Kannst du nicht einfach für die höheren Layer andere Texturkoordinaten angeben?

Lobby

Dann müsste die Terrainklasse bereits über die Texturinformationen verfügen - stimmt, das wäre eine Lösung, auch wenn es bedeutet, dass man das Terrain neu bauen muss um es anders zu texturieren.

Nachträglich die UV-Koordinaten für verschiedene Layer zu beeinfluss ist nicht möglich, oder?

EgonOlsen

Doch, das sollte eigentlich über den PolygonManager funktionieren.

Lobby

Ok, aber wie funktioniert das? Ich meine PolygonManager.getTextureUV hat keinen Parameter für die Ebene und ich konnte bisher auch keine andere Methode finden die etwas in diese Richtung zu können scheint.

EgonOlsen

Das geht mit setPolygonTexture(). Die Variante, die eine TextureInfo als Parameter nimmt.

Lobby

Oh, das ist mir völlig entgangen *beschämt in eine Ecke stell*  :-[ .

Vielen Dank, ich denke damit lässt sich das auch relativ gut umsetzen.

Lobby

Bin nun endlich dazu gekommen es umzusetzen, zusammen mit einem Shader für die Auswahl der richtigen Textur sieht das Ganze jetzt so aus:

:D

EgonOlsen

Ja, sieht doch schon gut aus. Ist das ein konkretes Projekt oder 'nur' zu Testzwecken?

Lobby

Es ist eher zu Testzwecken, beziehungsweise ich entwickle ein paar Klassen die mir später dann hoffentlich einiges an Arbeit abnehmen können. Für den Fall, dass ich mal ein konkretes Projekt habe, irgendwann ;) .