Per Histogramm die Effizienz einer UV-Textur einschätzen

Bei der Erstellung einer Pixel-genauen Textur für ein 3D-Modell kommt es darauf an, möglichst viel der Informationen im Bild zu nutzen und auf das 3D-Modell abzubilden. Da die Bilddatei eine feste Größe hat und somit der Speicher in jedem Fall beim Laden der Textur belegt wird, ist jeder ungenutzte Pixel im Grunde verschwendete Rechenkapazität. Zwar ist es fast nicht möglich, wirklich 100% der Textur auszunutzen, weil die Objektgeometrie in der Regel aus unregelmäßig geformten Flächen besteht, doch man kann zumindest versuchen, den Platz so weit wie möglich auszunutzen. Die Histogrammfunktion von Photoshop und Gimp enthält eine Funktion zur Pixelzählung, die wir einsetzen können, um die Verteilung von belegten und ungenutzten Pixeln zu messen.

So stellst Du per Histogramm fest, wie viele Pixel ungenutzt sind (ungefähr)

Um festzustellen, wie viel Fläche ungefähr ungenutzt ist, kannst Du das Histogramm in Photoshop bzw. Gimp einsetzen:

1. Öffne die UV-Textur in Photoshop oder Gimp und lege eine neue, transparente Ebene an

Zeichne in diese Ebene mit einer grellen Farbe die ungenutzten Flächen ein. Du kannst in Photoshop auch eine Form-Ebene verwenden, musst diese dann aber rastern, bevor Du zum nächsten Schritt gehst.

Freie Flächen markieren

Freie Flächen markieren

2. Öffne das Fenster „Histogramm“

In Photoshop: Menü Fenster > Histogramm In Gimp: Menü Farben > Information > Histogramm

3. Wähle die Ebene aus und lies die Pixelzahl ab

Nur in Photoshop: Wähle im Histogramm-Fenster als Quelle: Ausgewählte Ebene.

Lies die Anzahl der Pixel Deiner Ebene im Feld „Pixel“ im Histogramm-Fenster ab. Im Beispiel unten belegen die grünen Pixel 6740 Pixel.

Ablesen der Pixelzahl im Histogramm

Ablesen der Pixelzahl im Histogramm

4. Ermittle die Pixel des gesamten Bildes

Du kannst entweder die Länge und Breite des gesamten Bildes multiplizieren, d.h. z.B. 256 × 256 = 65536 oder die Größe ebenfalls im Histogramm ablesen:

  • In Photoshop setze Quelle auf Gesamtes Bild und lies erneut Pixel ab.
  • In Gimp brauchst Du eine Ebene in der Bildgröße ohne Transparenz, um den Pixel-Wert im Histogramm ablesen zu können. Wenn Dein Texturbild keine Transparenz enthält, kannst Du dieses nehmen. Ansonsten eine neue vollfarbige Fläche hinzufügen und auswählen oder die Pixelzahl eben einfach anhand der Bildgröße ausrechnen.

5. Teile die Anzahl der Ebenen-Pixel durch die der Gesamt-Pixel, um einen Prozentwert zu erhalten

In meinem Beispiel hat die Ebene 6740 Pixel und das Bild insgesamt 65536 Pixel.

6740 / 65536 = 0,10284423828125 0,10 = 10%

In meinem Bild sind also ca. 10% Fläche ungenutzt.

Ein ungefährer Anhaltspunkt

Natürlich ist diese Messung nicht vollkommen exakt, zumal nicht alle leeren Pixel markiert wurden und es sowieso schwierig ist, hier hundertprozentig zwischen ungenutzt und genutzt zu unterscheiden. Vor allem entlang der Kanten zeichnet man in der Praxis meist einige Pixel größer als die eigentliche UV-Projektion ist. Damit lässt sich sicherstellen, dass die Texturfarbe das Modell immer ganz abdeckt, auch wenn es zum Beispiel durch Skalierung der Textur zu rechnerischen Überblendungen kommt.

Es geht aber auch nicht darum, eine technisch präzise Maßangabe zu bekommen. Viel mehr soll der hier vorgestellte Ansatz helfen, relativ große Leerräume einschätzen zu können. Große leere Bereiche in der Textur lassen sich meistens durch ändern des UV-Mappings verbessern.

 

Werbung

 

Dr. René Bühling

Hi, mein Name ist René und ich möchte Dir dabei helfen, deinen Traum vom eigenen Computerspiel Wirklichkeit werden zu lassen. Mein erstes kommerziell veröffentlichtes Spiel habe ich Mitte der 1990er Jahre als Hobby-Projekt mit einem Basic-Dialekt unter Windows entwickelt. Seither verfolge ich das Thema Spieleentwicklung in Hobby, Studium und Beruf. Ich habe über 20 Jahre Erfahrung in allen Phasen des Entwicklungsprozesses, die ich gerne mit dir teilen möchte.