Pl:JOSM/Plugins/Kendzi3D/Niestandardowe modele
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
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.