System materiałów w Unreal Engine oferuje edytor materiałów oparty na węzłach, w którym można łączyć tekstury, operacje matematyczne, parametry i wyrażenia, aby stworzyć wygląd powierzchni. System materiałów optymalizuje i renderuje materiały w czasie rzeczywistym.
Dla użytkownika Maya ten przepływ pracy będzie najbardziej podobny do tworzenia materiałów w Hypershade, ale z kilkoma istotnymi różnicami.
Materiały w Unreal Engine są tworzone przy użyciu:
Edytora materiałów opartego na węzłach, który został zoptymalizowany pod kątem podglądu w czasie rzeczywistym i przepływu pracy.
Renderowania opartego na fizyce (PBR), które podkreśla realizm poprzez zdefiniowane właściwości wejściowe, takie jak kolor bazowy, metaliczność, chropowatość, odbicia światła i mapy normalnych.
Informacji zwrotnych w czasie rzeczywistym dotyczących zmian materiałów w oknie wizualizacji podglądu z oświetleniem i odbiciami w czasie rzeczywistym.
Przepływów pracy opartych na parametrach z instancjami materiałów, które umożliwiają dostosowywanie materiałów poprzez nadpisywanie bez konieczności ponownej kompilacji materiału nadrzędnego.
Atrybuty definiujące materiał
Atrybuty materiału określające sposób jego renderowania oraz reakcję na oświetlenie i powierzchnie w silniku Unreal Engine są określane przez jego właściwości, dane wejściowe materiału oraz logikę grafu materiału.
Właściwości materiałów i materiały wejściowe
W edytorze materiałów panel szczegółów służy do konfigurowania atrybutów definiujących materiał. Istnieją trzy podstawowe właściwości, które należy wziąć pod uwagę przy wyborze tworzonego materiału. Właściwości te definiują wejścia w węźle materiału głównego, które zostaną użyte do skonfigurowania wyglądu materiału w grafie materiału.
Domena materiału określa, do czego materiał może być wykorzystany w projekcie. Na przykład do powierzchni 3D, interfejsu użytkownika, przetwarzania końcowego, funkcji oświetlenia lub naklejek.
Tryb mieszania określa sposób, w jaki sposób materiał łączy się z otaczającymi go pikselami tła. Może to być na przykład tryb nieprzezroczysty, przezroczysty, maskowany lub inne dostępne opcje mieszania.
Model cieniowania określa sposób oddziaływania materiału na światło, decydując o wyglądzie powierzchni i zachowaniu oświetlenia. Na przykład modele cieniowania tkanin i włosów wykorzystują inne materiały wejściowe, aby uzyskać realizm powierzchni w porównaniu z modelem cieniowania domyślnego. Niektóre modele cieniowania zwiększają złożoność materiałów i obciążenie wydajności.
Po ustawieniu tych właściwości materiału można zbudować materiał przy użyciu dostępnych danych wejściowych w węźle materiału głównego w grafie materiału. Lista danych wejściowych jest bezpośrednio przypisana do domeny, trybu mieszania i modelu cieniowania ustawionego dla tworzonego materiału. W przypadku większości materiałów utworzonych w Unreal Engine należy użyć następujących ustawień:
Poniżej znajduje się przykład różnych danych wejściowych w węźle materiału głównego po zmianie tylko trybu mieszania w celu użycia różnych danych wyjściowych.
Domena materiału: Powierzchnia Tryb mieszania: Nieprzezroczystość Model cieniowania: Domyślnie oświetlone | Domena materiału: Powierzchnia Tryb mieszania: Przezroczystość Model cieniowania: Domyślnie oświetlone | Domena materiału: Powierzchnia Tryb mieszania: Maskowanie Model cieniowania: Domyślnie oświetlone |
Poniżej znajduje się lista popularnych nazw danych wejściowych używanych w materiałach Hypershade programu Maya oraz ich odpowiedniki w Unreal Engine. Obejmuje to również typowe źródła danych dla każdego z tych wejść w Unreal Engine podczas definiowania logiki w grafie materiałów.
| Wejścia materiałów Maya Hypershade | Wejścia materiałów Unreal Engine | Typowy rodzaj źródła | Opis wejścia materiałów |
|---|---|---|---|
Color | Kolor bazowy | Tekstura lub kolor | Główny kolor rozproszony powierzchni. |
Reflectivity | Metaliczne | Skalar lub tekstura | Określa, czy powierzchnia jest metaliczna (1) czy niemetaliczna (0) z wyglądu. |
Roughness (Chropowatość) | Roughness (Chropowatość) | Skalar lub tekstura | Reguluje gładkość powierzchni od gładkiej (0) do chropowatej (1). |
Reflectivity | Odbicie światła | Skalar lub tekstura | Kontroluje intensywność odbicia powierzchni niemetalicznej od nieodblaskowej (0) do odblaskowej (1). |
Bump / Normal | Normalne | Tekstura mapy normalnych | Nakłada szczegóły powierzchni za pomocą map tekstur. |
Emission / Emission Color / Incandescence | Kolor emisyjny | Kolor lub tekstura | Kontroluje intensywność samopodświetlenia powierzchni. |
Transparency / Translucence | Nieprzezroczystość | Skalar lub tekstura | Kontroluje stopień przezroczystości powierzchni od całkowitej przezroczystości (0) do nieprzezroczystości (1). |
Ambient Color | Okluzja otoczenia | Tekstura | Kontroluje intensywność cieni pośrednich. |
Aby dowiedzieć się więcej na temat tych właściwości materiałów oraz ich danych wejściowych w materiałach oraz zapoznać się z przykładami ich wykorzystania, patrz:
Graf materiałów
Graf materiałów to edytor oparty na węzłach, w którym można łączyć tekstury, wyrażenia, operacje matematyczne i wartości w celu zdefiniowania wyglądu powierzchni. Materiały mogą być tak proste lub złożone, jak wymaga tego definicja powierzchni.
Najczęściej używane typy węzłów to:
Próbka tekstury
Ten węzeł wykorzystuje zasoby tekstur, takie jak mapy kolorów i mapy normalnych.
Stałe
Są to liczby o pojedynczej wartości, przydatne do kontrolowania właściwości skalarnych, takich jak wartości wejściowe w węźle Interpolacja liniowa lub podłączane bezpośrednio do wejść głównego węzła materiału dla Metaliczne, Chropowatość lub Nieprzezroczystość.
Węzły matematyczne
Są to operacje matematyczne takie jak dodawanie, mnożenie, odejmowanie, dzielenie, interpolacja liniowa (Lerp), potęgowanie, ograniczanie itp.
Węzły narzędziowe
Są to węzły pomagające budować logikę wraz z innymi węzłami w grafie. Obejmują one wyrażenia dla Fresnela, wektora kamery, pozycji w świecie, współrzędnych tekstury itp.
Aby dowiedzieć się więcej na temat stosowania logiki w grafie materiałów i ogólnej funkcjonalności, patrz:
Dodatkowe uwagi dotyczące materiałów i tekstur
Poniżej znajduje się kilka ogólnych informacji na temat zagadnień związanych z tworzeniem materiałów w Unreal Engine. Więcej informacji na temat tych pojęć i ich zastosowań znajduje się na podlinkowanych stronach z dokumentacją.
Materiały a instancje materiałów
System materiałów Unreal Engine został stworzony z myślą o dostosowywaniu i parametryzacji w celu renderowania i oświetlania w czasie rzeczywistym. Jednym ze sposobów optymalizacji pracy z materiałami jest użycie instancji materiałów jako środka dostosowywania parametrów bez wpływu na oryginalny materiał, z którego pochodzą.
Jeśli więc materiał jest podstawowym zasobem definiującym wygląd powierzchni obiektu i jego interakcję z oświetleniem, to instancja materiału wykorzystuje atrybuty i parametry materiału nadrzędnego lub bazowego, aby zastąpić te wartości i stworzyć różnorodność oraz dostosować obiekt do indywidualnych potrzeb. Może to być również bardziej opłacalne niż stosowanie poszczególnych materiałów do wszystkich obiektów.
Charakterystykę materiałów i instancji materiałów można podzielić w następujący sposób:
| Charakterystyka materiału | Charakterystyka instancji materiału |
|---|---|
Stworzony przy użyciu edytora opartego na węzłach. | Wykorzystuje edytor sterowany przez parametry, które można nadpisać z materiału bazowego. |
Zawiera wszystkie możliwe cechy materiału, takie jak kolor, metaliczność, chropowatość, nieprzezroczystość itp. | Zapewnia dostęp wyłącznie do parametrów bazowych, które mogą zostać nadpisane. |
Zmiany w materiale wymagają jego ponownego skompilowania, zanim będzie można wyświetlić podgląd zmian. | Zapewnia informacje zwrotne w czasie rzeczywistym dotyczące zmian parametrów, dzięki czemu nie ma konieczności ponownego kompilowania materiału. |
Graf materiału może mieć dowolny poziom złożoności, aby spełnić wymagania wizualne. | Dostęp wyłącznie do parametrów uwidocznionych oznacza poprawę wydajności i efektywności pracy. |
Zmiana tego materiału wpływa na wszystkie obiekty, które go używają. | Zmiana instancji materiału wpływa tylko na obiekty, które go używają, dzięki czemu idealnie nadaje się do tworzenia wielu podobnych powierzchni, które zaczynają się od tego samego obiektu nadrzędnego i mają podobne cechy. |
Najlepszym momentem na rozważenie użycia instancji materiału w połączeniu z materiałem jest sytuacja, gdy trzeba jedynie dostosować szczegóły i parametry, takie jak kolor materiałów, ich tekstury, skalowanie itp. Nowe materiały bazowe należy tworzyć, gdy trzeba zdefiniować nowe zachowanie wizualne i styl (np. nieprzezroczysty lub półprzezroczysty), co wymaga skonfigurowania nowej logiki w grafie materiałów.
Materiały zazwyczaj wymagają dłuższego czasu początkowej konfiguracji i są mniej wydajne niż instancje materiałów o podobnych właściwościach i atrybutach.
Aby dowiedzieć się więcej na temat używania materiałów lub instancji materiału w projekcie, patrz:
Tekstury
Podobnie jak w programie Maya, tekstury są mapami obrazu, które nakłada się na atrybuty wejściowe tworzonego materiału, takie jak kolor podstawowy, normalne, chropowatość, aby zdefiniować szczegóły powierzchni. W Unreal Engine podczas tworzenia materiałów większy nacisk kładzie się na koncepcje renderowania opartego na fizyce oraz informacje zwrotne w czasie rzeczywistym.
Po zaimportowaniu tekstur można je otworzyć w edytorze zasobów tekstur, gdzie można wyświetlić informacje o nich, skonfigurować ich ustawienia i wprowadzić pewne zmiany.
Aby zoptymalizować tekstury w silniku Unreal Engine i pracować z nimi wydajniej, można wykonać następujące czynności:
Tworzyć i dostosowywać tekstury za pomocą narzędzi innych firm przed ich importowaniem.
Używać technik pakowania kanałów, aby połączyć wiele tekstur w skali szarości dla materiałów wejściowych, takich jak chropowatość, metaliczność i okluzja otoczenia, w pojedyncze tekstury RGB. Pozwala to zoptymalizować wydajność poprzez odwołanie się do jednej tekstury zamiast kilku różnych.
Silnik automatycznie stosuje kompresję tekstur, ale warto zrozumieć, jak to wykorzystać, aby poprawić wierność wizualną i wydajność.
Należy pamiętać o rozmiarach tekstur. W przypadku wydajności w czasie rzeczywistym idealnym rozwiązaniem jest stosowanie tekstur o wymiarach będących potęgami dwójki (128, 512, 1024 itp.). Tekstury niebędące potęgami dwójki nie korzystają z systemu streamingu tekstur silnika, co może powodować powstawanie artefaktów wizualnych w oddali.
Aby dowiedzieć się więcej na temat używania tekstur w Unreal Engine, patrz:
Framework materiału Substrate
Framework materiału Substrate w Unreal Engine to podejście do tworzenia materiałów, które zastępuje stały zestaw modeli cieniowania i trybów mieszania bardziej wyrazistą i modułową strukturą. Tworzenie materiałów przebiega tak samo jak w standardowym systemie materiałów, jednak użytkownik nie jest już ograniczony do stosowania pojedynczych materiałów wykorzystujących jeden model cieniowania i jeden tryb mieszania. Można je płynnie łączyć w tym przepływie pracy, tworząc unikalne materiały o większej złożoności.
Aby dowiedzieć się więcej na temat używania materiału Substrate projektach i procesach tworzenia materiałów, patrz Omówienie materiału Substrate.
Renderowanie oparte na fizyce z wykorzystaniem materiałów
Unreal Engine wykorzystuje renderowanie oparte na fizyce (PBR) do cieniowania i renderowania, które dokładnie symuluje zachowanie światła oddziałującego na powierzchnie. Zapewnia to fizycznie realistyczne interakcje światła, umożliwiające tworzenie realistycznych i – co ważniejsze – przewidywalnych efektów wizualnych w różnych warunkach oświetleniowych, takich jak bezpośrednie światło słoneczne w porównaniu z oświetleniem wewnętrznym, a nawet fotorealistyczne powierzchnie w porównaniu ze stylizowanymi efektami, od ręcznie malowanych po cieniowanie cel-shading.
Podczas pracy z materiałami PBR w Unreal Engine należy pamiętać o następujących kluczowych zasadach:
Realistyczne interakcje oświetlenia, w których powierzchnie reagują dokładnie i przewidywalnie na różne ustawienia oświetlenia, niezależnie od tego, czy jest to oświetlenie naturalne (zewnętrzne), czy sztuczne (wewnętrzne).
Spójność z materiałami, aby wyglądały poprawnie w różnych scenach i scenariuszach oświetlenia.
Uproszczony przepływ pracy, w którym artyści definiują materiały na podstawie ich właściwości fizycznych zamiast arbitralnych wartości, co pozwala ograniczyć domysły dotyczące dostosowywania cieniowania i oświetlenia w środowisku czasu rzeczywistego dzięki natychmiastowej informacji zwrotnej w scenie.
Aby dowiedzieć się więcej, patrz Materiały oparte na fizyce.
Następna strona
Oświetlenie i renderowanie w Unreal Engine dla użytkowników programu Maya
Przegląd funkcji oświetlenia i renderowania w Unreal Engine dla użytkowników programu Maya.