2013-10-03 16 views
5

Ich habe Probleme mit der Dehnung von Sprites in LibGDX.LibGDX Skalierung 2d Grafik

Ich habe eine png-Datei für den Himmel im Spiel (1x1000 Pixel) und ich will es 1000x1000px

sprite.setSize(pixelWidth,pixelHeight); 

bearbeiten tun: Hier ist das Bild, das ich strecken will - sky. Es hat wenig Steigung von oben nach unten, wie Sie sehen können. Ich möchte es 1000px in der Breite machen. Ich erwarte ein Bild mit einer Farbänderung in der Breite.

Aber ich habe dieses seltsame Ergebnis: Image Image

Sie können sehen, dass es so etwas wie Gradienten in der Breite ist, auch mit Linien, aber ohne Grund, weil ich 1px Bild am Skalierung ...

Das seltsame ist, dass alles auf anderen PCs und Handys gut aussieht ... Aber ich glaube nicht, dass das Problem in meinem PC ist !?

Ich weiß nicht, was ich versuchen soll ... Irgendwelche Ideen?

Sorry, wenn ich es nicht sehr gut .. und sorry erklärt für mein schlechtes Englisch

Final: Aus der Filterung war. Ich änderte die Filter von linear zum nächsten und alles war in Ordnung

+0

Sie müssen uns sagen, was die Das Problem ist! Tatsächlich, dass Sie Farbunterschiede sehen können? Wenn es eine Textur mit höherer Auflösung ist. Und es könnte sein, dass es nur Ihr Monitor, der nicht genug Farben für ein gutes Ergebnis zeigt. – BennX

+0

Entschuldigung. Ich habe das Thema bearbeitet. Mein Monitor ist Acer AL511 – user2842461

Antwort

2

Ich verstehe nicht, was Ihre Frage wirklich ist aber ein guter Weg, einen Sprit zu skalieren wie diese

sprite.setSize(scrw * 0.16f, scrw * 0.16f); 

ist hier SCRW wird Breite Ihres Ansichtsfensters

0

Ich denke, das passiert nur wegen der Interpolation. Wenn dein Sprite und deine gegriffene Region der Textur eine Breite von 1 px haben und du das Sprite auf die Bildschirmbreite skalierst, interpoliert die GPU einige Farbwerte und verwendet Farben von Pixeln in der Nachbarschaft in der Textur.

Sie könnten versuchen, Ihren Farbverlauf zu einer 3px breiten Textur zu ändern und Ihr 1px breites Sprite aus der Mitte der 3 px herauszunehmen. Die GPU interpoliert weiterhin die Farben und verwendet Pixelfarben der Nachbarschaft, aber da sie gleich sind, wird es in Ordnung aussehen.

Hier ein Bild, wie Sie Ihre textureregion wahrscheinlich wie im Moment, und sein Greifbereich aussieht, und im Anschluss an die textureregion wie es sein und seinen Greifbereich aussehen:

enter image description here