Jump to content
Unity Insider Forum

Textur Größe


Kojote

Recommended Posts

Grüße!

Mal eine Frage zur Textur Größe in bezug auf PC und Mobile Anwendung. Ich erhalte da im Internet verschiedene größen. Von 256 - 4096 ist alles dabei. Darum mal die Frage, was meint ihr? Welche Textur Größe sollte man als PC Spiel verenden und welche für mobile Spiele?

Was sind eure Erfahrungen? Des weiteren, nehmt ihr für jedes Objekt eine neue Textur oder packt ihr mehrere Sachen in eine große Textur?

Grüße von Kojote

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also Im Prinzip kann man schon sagen, dass man auf Mobilen Devices niedrigere Auflösung nehmen sollte. Ich hatte schon die Erfahrung gemacht, dass eine 4096 große Textur mein PC super angezeigt hat, aber mein Handy das nicht geschafft hatte. Allerdings werden die Geräte immer besser und es kommt letztendlich nur noch darauf an, wo du die Textur einsetzt und ob der Spieler es überhaupt merken würde, wenn man ein paar Texturen einfach niedriger auflöst um die Performance zu fördern. Ich verwende immer so geringe Größen wie möglich und benutze lieber mehrere kleine Texturen als eine Große. 

Aber wie gesagt, es kommt halt eben drauf an.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Meine Lieblingsantwort auf die Frage ist natürlich die gute einstellbare Grafikqualität :D

witcher-3-textures-l-5.jpg

Es gibt Handys, die besser sind als einige PCs, also kann man da sonst nichts pauschal drauf antworten. Mal davon abgesehen bestehen einige auf 60 FPS und andere präferieren hübschere Bilder, aber dafür nur 30 davon pro Sekunde.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich ( in sehr seltenen Fällen ) Texturen erstelle, nehme ich eigentlich immer 2048 / 4096 und skaliere dann auf 1024 etc. runter.

Das kommt natürlich auch etwas auf deinen Anwendungsfall an.. wenn es um ehr simplen Cartoonstyle geht oder Fotorealismus

 

Aber wenn man anfängt alle Texturen in 512er Größe zu erstellen, ist es später sehr aufwendig, wenn man doch eine höhere Auflösung möchte.

Mit hochauflösenden 'Basistexturen' lässt sich leichter noch was dran schrauben, wenn die Performance darunter leiden sollte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Genau, wie Mr 3D sagt.
Ich hab mich auch schon einige Male geärgert, weil ich die Texturgröße zu klein gewählt hatte. Wenn man dann sieht, dass die Details fehlen, kann man nichts mehr machen und fängt von vorne an. Ist die Textur aber im Original schön groß, hat man viel mehr Spielraum. Du kannst dann in Unity einfach sagen, welche Texturgröße genommen werden soll. Nach unten geht ja immer. Nach oben aber nie. Das Build wird dann echt nur die Texturgröße im Spiel haben, die du auch eingestellt hast. Unity spart also selbstständig den Speicher ein, ohne dass du die große Textur selber in nem Grafikprogramm neu skalieren müsstest.
Wie groß eine Textur dann wirklich sein muss, siehst du ja selber im Editor.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Man könnte auch noch erwähnen, daß die jeweilige Texturauflösung natürlich auch zur Auflösung des Displays und der dargestellten Maximalgröße der Objekte die im Spiel dargestellt werden im Verhältnis stehen sollte, d.h. wenn man beispielsweise eine maximale Displayauflösung des Zielgerätes von 640x480 hat und die Objekte des Spiels werden nie grösser als 1/3 der Gesamtfläche des Displays dann reicht eine Texturauflösung vom 256x256 vollkommen aus. Man könnte die Texturauflösung also abhängig vom Zielgerät machen und von der Darstellungsgröße des jeweiligen Objektes im Spiel. Dies kann man nun noch soweit treiben, daß man für unterschiedliche LODs noch einmal zusätzlich unterschiedliche Texturauflösungen verwendet.
Zur 2. Frage, ja es macht Sinn verschiedene (vor allem kleinere) Texturen in einem Texturatlas zu kombinieren. Gleichartige Objekte können sich dann diesen Atlas teilen (wie verschiedene Teile eines Hauses) und dadurch dasselbe Material verwenden, was wiederum einen Performancegewinn bringt. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, eine große Ausgangsgröße zu haben ist mit bewusst. Runter rechnen kann mans ja immer noch. Ging nur im allgemeinen darum ob es Größen gibt, die man für bestimmte Anwendungsfälle eher in Betracht ziehen sollte. DDS Dateien haben ja verschiedene Auflösungen gespeichert, zweifle aber gerade daran, dass dies:

1. Gute für mobile Performance ist.

2. Die von mobilen Plattformen unterstützt werden können. Die größte Auflösung bei mobilen Geräten habe ich gerade mit den Werten 1280 x 800 gefunden. Da wäre 512 x 512 gar keine schlechte Idee.

Zu ZerOCool´s Idee, die Grafiken Displayabhängig zu machen, wie mache ich das bei Unity?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn es dir um Mobile geht, dann solltest du nur Texturen erstellen die PowerOfTwo sind. Also in der Regel quadratisch sind und ein Vielfaches der 2 haben. 128,256,512 usw.
Denn nur diese lassen sich auch komprimieren wenn du zusätzlich MipMap nutzen willst. (Und das will man meist). Und um überhaupt komprimiert werden zu können (auch ohne MipMap), musst du schon mindestens ein Format wählen, welches sich durch 4 teilen lässt.
Aber selbst wenn du das nicht so erstellt hast, kann Unity dir dabei helfen und die Bilder PowerOfTwo machen.
Also ist alles gar nicht so schlimm.

Welche Maximaltexturgrößen von nem Handy oder Tablet genutzt werden können ist abhängig vom Chip, der da drin ist, und dem Betriebssystem. Das kann sehr unterschiedlich sein, gerade wenn du die alten Generationen mit berücksichtigen willst. Alle sollten aber 2048x2048 können.

Willst du sicher gehen, musst du dir die Infos der Hersteller besorgen.  Mit PowerOfTwo und maximal 2048x2048 solltest du aber auf der sicheren Seite sein.
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 12 Stunden schrieb Zer0Cool:

Zur 2. Frage, ja es macht Sinn verschiedene (vor allem kleinere) Texturen in einem Texturatlas zu kombinieren. Gleichartige Objekte können sich dann diesen Atlas teilen (wie verschiedene Teile eines Hauses) und dadurch dasselbe Material verwenden, was wiederum einen Performancegewinn bringt. 

Ein Texturatlas kann aber auch ein zweiseitiges Schwert sein.
Z.b. wenn aus einem Set von Objekten, die sich eine Textur teilen, nur ein Objekt in einer Szene benutzt wird, und das im schlimmsten Fall mehrfach vorkommt.

Man sollte sich genau überlegen, ob ein Atlas auch einen Sinn macht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Stunden schrieb runner78:

Ein Texturatlas kann aber auch ein zweiseitiges Schwert sein.
Z.b. wenn aus einem Set von Objekten, die sich eine Textur teilen, nur ein Objekt in einer Szene benutzt wird, und das im schlimmsten Fall mehrfach vorkommt.

Man sollte sich genau überlegen, ob ein Atlas auch einen Sinn macht.

Ja leider und nicht nur das. Ich habe aktuell ein noch größeres Problem mit 3D-Assets und die kommen meistens mit einem Texturatlas. Wenn man nun aber ein Modell aus diesem Asset skaliert (beispielsweise Meshes für das Erstellen eines Hauses), dann kann man das Material dieses Modells nicht mehr über das Materialtiling an die neue Größe anpassen, da hierdurch die Texturen der anderen Modelle ins Tiling mit übernommen werden. Leider habe ich kein Asset oder Werkzeug gefunden über welches man ein Tiling auch im Zusammenspiel mit einem Texturaltas durchführen kann. Bei solch einem Tool müsste man eigentlich die Teiltexturen markieren (oder eine automatische Erkennung) und dann sollte dieses Tool das Tiling nur innerhalb der Teiltexturen durchführen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...