TVTower icon indicating copy to clipboard operation
TVTower copied to clipboard

Grafikfehler Pflanzen

Open nittka opened this issue 2 years ago • 8 comments

Ich habe mal geschaut, wo man die Pflanzen verschieben kann... Hast Du bei Dir auch die Streifen neben einigen der Pflanzen oder ist das wieder ein veraltetes Modul bei mir pflanzen ?

nittka avatar Apr 23 '22 10:04 nittka

Ich hab da an sich keine Fehler...kann Texture bleeding sein. Da muessten wir zwischen den jeweiligen Sprites einen Pixel Platz lassen. Kann gerne die Tage meinen Sprite Atlas Packer entstauben bzw was entwickeln, was erstmal die alten Atlasse zerschneidet...und dann wieder nach neuen Regeln zusammensetzt

GWRon avatar Apr 23 '22 10:04 GWRon

lonk per discord chat:

bei DirectX9 hab ich außerdem den kleinen Schönheitsfehler, daß an den einzelnen Zuschauern ein halber rosa Rahmen drumherum ist: image

GWRon avatar Dec 28 '22 08:12 GWRon

Ist das was, was sich noch "schnell" für die nächste Lieferung beheben lässt?

nittka avatar Nov 19 '23 15:11 nittka

@GWRon : Ich vermute, Du hast diese Grafik-Probleme bei Dir nicht. Der Rahmen bei der Fernsehfamilie ist mir nicht da, bei der Pflanze schon...

nittka avatar Dec 06 '23 11:12 nittka

Als schneller "Test": Kannst du die entsprechende Grafikdatei oeffnen, mit dem "Zauberstab" auf die rosanen Linien klicken und dann "löschen" (damit sie transparent werden) ?

Danach sollten die "weg" sein.

Wenn Sprites auf einem solchen Spritesheet ohne "Abstand" sind (also Pixel an Pixel), wuerden die Raender der anderen Sprites statt der rosa Linie erscheinen. Generell sollten wir da ein "Padding" einfuehren um das zu vermeiden.

Ich vermute, du spielst "skaliert" und nicht direkt mit 800x600 ? Rundungsfehler bei der Texturskalierung (bzw wenn es Floats wieder auf Ints runterbaut ...) sorgen da denke ich dafuer (in GL oder im Max2DBackend ?).

GWRon avatar Dec 06 '23 11:12 GWRon

Achso .. .rosa trifft nur auf die entsprechenden Spritesheets zu.

building_elements.png hat keine ... da sind es eben die "Nachbarsprites" die durchscheinen.

Ich denke da braucht es ein "schickes" Tool, was die existierenden Spritesheets auseinanderpflueckt, dann mit "rahmen + padding" versieht und dann neu (optimiert) in ein Spritesheet packt. Kann ich die Woche gerne basteln. Das generierte "XML" dazu (bzw einfach nur "sprite, x,y, w,h") mit dem existierenden XML dann zu verschmelzen -denke das wird derzeit besser manuell gemacht :)

GWRon avatar Dec 06 '23 11:12 GWRon

Tatsächlich taucht der Pflanzenfehler bei mir nur in der Entwicklungsvariante (Fenstermodus 1024x800) auf. Wenn ich das Spiel im Vollbild-Modus starte, gibt es das Problem nicht.

nittka avatar Dec 06 '23 11:12 nittka

Wie gesagt liegt das an der Skalierung von Texturen.

Derzeit skalieren wir jede Textur hoch - und die Matrix dafuer (die man an OpenGL schickt) hat Kommazahlen - und irgendwann wird sicher auf Integer gerundet. Das sorgt dafuer, dass mal von der originalen Textur ein Pixel "mehr" von links, oben, rechts oder/und unten geholt wird. Das kann auch fuer leichte Unschaerfe der Pixeldaten sorgen (da ja nun mehr "Pixel" auf die Zielflaeche projeziert werden).

Das neue "Render2Texture" macht das anders: dort werden die originalen Pixeldaten (also unskaliert) auf eine Textur gepackt und erst DIE wird am Ende skaliert auf den Bildschirm gebracht. Man erzeugt somit auch (optional) "Anti-Aliasing" zwischen den verschiedenen Sprites sonst "jedes fuer sich" betrachtet wird.

GWRon avatar Dec 06 '23 11:12 GWRon