DE:OSM-4D/Generic textures

From OpenStreetMap Wiki
Jump to navigation Jump to search

Die Seite beinhaltet die Beschreibung generischer Texturen für 3D Stadtmodelle welche auf der Seite DE:OSM-4D dokumentiert sind.

Beschreibung

Vorgesehen ist eine Texturgröße von 64x64 Pixel. Texturen bestehen aus einem Hintergrund mit beliebigem RGB Wert sowie aus einem oder mehreren Rechtecken (die gewöhnlich Fassadenöffnungen repräsentieren) mit einem anderen R´G´B´ Wert. Die Texturen sollen für Gebäudefassaden in einem niedrigeren "Level of Detail" (LoD 1 bis 3) für 3D Stadtmodelle verwendet werden. Die niedrige Texturauflösung soll Echtzeitrendering der 3D Stadtmodelle erleichtern. Diese können zwar keine architektonischen Deteils wiedergeben, eignen sich aber für flächendeckende Texturierung grober Stadtmodelle für Online - Echtzeitrendering.

64x64 Raster:Konstruktionsgitter für eine Textur


Diese Art der Texturgestaltung ist

nicht für photorealistische Darstellungen gedacht!

Texturen dieser Art sollen lediglich die Geschossigkeit der Bauwerke sowie eine grobe Orientierung und Wiedererkennung der räumlichen Situation ermöglichen. MarekExampleGenericTexturingBuilding.png

MarekCity3DExampleLowTexturing1.jpg


Vorteile des Systems:

  • Schnelles Rendern vieler 3D Gebäude in Echtzeit
  • Vereinheitlichung der generischen Texturierung für die 3D Stadtmodelle
  • Einheitliche Namensgebung der generischen Texturbibliothek: Die gesamte Texturbibliothek wird kleiner
  • Es ermöglicht wesentlich schnellere Texturierung großer Gebiete

Fototexturen vs. low resolution Texturen

High resolution Texturen (Fototextur) sehen deutlich besser aus. Langfristig sollten sie in alle in 3D gemappten Gebäude eingebaut werden. Man muss aber um die Schwierigkeiten der high resolution Texturierung Bescheid wissen:

  • Hoher Arbeitsaufwand. Jedes Gebäude muss abfotografiert werden, am besten frontal auf die Fassade fotografieren. Diese Fotos müssen dann bearbeitet werden.
  • Fachwissen erforderlich. Die Fotos müssen in der Farbigkeit aneinander angepaßt werden. Autos, Bäume, Menschen, Straßenlaternen und ander störende Elemente müssen von den Bilder entfert werden. Dies ist nicht immer möglich, wenn z.B. Bäume fast die gesamte Fassade verdecken. Die Texturränder müssen wiederholbar "seamless" sein. Die Texturauflösung muß aneinander angepaßt werden.
  • Namensgebung. Bei vielen Usern und vielen Fototexturen wird schnell eine große Anzahl von großen Texturen entstehen. Entweder findet man dafür eine Lösung, die Texturen miteinander vergleicht und sortiert, oder es wird viele fast identische Texturen mit verschiedenen Namen geben. Auch gleiche Namen für verschiedene Texturen können zu Problemen führen.
  • Technik ist fehleranfällig in relativ hohem Maße. Schlechte Skalierung der Texturen bzw. schlechte Platzierung passieren selbst den Profis relativ oft.
  • Echtzeit-Visualisierung. Die Datenmenge, die bei Fototexturen entsteht, ist relativ groß. Entweder beschäftigt man sich mit Mechanismen, welche Texturoptimierung gewährleisten, oder das Echtzeitrendering wird schwierig.


Trotz dieser Schwierigkeiten ist es offensichtlich, dass die Zukunft der Fototexturierung gehört:

Die Modelle sehen wesentlich interessanter aus, haben einen höheren Wiedererkennungswert und beinhalten wertvolle Zusatzinformationen.

Tagging

Vorschlag:

Syntax

Der Texturname ist zugleich die Beschreibung der Textur und besteht aus Ganzzahlen.

Eine Textur mit der Syntax ABCDEFGH besteht aus:

AB = x Koordinate von dem Anfang der Farbe welche die Öffnung symbolisiert (dunkelblau). Der kleinste mögliche Wert ist 00, der größte 63

CD = y Koordinate von dem Anfang der Farbe welche die Öffnung symbolisiert (dunkelblau). Der kleinste mögliche Wert ist 00, der größte 63

EF = x Koordinate von dem Ende der Farbe welche die Öffnung symbolisiert (dunkelblau). Der kleinste mögliche Wert ist 01, der größte 64

GH = y Koordinate von dem Ende der Farbe welche die Öffnung symbolisiert (dunkelblau). Der kleinste mögliche Wert ist 01, der größte 64

AB = v1

CD = v2

EF = v3

GH = v4


MarekTextureDescription.gif

Weitere Elemente im Bild erhalten nach einem Unterstrich entsprechend die Syntax: A´B´C´D´E´F´G´H´

Analog: Eine Textur, die n Flächen beinhaltet, wird beschrieben durch:

ABCDEFGH_A´B´C´D´E´F´G´H´_ ... AnBnCnDnEnFnGnHn

Beispiele

Key Description Example values Notes
generic_texture puts generic texture on plane yes
texture_rotation rotation of texture on plane in [°] 45°
scale_x Scaling factor along the x-axis in [%] 50%
Scale_y Scaling factor along the y-axis in [%] 74%
texturestart_x Beginning of texture along the x-axis in [%] 0% see part: texture moving
texturestart_y Beginning of texture along the y-axis in [%] 20% see part: texture moving
RGB_background RGB value of background 250,240,230 min:0, max:255
RGB_opening RGB value of "opening" 0,15,115 min:0, max:255
Texture name Graphic representation
20202424 Marek20202424.gif
20221127_333221127 Marek20221127 333221127.gif
38000857 Marek38000857.gif
10001945_33222223 Marek10001945 33222223.gif
06171845_21004045_44175645 06171845 21004045 44175645.gif
20221127_333221127 Marek20221127 333221127.gif
20173041_32174241_20433053_32434253 20173041 32174241 20433053 32434253.gif
Long texture name Lot of elements

possible

01011808_20013708_

39015608_58016308_

01091832_20093732_

39095632_58096332_

01341839_20343739_

39345639_58346339_

01411858_20413758_

39415658_58416358_

01591863_20593763_

39595663_58596363

01011808 20013708 39015608 58016308 01091832 20093732 39095632 58096332 01341839 20343739 39345639 58346339 01411858 20413758 39415658 58416358 01591863 20593763 39595663 58596363.GIF
23292435_24272537_

25262538_26252739_

27242930_29233541_

35243740_37253839_

38263938_39274037_

40294135

23292435 24272537 25262538 26252739 27242930 29233541 35243740 37253839 38263938 39274037 40294135.gif

Die Texturen aus der obigen Tabelle wurden gezeichnet mit den Farben:

- RGB Wert Hintergrund: 250,240,230

- RGB Wert Öffnungen: 0,20,120

texture moving

Eine Textur beginnt normalerweise in der linken, unteren Ecke der Oberfläche, die man texturiert. Manchmal ist es aber von Vorteil, wenn die Textur nicht am Anfang einer Oberfläche beginnt:

MarekMovingOfTexture.jpg

Die Textur wird insgesamt sechs mal entlang der x Achse und 3 mal entlang der y Achse wiederholt:


MarekMovingOfTexture1.jpg

Ergebnis:

MarekMovingOfTexture2.jpg

Texturierung mit mehreren Texturen

Soll eine Fassade aus mehreren Texturen bestehen, muss die Oberfläche in mehrere Teile zerlegt werden, die mit einer entsprechenden Textur belegt werden.

Dieses Ergebnis zum Beispiel

MarekexampleKomplexTeturing.gif

wird durch folgende Zerlegung erreicht:

MarekexampleKomplexTeturing1.gif