Die Textur des Bildes ist möglicherweise gedehnt?

Ich bin von Stack Overflow herübergekommen, ich bin mir nicht sicher, ob dies der richtige Ort ist, um diese Frage zu stellen, ich möchte mich im Voraus entschuldigen. Ich habe gerade ein paar isometrische Karten fertiggestellt, die erste Karte ist ein Bild mit einer Größe von 28712 x 27744. Ich weiß, wie groß das ist. Der Grund dafür ist, dass mein Bildschirm (basierend auf den Rückgabewerten meines Programms) eine Größe von 3840 x 760 (Vollbild) zurückgibt, das Programm (ein RPG-Spiel) sollte in der Lage sein, diese Größe aus dem Bild zu projizieren und das Scrollen entlang des x und zu ermöglichen y-Achse des Bildes, da das Bild als Karte dient.

Das Bild wurde bei Inkscape erstellt. Aber ich plane, eine Textur bei GIMP zu erstellen, die Sache ist, dass es verdammt viel Zeit braucht, also habe ich versucht, das Bild aus Inkscape in halber Größe des Originals zu exportieren, aber GIMP läuft immer noch ziemlich langsam. Ich dachte daran, kleiner zu werden, aber ich befürchtete, dass das Bild im Spiel verschwommen erscheint (ich verwende keine kommerzielle Engine, sondern eine persönlich erstellte Engine, also versuche ich, die Ressourcen leichter anzupassen).

Meine Frage ist: Gibt es eine Möglichkeit, dies zu texturieren, ohne dass mein PC wie eine Schnecke verarbeitet? ODER Wenn es keine andere Möglichkeit gibt, als wenn ich es verkleinern würde, habt ihr irgendwelche Techniken, wie ich die Texturierung angehen sollte, damit sie nicht blockig erscheint, wenn sie vergrößert wird? Ein Beispiel wären diese alten 2D-RPG-Spiele (normalerweise aus der PS2-Ära). Mir ist aufgefallen, dass die Textur, egal wie gigantisch der Bildschirm wird, nicht wirklich so aussieht, als würden Sie auf ein Pixel schauen, sondern wie Sie suchen ein richtiges Bild.

Es tut mir wirklich leid, wenn dies der falsche Ort ist, ich habe überlegt, ob ich dies bei gamedev oder graphicsdesign posten sollte, obwohl ich mich für gd entschieden habe, da ich vielleicht mehr Leute bekomme, die richtige Tipps haben.

Haben Sie versucht, Ihr Bild direkt in Inkscape prozedural zu texturieren?
Das habe ich schließlich getan. Ich musste nur die Filter auf Inkscape vermeiden, da sie die Exportzeit und -größe verbesserten.
Im Moment ist dies ein großer Beschluss, der verarbeitet werden muss. Arbeiten Sie auf einem Linux-Rechner?
Ich arbeite an einem Windows, ich verarbeite nicht wirklich das ganze Bild. Stattdessen bekomme ich nur einen Teil des Bildes und verarbeite das.
Ich verstehe. Meiner Erfahrung nach ist GIMP auf demselben Computer viel schneller, wenn ich mit Linux boote. Wie auch immer, viel Glück für Ihr Spiel!
Wirklich? Ich werde das überprüfen. Danke!
weiterführende Literatur: Megatexture ( gamedev.stackexchange.com/questions/1157/… ) etc.

Antworten (3)

Ich bin kein Experte für Spieleentwicklung. Aber ein Bild mit 28712 x 27744 als 8-Bit-RGB-tif ist in Photoshop etwa 2,2 Gigabyte groß. Ich habe ein Testbild erstellt. Auf dem Mac Os sind es 2,4 G auf der Festplatte. Ich konnte es in Gimp öffnen, aber es hat eine Weile gedauert. Das Bild stürzte das Filter-Plug-in ab, das ich zu verwenden versuchte. Ich denke, GIMP hat Probleme mit großen Dateigrößen. Sie könnten versuchen, jemanden zu finden, der GIMP besser kennt als ich. Möglicherweise gibt es einige Einstellungen, die Sie ändern könnten ... Denken Sie daran, dass Sie, wenn Sie von Inkscape zu GIMP wechseln, von einem Vektorprogramm (glaube ich) zu einem Bitmap-Programm wechseln. Ich denke auch, dass sie in Spielen eine prozedurale Möglichkeit haben, von Lorez-Bildern zu großformatigen Ansichten und einer höheren Auflösung zu wechseln, wenn Sie hineinzoomen.

Hmmm, meins ist 9 MB groß. Es wurden sogar Farben separat hinzugefügt, sodass ich eine Farbe auswählen und eine Textur für diese Farbe anwenden konnte.
Nun, 3D-Spiele lesen Polygone nicht aus der Ferne, aber sie werden aus der Nähe präziser. Ich habe eine Recherche zu 2D-Spielen durchgeführt und etwas über diese Pixelkunst bemerkt, wenn sie gezoomt wird, halten sie diese Pixel immer noch fest, weshalb sie es nicht sind verschwommen. Am Ende verwenden alle nur ein Bild. Ich bin nicht einmal gut darin, eine Farbe für ein Bild auszuwählen, umso mehr dafür, Pixelkunst zu machen, ahahahahha, aber danke.

Sie können und sollten das Bild wahrscheinlich in Kacheln zerschneiden. Dadurch kann Ihr Gane jedes Segment separat in den Speicher der Grafikkarte laden. Aber als Nebeneffekt erleichtert es dir das Texturieren.

PS, bevor Sie fortfahren, vergewissern Sie sich, dass Ihre Spiel-Engine nicht an Ihrer Texturgröße erstickt. Viele Grafiksysteme haben ein Texturlimit von 8k. (obwohl es mehrere davon haben könnte)

Ich habe dies getan und die Renderzeit genommen, die Renderzeit für das Originalbild war schneller. Ich denke darüber nach, die Texturierung stattdessen bei Inkscape zu machen, aber danke.

Der beste Weg, dies zu tun, wäre, das Bild in viele kleinere "Stücke" (nur kleinere Bilder) aufzuteilen. Während sich Ihr Charakter im Spiel bewegt, zeigt er nur die Teile an, die auf dem Bildschirm zu sehen sind. Dadurch wird etwas RAM freigegeben, während das Spiel läuft. Es kann etwas lästig sein, auf mehrere separate Chunks zu malen und sie gleichzeitig nahtlos zu halten, aber es hilft auf lange Sicht bei der Spielleistung. Denn auf Computern der unteren Preisklasse kann ein Bild mit 28712 x 27744 die Leistung stark beeinträchtigen.