Pl:JOSM/Plugins/Kendzi3D/Niestandardowe modele

From OpenStreetMap Wiki
Jump to navigation Jump to search

Niestandardowe modele

Warstwa modelu

Jak załadować niestandardowe modele.

Konfiguracja według interfejsu użytkownika

Nie jest ukończona.

Uruchomienie

Z menu 3D => List of Models

Ręczna konfiguracja

Modele są przechowywane w archiwum wtyczek. "Plugin" to normalne archiwum zip z rozszerzeniem jar. Aby zobaczyć modele i tekstury należy zlokalizować plik "kendzi3d.jar" w katalogu wtyczek JOSM. Istnieje możliwość zmiany modeli, tekstur i konfiguracji wtyczek w archiwum wtyczek. Zmiany będą dostępne po ponownym uruchomieniu JOSM.

Plik konfiguracyjny

Konfiguracja jest przechowywana w plikach:

  • {JOSM}/models/modelsLibraryInternalLayer.xml
  • {JOSM}/models/modelsLibraryLayer.xml

Przykład formatu pliku:

<modelsLibrary>
  <nodeModel    matcher="(test=my_model)"
                model="/models/my_model/model.obj"
                translate="vectorY(65)"
                scale="0.154" />
	
  <wayNodeModel matcher="highway=*" 
                filter="hightway=light" 
		model="/models/hightway_light.obj"
		translate="vector()" 
                scale="height(1)" 
                direction="wayNodeDirection(90)" 
                offset="3" />
</modelsLibrary>


  • nodeModel - model dla węzła. Atrybuty:
matcher – filtr decyduje o użyciu modelu węzłów z którymi będzie stosowany (format wyszukiwania JOSM)
model – ścieżka do pliku modelu. Obsługiwana jest tylko ścieżka względna. Względna ścieżka zaczynająca się od katalogu {JOSM}\plugins\kendzi3d\
translate – przeniesienie (przesunięcie) modelu w przestrzeni współrzędnych modelu.
scale – model w skali. Może to być funkcja numeru lub skali
modelParameter - dodatkowy parametr dla modelu, np. nazwa tekstury
  • wayNodeModel - modele na węzłach linii. Atrybuty:
matcher – filtr decyduje o użyciu modelu węzłów z którymi będzie stosowany (format wyszukiwania JOSM)
filter- filtr dla wybranych węzłów liniowych (format wyszukiwania JOSM)
model – path to model file. Obsługiwana jest tylko ścieżka względna. Względna ścieżka zaczynająca się od katalogu {JOSM}\plugins\kendzi3d\
translate – przeniesienie (przesunięcie) modelu w przestrzeni współrzędnych modelu.
scale – model w skali. Może to być funkcja numeru lub skali
direction - funkcja dla kierunku modelu WORLD SPACE
offset - model przesunięty względem linii
modelParameter - dodatkowy parametr dla modelu, np. nazwa tekstury

Przykład konfiguracji

Możliwe jest ustawienie niestandardowych modeli i konfiguracji poprzez umieszczenie modeli w katalogu wtyczek JOSM (bez potrzeby przepakowywania pliku kendzi3d.jar). Wykonajemy następujące czynności:

  • Lokalizujemy katalog wtyczek JOSM (będzie on nazywał się {JOSM}) (!LINK!)
  • Otwieramy katalog Kendzi3d {JOSM}\plugins\kendzi3d
  • Tworzymy katalog modeli katalogów {JOSM}\plugins\kendzi3d\models
  • Umieszczamy wewnątrz swojego katalogu model 3D. Teraz obsługiwane są tylko modele w formacie .OBJ. Oznacza to, że musimy skopiować: plik modelu z rozszerzeniem .obj, opcjonalny plik materiałowy z rozszerzeniem .mat oraz opcjonalne pliki tekstowe z rozszerzeniem .png.

Umieszczamy swój model w nowym katalogu, np. może on wyglądać tak:

{JOSM}\plugins\kendzi3d\models\my_model\model.obj
{JOSM}\plugins\kendzi3d\models\my_model\model_material.mat
{JOSM}\plugins\kendzi3d\models\my_model\model_texture.png

Ostrzeżenie: W pliku .obj obsługiwana jest tylko relatywna poprawka do plików materiałowych, a w plikach .mat obsługiwane są tylko relatywne łaty do plików tekstur!!!

  • teraz wymagane jest utworzenie konfiguracji do połączenia modelu z obiektem węzła w Mapie. Tworzymy plik konfiguracji modelsLibraryLayer.xml.

{JOSM}\plugins\kendzi3d\models\pointModelLayer.xml

  • dodajemy do zawartości pliku:
<modelsLibrary>
  <nodeModel matcher="(test=my_model)"
              model="/models/my_model/model.obj"
              translate="vectorY(65)"
              scale="0.154" />	
</modelsLibrary>
  • Wybieramy z menu 3D => Oczyść (Clean up). To powinno przeładować konfigurację i pokazać model we wszystkich węzłach z kluczem “test” i wartością “my_model”.

Modelowy układ współrzędnych dla wayNodeModel

Kendzi3d model translate.svg

Funkcje

Funkcje skalowania

{number}

otrzymuje podaną podwójną wartość

height ({default height})

Otrzymuje wysokość ze tagów OsmPrivitive, jeśli tag wysokości nie jest ustawiony, zwraca wartość domyślną.

Args:

{default height} – domyślna wysokość modelu

Przykład:

0.8 * height(5)	

Kierunek

wayNodeDirection()

Dla węzłów położonych na liniach odczytuje kierunek linii (w tym punkcie prostopadły do bisector) Wynik jest wyrażony w stopniach.
Przykład:

90 + wayNodeDirection()

Funkcje kierunku

wayNodeDirection({angle})

Funkcja powrotu kierunku linii dla węzłów położonych na liniach. Kierunek jest ortogonalny do dwustronnej.

Args:

{angle} - opcjonalny parametr, jeśli jest określony, jest dodawany do kierunku od linii

Funkcje wektorowe

vector()

Funkcja tworzy wektor 3D (0, 0, 0)

vector({x}, {y}, {z})

Funkcja tworzy wektor 3D ({x}, {y}, {z})

vectorX({x})

Funkcja tworzy wektor 3D ({x}, 0, 0)

vectorY({y})

Funkcja tworzy wektor 3D (0, {y}, 0)

vectorZ({z})

Funkcja tworzy wektor 3D (0, 0, {z})

Parametry modelu

Pozwala parametryzować niektóre atrybuty modelu. Obecnie możliwa jest zmiana tekstury materiału.

Tekstury modelu

Parametr jest przechowywany jak ciąg znaków:

material.{material_name}.texture0={texture_name}

{material_name} - mnazwa materiału przechowywana wewnątrz modelu.

{texture_name} - nowa wartość z nazwą tekstury dla podanej nazwy materiału.

Parametr pozwala na zmianę tekstury modelu. W modelach 3D tekstury są połączone z materiałem. Materiały mają przypisane pewne informacje o jasności powierzchni, odbiciach, ścieżce tekstury itp. Zwykle mają nazwy, które można zmienić w edytorze 3D. Ten parametr pozwala na przeszukanie wewnątrz modelu wszystkich materiałów o podanej nazwie. W przypadku wszystkich dopasowanych materiałów została ustawiona nowa nazwa tekstury. Nazwa tekstury może być nazwą pliku względnie z pliku modelu lub funkcji generowania tekstury.

Przykłady