Materiały - Pliki .mat: Różnice pomiędzy wersjami
(→Materiał domyślny) |
(→Materiał domyślny) |
||
Linia 403: | Linia 403: | ||
Jeśli w podanej ścieżce nie istnieje plik .mat, ale istnieje tekstura o tej samej nazwie, to wówczas tekstura ta interpretowana jest jak materiał o definicji: | Jeśli w podanej ścieżce nie istnieje plik .mat, ale istnieje tekstura o tej samej nazwie, to wówczas tekstura ta interpretowana jest jak materiał o definicji: | ||
<span style="color:tomato;font-weight:bold">shader:</span> default_1 | <span style="color:tomato;font-weight:bold">shader:</span> default_1 | ||
− | <span style="color:tomato;font-weight:bold"> | + | <span style="color:tomato;font-weight:bold">texture_diffuse:</span> sciezka_do_tekstury |
Dzięki temu nie jest konieczne tworzenie plików .mat dla prostych materiałów (używających tylko jednej tekstury). | Dzięki temu nie jest konieczne tworzenie plików .mat dla prostych materiałów (używających tylko jednej tekstury). | ||
[[Category:Formaty plików symulatora]] | [[Category:Formaty plików symulatora]] |
Wersja z 12:18, 4 lis 2022
Plik .mat jest plikiem tekstowym z definicją materiału, czyli shadera oraz przypiętych do niego tekstur i parametrów. Posiada prostą składnię klucz: wartość oraz warunkowe bloki wybierane w zależności od ustawień symulacji.
Spis treści
Opis kluczy podstawowych
Nazwa | Wartości | Opis | Uwagi | |
---|---|---|---|---|
shader | Ścieżka do pliku shadera (relatywna względem folderu shaders, nazwa bez przedrostka mat_ i rozszerzenia). | Ustawia shader używany do renderowania obiektu. | Parametr jest obowiązkowy, jeżeli jednak nie jest podany zostanie to ustawiony zostanie shader default_0, default_1, default_2 (w zależności od ilości podanych tekstur). Nie działa wtedy ustawianie tekstur poprzez alias. | |
textureX | Ścieżka do tekstury lub zestaw ścieżek losowych. | Przypina podaną teksturę pod jednostkę wyrażoną numerem X, numerując od 1. | ||
texture_X | Ścieżka do tekstury lub zestaw ścieżek losowych. | Przypina podaną teksturę pod alias X jednostki zdefiniowany przez shader | ||
paramX | Od jednej do czterech wartości liczbowych. | Ustawia parametr X numerując od 1. | ||
param_X | Od jednej do czterech wartości liczbowych. | Ustawia parametr pod alias X zdefiniowany przez shader | ||
opacity | Wartość liczbowa 0-1 | Nadpisuje wartość Opacity w submodelach używających tego materiału.
|
W przypadku zdefiniowania tego parametru jego wartość jest wykorzystywana również dla geometrii półprzezroczystej (zdefiniowanej w pliku .t3d z opacity=0) W takiej sytuacji pomijana jest geometria z wartością kanału alpha wyższą niż zdefiniowana opacity w pliku .mat | |
selfillum | Od jednej do czterech wartości liczbowych. | Nadpisuje wartość SelfIllum w submodelach używających tego materiału. | ||
size | Dwie wartości liczbowe | Nadpisuje wartość rozmiaru tekstury [m] we wpisie node::track. | Wpisanie -1 spowoduje zignorowanie wybranego parametru. | |
shadow_rank | Wartość liczbowa 1-3 | Określa "wagę/skomplikowanie" cieni rzucanych przez obiekt pokryty danym materiałem. | Cienie z wagą wyższą niż wartość zdefiniowana wpisem gfx.shadow.rank.cutoff w pliku eu07.ini będą pomijane przy rysowaniu. |
Dostępne shadery
Mapy obsługiwane przez dane shadery. Przy braku część tekstur można ustawić jednorodnie dla materiału przy pomocy parametru.
Nazwa | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
---|---|---|---|---|---|---|---|---|---|
default | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
default_detail | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
default_specgloss | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
normalmap | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
normalmap_specgloss | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
detail_normalmap | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
detail_normalmap_specgloss | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
parallax | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
parallax_specgloss | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
detail_parallax | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
detail_parallax_specgloss | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
reflmap | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
reflmap_specgloss | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
shadowlessnormalmap | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
shadowlessnormalmap_specgloss | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
sunlessnormalmap | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
sunlessnormalmap_specgloss | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
water | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
water_specgloss | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
colored | Diffuse | Alfa | Normal | Depth | Reflection | Specular | Glossiness | Metalic | Detail |
Opis kluczy warunkowych
Bloki warunkowe zawierają definicje własności materiału, które mają być aktywne w warunkach zależnych od ustawień symulacji. Wartościami dla tych kluczy jest dowolna ilość kluczy podstawowych i ich wartości, ograniczona za pomocą nawiasów klamrowych. Przykład użycia:
// Pamiętaj o odstępach między klamrami a resztą kodu! texture1: example/tex winter: { texture1: winter/tex }
Powyższy kod oznacza, że w przypadku ustawienia warunków zimowych w miejsce texture1 ma zostać wczytana tekstura winter/tex zamiast domyślnej example/tex.
Bloki warunkowe moga byc dodatkowo zagniezdzane, np. blok warunkow pogodowych moze wystapic wewnatrz bloku pory roku:
autumn: { rain: { texture1: autumn/rain // jesien + deszcz } texture1: autumn/tex // jesien } rain: { texture1: default/rain // deszcz } texture1: default/tex
W takiej sytuacji ostatecznie uzywana jest tekstura spelniajaca najlepiej podane warunki, w kolejnosci:
- tekstura dla danej pogody i pory roku - tekstura dla danej pogody - tekstura dla danej pory roku - tekstura podstawowa
Pory roku
Pora roku określana jest na podstawie ustawienia movelight.
Nazwa | Opis |
---|---|
spring | Wiosna |
summer | Lato |
autumn | Jesień |
winter | Zima |
Warunki pogodowe
Warunki pogodowe zależą od wartości parametru zachmurzenia scenerii overcast we wpisie atmo
Nazwa | Opis |
---|---|
clear | Bezchmurnie (wartość overcast między 0 a 0.1) |
scattered | Pierwszy stopień zachmurzenia (wartość overcast między 0.1 a 0.5) |
broken | Drugi stopień zachmurzenia (wartość overcast między 0.5 a 0.9) |
overcast | Pełne zachmurzenie (wartość overcast między 0.9 a 1.0) |
rain | Deszczowo (wartość overcast między 1.0 a 2.0) |
snow | Śnieżnie (wartość overcast między 1.0 a 2.0 w warunkach zimowych) |
Tekstury losowe
Oprócz indywidualnych nazw tekstur można podać równieź ich zestaw. W takiej sytuacji wybrana zostanie losowo jedna z podanych tekstur. Przykład:
texture1: [ tekstura_a tekstura_b tekstura_c ]
Parametry tekstury
Przy ścieżkach do tekstur mogą być podane parametry kontrolne dla tekstury:
texture_path:params
gdzie texture_path to ścieżka do tekstury, a params to zdefiniowane opcjonalne parametry:
Parametr | Opis |
---|---|
s | Wyłącza zawijanie tekstury w poziomie |
t | Wyłącza zawijanie tekstury w pionie |
# | Włącza filtrowanie tekstury (wyostrzanie?) |
Materiał domyślny
Jeśli w podanej ścieżce nie istnieje plik .mat, ale istnieje tekstura o tej samej nazwie, to wówczas tekstura ta interpretowana jest jak materiał o definicji:
shader: default_1 texture_diffuse: sciezka_do_tekstury
Dzięki temu nie jest konieczne tworzenie plików .mat dla prostych materiałów (używających tylko jednej tekstury).