Pl:OSM-4D/Generic textures

From OpenStreetMap Wiki
Jump to navigation Jump to search

Strona zawiera opis tekstur niskiej rozdzielczości (low resolution) stosowanych do trójwymiarowych modeli opisywanych na stronie Pl:OSM-4D

Opis

Tekstury maja wielkosc 64x64 pikseli i składają się z tła o dowolnej wartości RGB oraz prostokątów (symbolizujących zazwyczaj otwory okienne) o innej wartości kolorystycznej R´G´B´. Obszarem zastosowania tego typu tekstur maja byc przede wszystkim budynki w niższym stopniu uszczegółowienia (Level of detail 1 do 3) w trójwymiarowych modelach miast. Mala rozdzielczość tekstur ma ułatwić rendering online trójwymiarowych modeli miast.

siatka pomocnicza do konstrukcji tekstury

MarekCity3DExampleLowTexturing1.jpg


Korzyści płynące ze stosowania tej techniki:

  • Szybki rendering dużej liczby trójwymiarowych budynków w czasie rzeczywistym (możliwość poruszania się po modelu 3D online)
  • Ujednolicenie optycznego wyglądu tekstur dla modeli 3D
  • Ujednolicenie nazw tekstur dla modeli 3D: Cala biblioteka będzie mniejsza, nie będzie duplikatów o identycznych nazwach
  • Szybkie teksturowanie dużych obszarów na podstawie niskiej jakości zdjęć

Fototekstury a tekstury niskiej rozdzielczosci

Tekstury wysokiej rozdzielczości (fototekstury) wyglądają zdecydowanie lepiej i docelowo powinno się dążyć do pokrycia nimi wszystkich zmapowanych budynków. Należy sobie jednak zdawać sprawę, ze problematyczne w ich użyciu jest:

  • Wysoki nakład pracy. Kazdy budynek trzeba obfotografowac, najlepiej frontalnie. Zdjecia trzeba poddać obróbce.
  • Wiedza niezbędna do obróbki. Zdjecia musza byc dopasowane kolorystycznie. Auta, drzewa, ludzie, słupy ulicze, latarnie i inne elementy zaslaniajace fasade usuniete ze zdjec a nie zawsze jest to mozliwe. Tekstury powinny byc powtarzalne "seamless"
  • Nazewnictwo. Szybko dojdzie do sytuacji, gdy prawie identyczne tekstury beda uzywane pod wieloma roznymi nazwami w roznych miejscach. Koordynacja rozwoju biblioteki tekstur bedzie trudna.
  • Ryzyko popelnienia bledu w tekturowaniu jest wysokie. Nawet osoby doswiadczone w tworzeniu modeli 3D popelniaja bledy polegajace na zlym wyskalowaniu czy umieszczeniu tekstury w zlym miejscu.
  • Wizualizacja w czasie rzeczywistym. Ilosc danych powstajacych przy uzyciu fototekstur jest duza. Jesli nie zostana rozwiniete mechanizmy optymalizacji tego typu modeli, rendering w czasie rzeczywistym wiekszych obszarów pokrytych tego typu teksturami bedzie trudny.

Mimo tych wad jest oczywiste, ze nalezy dazyc w kierunku pokrywania budynków fototeksturami. Sa one nieporównanie ladniejsze, pozwalaja na bardzo dobra orientacje przestrzenna oraz zawieraja szereg informacji których nie ma w modelach teksturowanych generycznie.

Tagging

Propozycja ponizej:

Syntaks tekstur

Nazwa tekstury zawiera jej opis składający się z cyfr.

W przypadku nazwy typu AABBCCDD :

AA to współrzędna x początku tekstury symbolizującej otwór. Najmniejsza możliwa wartość to 00, największa 63

BB to współrzędna y początku tekstury symbolizującej otwór. Najmniejsza możliwa wartość to 00, największa 63

CC to współrzędna x końca tekstury symbolizującej otwór. Najmniejsza możliwa wartość to 01, największa 64

DD to współrzędna y końca tekstury symbolizującej otwór. Najmniejsza możliwa wartość to 01, największa 64

AA = v1

BB = v2

CC = v3

DD = v4


MarekTextureDescription.gif

Każdy następny element tekstury opisywany jest po podkreślniku jako: A´B´C´D´E´F´G´H´

Analogicznie: Tekstura składająca się z n prostokątów jest opisywana jako:

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


Przykłady

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% patrz fragment: texture moving
texturestart_y Beginning of texture along the y-axis in [%] 20% patrz fragment: texture moving
RGB_background Wartosc RGB tla 250,240,230 min:0, max:255
RGB_opening Wartosc RGB "otworu" 0,15,115 min:0, max:255
Nazwa tekstury Wygląd tekstury
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
Skomplikowana nazwa

tekstury

Mozliwe jest uzycie

wielu elementów

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

texture moving

Jeśli nie zdefiniujemy tego inaczej, tekstura rozpoczyna się od lewego dolnego rogu teksturowanej powierzchni.

Czasami chcemy jednak, by tekstura rozpoczynała się z innego miejsca, ponieważ daje to pożądany optyczny wynik po teksturowaniu.

Na rysunku poniżej widzimy teksturę przesuniętą w stosunku do teksturowanej płaszczyzny w lewo i w dól:


MarekMovingOfTexture.jpg

Tekstura powtarza się na poniższym przykładzie sześciokrotnie wzdłuż osi x i trzykrotnie wzdłuż osi y :


MarekMovingOfTexture1.jpg

Wynik daje symetryczne położenie tekstur na fasadzie:

MarekMovingOfTexture2.jpg