Main Menu

Texture Aufteilung

Started by Telix, November 25, 2013, 07:24:07 PM

Previous topic - Next topic

EgonOlsen

Dieser Rand kommt vom bilinearen Texturfilter, der quasi Teile vom anderen Texturrand mit verrechnet. Das kannst du verhindern, indem du auf der "Schattentextur" ein setClamping(true); ausführst.
Ansonsten: Wenn du ohnehin die Objekte aus Einzelpolygonen baust, dann bau sie doch gleich richtig. Sprich: Es gibt addTriangle-Methoden, die gleich die Texturen mit übergeben bekommen. Dann brauchst du keinen PolygonManager.

Telix

unter android hat die methode addTriangle leider nur ein parameter für TextureID nicht für TextureInfo.
Gibt es noch ein anderen Weg? Gibt es ein Problem / Issue im PolyManager?


Telix

Nun habe ich nur noch schwarze Polys


TextureInfo stoneTex = new TextureInfo(TextureManager.getInstance().getTextureID(textureName));
stoneTex.add(TextureManager.getInstance().getTextureID("fow_left"), TextureInfo.MODE_MODULATE);

// Upper
addTriangle(upperLeftBack, upperLeftFront, upperRightBack, stoneTex);
addTriangle(upperRightBack, upperLeftFront, upperRightFront, stoneTex);




EgonOlsen

Weil du keine Texturkoordinaten mehr setzt. Die müssen in die TextureInfo mit rein.

Telix

Das hat funktioniert :) danke!

Telix

was bewirkt genau setClamping(true);?

Hab es nun auf jeder Texture. Kann das schaden? Performance Verlust?

EgonOlsen

Das bewirkt, dass Texturkoordinaten <0 und >1 nicht wrappen, sondern beim Maximalwert gekappt werden. Also wenn die Koordinate z.B. 1,5 ist, dann wird daraus mit Clamping 1 und ohne 0,5.  Für die Performance ist es egal. In deinem Fall ist es vermutlich sinnvoll, dass für alle Texture zu setzen.