Author Topic: Texturskalierung für Texturlayer >1 ändern  (Read 2764 times)

Offline Lobby

  • int
  • **
  • Posts: 66
    • View Profile
    • flowersoft
Texturskalierung für Texturlayer >1 ändern
« on: January 01, 2014, 09:13:33 pm »
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).

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11776
    • View Profile
    • http://www.jpct.net
Re: Texturskalierung für Texturlayer >1 ändern
« Reply #1 on: January 02, 2014, 12:53:43 pm »
Kannst du nicht einfach für die höheren Layer andere Texturkoordinaten angeben?

Offline Lobby

  • int
  • **
  • Posts: 66
    • View Profile
    • flowersoft
Re: Texturskalierung für Texturlayer >1 ändern
« Reply #2 on: January 02, 2014, 02:10:53 pm »
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?

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11776
    • View Profile
    • http://www.jpct.net
Re: Texturskalierung für Texturlayer >1 ändern
« Reply #3 on: January 02, 2014, 02:17:42 pm »
Doch, das sollte eigentlich über den PolygonManager funktionieren.

Offline Lobby

  • int
  • **
  • Posts: 66
    • View Profile
    • flowersoft
Re: Texturskalierung für Texturlayer >1 ändern
« Reply #4 on: January 02, 2014, 02:31:53 pm »
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.

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11776
    • View Profile
    • http://www.jpct.net
Re: Texturskalierung für Texturlayer >1 ändern
« Reply #5 on: January 02, 2014, 02:37:54 pm »
Das geht mit setPolygonTexture(). Die Variante, die eine TextureInfo als Parameter nimmt.

Offline Lobby

  • int
  • **
  • Posts: 66
    • View Profile
    • flowersoft
Re: Texturskalierung für Texturlayer >1 ändern
« Reply #6 on: January 02, 2014, 02:40:11 pm »
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.

Offline Lobby

  • int
  • **
  • Posts: 66
    • View Profile
    • flowersoft
Re: Texturskalierung für Texturlayer >1 ändern
« Reply #7 on: January 03, 2014, 12:46:43 am »
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

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11776
    • View Profile
    • http://www.jpct.net
Re: Texturskalierung für Texturlayer >1 ändern
« Reply #8 on: January 03, 2014, 03:45:32 pm »
Ja, sieht doch schon gut aus. Ist das ein konkretes Projekt oder 'nur' zu Testzwecken?

Offline Lobby

  • int
  • **
  • Posts: 66
    • View Profile
    • flowersoft
Re: Texturskalierung für Texturlayer >1 ändern
« Reply #9 on: January 03, 2014, 04:32:02 pm »
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 ;) .