OSM-4D/Generic textures

From OpenStreetMap Wiki
Jump to navigation Jump to search

This page contains description of the concept of possible generic textures for 3D city models from the page: OSM-4D. For foto textures library see [1]


The real time rendering of big 3D city models with terrain model is difficult. There are use cases for which a photo texture is not necessary. For easy rendering of big areas are scheduled small textures with 64x64 Pixel. These textures have free RGB background and one of more faces einem ("doors" and "windows" representation) with other RGB value.

The textures should be used only for building facades in a lower "level of detail" LOD 1 and 2 for 3D city models.

The low resolution texture should facilitate the real-time rendering of 3D city models.

Of course, this method of representation can not show the architectural details, but it is suitable for widespread texturing of generalized city models for online - rendering.

64x64 Raster:construction grid for a texture

This method of texturing is  not for fotorealistic representation designed! 

Textures of this type should only show number of floors of the buildings and provide a rough orientation and recognition of the spatial situation.




  • Easily true-time rendering of 3D cities.
  • Standardization of generic textures for 3D City Models
  • Uniform naming system of the generic texture library: The entire texture library is small
  • It allows faster texturing of large areas

Phototexturing vs. low resolution texturing

High resolution, unique textures or repeatable textures (Fototextur) look a lot better. Of course, this textures should gradually be used in all 3D buildings. But you must know about the difficulties of the high resolution texturing:

  • High labor costs. For generating of unique textures each building must be photographed from each side. You get the best texture when you shot frontal photograph of each facade. These photos will then be processed (equalizing,matching).
  • Expertise required. 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.
  • Naming. 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.
  • Error prone technique. Schlechte Skalierung der Texturen bzw. schlechte Platzierung passieren selbst den Profis relativ oft.
  • Real-time visualization. The amount of data that will result from photo textures is relatively large. Either one is developed mechanisms that provide texture optimization, or the real-time rendering will be difficult.

Despite these difficulties, it is obviously that the future belongs to fototexturierung:

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




The texture name is also the unique description of the texture and consists of integers.

The texture with syntax ABCDEFGH consists of:

AB = x Coordinate of the beginning of the color which symbolizes the opening (dark blue). The smallest possible value is 00, the largest 63

CD = y Koordinate von dem Anfang der Farbe welche die Öffnung symbolisiert (dark blue). The smallest possible value is 00, the largest 63

EF = x Koordinate von dem Ende der Farbe welche die Öffnung symbolisiert (dark blue). The smallest possible value is 01, the largest 64

GH = y Koordinate von dem Ende der Farbe welche die Öffnung symbolisiert (dark blue). The smallest possible value is 01, the largest 64

AB = v1

CD = v2

EF = v3

GH = v4


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:



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












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.gif

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

- RGB Wert Hintergrund: 250,240,230

- RGB Wert Öffnungen: 0,20,120

Shifting of the texture

The texture usually starts in the lower left corner of the surface that is textured (insertion point). Sometimes it is advantageous if the insertion point of the texture is not at the beginning of a surface:


This texture is repeated six times along the x and 3 times along the y axis:




Texturing of surfaces with more textures

Often it is impossible to make a good surface representation with only one texture. In this case it is necessary to divide the surface in smaller areas. Each of this areas gets a separate texture.

For example: this result


can be arrive by dividing of main surface: