Materiały - Pliki .mat
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 podawaniu nazw tekstur moga tez byc podane parametry kontrolne dla tekstury, w formacie:
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?) |