Frage

Ich bin mit Löve2D für ein kleines Spiel zu schreiben. Löve2D ist eine Open-Source-Spiel-Engine für Lua. Das Problem, das ich bin der Begegnung ist, dass einige Anti-Aliasing-Filter automatisch auf Ihre Sprites angewendet, wenn Sie es bei nicht-ganzzahligen Positionen ziehen.

love.graphics.draw( sprite, x, y )

Also, wenn x oder y nicht rund ist (zum Beispiel x = 100,24), erscheint das Sprit verschwommen. Das gleiche geschieht, wenn die Sprite-Größe nicht gerade ist, weil (x, y) auf die Mitte des Sprites. Zum Beispiel wird ein Sprite, das ist 31x30 groß wieder verschwommen erscheint, weil seine Pixel in nicht-ganzzahligen Positionen gemalt werden.

Da ich Pixel-Kunst verwenden, ich mag diese ganz zu vermeiden, da sonst die Kunst durch diesen Effekt zerstört wird. Die Abhilfe, die ich so weit bin mit den Koordinaten zu zwingen rund sein, indem Sie den Code mit Anrufen Littering () Math.floor und zwang all Sprites sogar Größen haben, indem Sie eine Zeile oder Spalte von transparenten Pixeln mit dem Malprogramm Hinzufügen wenn nötig.

Gibt es einen Befehl, um das Anti-Aliasing deaktivieren ich beim Programmstart anrufen kann?

War es hilfreich?

Lösung 3

Falls es jemand interessiert, ich habe an anderen Orten gefragt und fand heraus, dass das, was ich frage bereits als Funktion angefordert wird: http://love2d.org/forum/tracker.php?p=2&t=7

So ist die aktuelle Version der Liebe, die ich verwende (0.5.0) noch erlaubt nicht die Anti-Aliasing-Filter zu deaktivieren, aber die Funktion ist bereits in der SVN-Version des Motors.

Andere Tipps

Wenn Sie deaktivieren Anti-Aliasing Sie nur Aliasing erhalten, daher der Name! Warum zeichnen Sie bei nicht-ganzzahligen Positionen, und was wollen Sie es über diese Bruchteile zu tun? (Round sie auf den nächsten Wert? Sie Kürzen? Was ist, wenn sie sind negativ?)

Persönlich würde ich die niedrigen Niveau Grafiken in Ruhe lassen und Ihren Code ändern Accessoren für x und y zu verwenden, die die Runden oder Kürzen durchführen, die Sie benötigen. Dies garantiert Ihre Pixel-Art-up endet am ganzzahligen Grenzen gezogen, während halten die Anti-Aliasing auf, dass Sie später benötigen.

Eine weitere mögliche Arbeit um möglicherweise Math.floor () verwenden Ihre ganzen Zahlen als billige Abhilfe runden.

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