Ukazała się kolejna wersja otwartoźródłowego Material Maker, dla Windowsa i Linuksa, autorstwa RodZilli (kontekst wskazuje na to, że jest to pseudonim programisty, a nie przedsiębiorstwo). Narzędzie służące do proceduralnego generowania materiałów, bazujące na silniku gier Godot. W Material Maker materiały zostają zdefiniowane jako grafy, gdzie węzły (nodes) odpowiadają za ich utworzenie lub transformację.
Większość węzłów zostało ustanowionych jako shadery napisane przy użyciu języka GLSL. Material Maker dostarcza połączone shadery, a nie generuje obrazu dla poszczególnych węzłów, aby uzyskać efekt końcowy w postaci tekstury. Jest także możliwe tworzenie nowych węzłów za pomocą ich łączenia lub grupowania, albo ich zaprogramowania w GLSL.
Zobacz też: GitHub przejmuje npm. Imperium Microsoftu rozrasta się
Węzły generujące
Węzły generujące zawierają konfigurowalny wzorzec, jaki może być użyty do zdefiniowania podstawowych kształtów, materiału lub tekstury. Węzły przekształcające zmieniają kolor i kształt obrazu wejściowego, w celu stworzenia bardziej złożonej tekstury. Węzły są niezależne od rozdzielczości, toteż możliwe jest przeistaczanie poprzez zbliżenie na detal i pozostaje to bez wpływu na finalną jakość wygenerowanej w ten sposób tekstury. Jedynie niektóre z węzłów ograniczają możliwą rozdzielczość na wyjściu, takie jak generator obrazu lub filtry konwolucyjne (blur, emboss, generator normal mapy).
Material Maker jest w stanie wyeksportować tekstury zgodne z silnikami gier Godot, Unity i Unreal. Obsługuje przy tym argumenty linii poleceń i jeśli zostanie uruchomiony bez nich, wtedy zostanie rozpoczęty pusty projekt.
material_maker –export -t <engine> -o <output_path> <input_files>
Gdzie engine oznacza cel (Godot, Unity, Unreal), output_path definiuję ścieżkę w jakiej pojawi się plik wynikowy, input_files stanowią listę plików z jakimi Material Maker będzie pracował.
Material Maker jest dystrybuowany na licencji MIT i może zostać pobrany z itch.io. W praktyce jego funkcje (workflow) zdają się odpowiadać, na chwilę obecną, uproszczonej wersji Substance Designer.
Material Maker 0.9 przyniósł wraz z sobą następujące zmiany:
Interfejs użytkownika:
- Panele boczne mogą zostać przeniesione na krawędzie okna, poprzez przeciągnięcie ich za belkę z nazwą lub w menu View -> Panes, jakie służy do konfigurowania UI.
- Nowe okienko Hierarchy ukazuje bieżącą hierarchię zgrupowanych materiałów. Jest w stanie przedstawić podgląd, od 0 do 3, dla każdej grup materiałów, co może zostać skonfigurowane poprzez kliknięcie prawym przyciskiem myszy na okienko. Nawigacja pomiędzy wieloma grupami jest przez to wygodniejsza.
- Okienko grafu wyświetli podgląd 2D jako tło, jeśli kliknie się w przyciski z "cegiełkami" (bricks).
- Nowe menu podręczne dla dodawania węzłów lub edycji grafu wyświetli się po naciśnięciu klawisza spacji lub poprzez połączenie wyjścia z pustą przestrzenią.
- Nowe menu które pozwoli przełączyć się pomiędzy ciemnymi i jasnymi motywami UI.
- Polecenia Paste i Duplicate utworzą teraz nowy węzeł w miejscu położenia kursora.
- Usunięto przycisk "oka". Teraz wystarczy kliknąć w slot wyjściowy (output slot), aby pojawił się podgląd. Wtedy pojawi się okrąg sugerujący zaznaczenie.
Export:
Komenda linii poleceń export zostało całkowicie przepisana, aby można było eksportować do kilku silników gier i aby generować dodatkowe pliki. Są teraz 3 opcje eksportu:
- Godot: wyeksportuje wszystkie pliki PNG ia .tres które mogą być bezpośrednio użyte w Godocie. Alternatywnie to rozszerzenie Material Maker dla Godota będzie niedługo zaktualizowane o plugin importujące pliki .ptex. Tekstury materiałow PTEX mogą być prerenderowane w czasie importu lub wygenerowane w środowisku uruchomieniowym (runtime).
- Unity: Export generuje niezbędne pliki PNG i .mat (pliki materiałów), już gotowe do użycia.
- Unreal: wygeneruje pliki PNG, a te zostaną bezpośrednio wykorzystane jako materiał Unreal. Utworzenie prostego materiału dla silnika Unreal zostało opisane w dokumentacji.
Linia poleceń:
- Ścieżka opisująca położenie pliku .ptex może być użyta jako argument linii poleceń w celu bezpośredniego otwarcia projektu. Umożliwiono też powiązanie Material Maker z rozszerzeniem nazwy plików .ptex.
- Jest możliwe wyeksportowanie wielu plików dla silników Godot, Unity i Unreal używając --export jako argumentu liniii poleceń.
Węzły (Nodes):
- Węzły komentujące mają teraz edytowalne tytuły i kolory.
- Węzeł funkcji 3D signed distance obsługuje teraz indeks kolorów, a węzły 3D/SDF/Render otrzymały nowy indeks kolorów dla wyniku.
- Zostały dodane nowe węzły dla tekstur 3D (2D texture projection, pattern, fractional Brownian motion), operatory tekstur 3D (rotate, colorize, distort, blend), nadto węzeł służący do miksowania tekstur 3D według indeksu i węzeł przyłączający teskturę 3D.
- Został dodany węzeł 2D z fraktalnymi ruchami Browna (fractional Brownian motion) ze wsparciem dla wartości i szumów Perlina i Voronoi.
- Dodano nowe węzły Splatter i Tiler. Splatter inicjuje obraz wejściowy kilka razy dla swojego wyjścia. Tiler robi to samo, umieszczając instancje na siatce i stosując losowe przesunięcie (wyniki są podobne, ale Tiler może obsłużyć o wiele więcej instancji). Oba mogą losowo skalować i obracać instancje oraz obsługiwać maskę wejściową, która definiuje strefy, w których nie można utworzyć instancji. Wreszcie, oba akceptują tablice 2x2 lub 4x4 dla obrazów i wybierają je losowo dla każdej instancji oraz mają skalę szarości i wariant kolorów.
- Nowy węzeł Tiler2x2 ma 4 wejścia i wyprowadza tablicę 2x2 jako wynik swojego wejścia, przydatne do tworzenia tablic dla Splattera i Tilera.
Pozostałe:
- Można teraz utworzyć nowe typy slotów wejściowych i wyjściowych, zwyczajnie edytując plik .json i dodając plik podglądu shadera.