Unity Manual User Guide Asset Import and Creation Materials and Shaders

Materiały i Shader-y

W Unity istnieje ścisły związek pomiędzy Materiałem a Shader-em. Shader zawiera kod który określa jakiego rodzaju definicje oraz wartości jakie asset ma użyć. Materiały pozwalają dostosować właściwości i przypisać je do asset-u.

materials-0.jpg

Shader jest wdrażany po przez materiał

Aby utworzyć nowy materiał, należy wybrać z głównego menu Assets→Create→Material lub z menu kontekstowego widoku Projektu. Po utworzeniu materiału możemy zastosować go do obiektu i dostosować wszystkie jego właściwości w Inspektorze. Aby zastosować go do obiektu, po prostu przeciągnij go z widoku Projektu do dowolnego obiektu w Scena lub Hierarchy.

Ustawianie Właściwości materiału

Możesz wybrać, który Shader chcesz zastosować do jakiegokolwiek wybranego materiału. Wystarczy rozwinąć pozycję Shader w inspektora i wybrać swój nowy Shader. Wybrany Shader będzie wyświetlać dostępne właściwości które możesz zmienić. Właściwościami mogą być kolory, suwaki, tekstury, cyfry lub wektory. Jeśli zastosowano materiał do aktywnego obiektu na Scenie widać zmiany własności zastosowane do obiektu w czasie rzeczywistym.

Istnieją dwa sposoby zastosowania tekstury do obiektu:

  1. przeciągnij ją z widoku Projektu do do kwadratowego miejsca tekstury
  2. Naciśnij przycisk Select i wybierz teksturę z listy która się wyświetli

Dwie opcje umieszczenia są dostępne dla każdej tekstury:

  • Tiling skaluje teksturę wzdłuż.
  • Offset skaluje teksturę wokół.

Wbudowane Shader-y

Tu znajduje się biblioteka wbudowanych Shader-ów które są instalowane przy instalacji Unity. Istnieje ponad 30 tych wbudowanych Shader-ów, oraz sześć rodzin podstawowych.

  • Normal: Dla nieprzezroczystych teksturowanych obiektów
  • Transparent: Dla obiektów częściowo przezroczystych. Tekstury z kanałem alfa definiuje poziom przejrzystości.
  • TransparentCutOut: Dla obiektów, które są tylko w pełni nieprzezroczyste i w pełni przezroczyste obszary, takie jak płoty.
  • Self-Illuminated: Dla obiektów, które mają lekkie elementy świecące.
  • Reflective: Dla nieprzezroczystych teksturowanych obiektów, które odzwierciedlają środowisko Cubemap

W każdej z grup wbudowanych shader-ów w zakresie od złożoności poszeregowano je od prostego VertexLit na złożony Parallax Bumped with Specular. Więcej informacji na temat wydajności Shader-ów możesz przeczytać na stronie wbudowane Shader-y wydajność

Siatka ta wyświetla miniatury wszystkich Shader-ów wbudowanych:

materials-1.jpg

Matryca wbudowanych Shader-ów w Unity

Shader-y - szczegóły techniczne

Unity ma rozbudowany system Shader-ów, pozwalając dostosować wygląd wszystkich w grze grafiki. To działa tak:

Shader zasadzie definiuje formułę jak w grze cieniowanie powinno wyglądać. W danym Shader jest kilka właściwości (zwykle tekstury). Shader-y są realizowane za pośrednictwem materiałów, które są dołączone bezpośrednio do poszczególnych GameObiektów. W ramach materiału, możesz wybrać Shader, a następnie zdefiniować właściwości (najczęściej tekstury i kolory, ale właściwości mogą się zmieniać), które są wykorzystywane przez Shader-y.

Jest to dość skomplikowane, więc spójrzmy na schemat:

materials-2.jpg

Po lewej stronie wykresu jest Carbody Shader. Utworzone są z tego 2 różne materiały Blue car Material i Red car Material. Każdy z tych materiałów ma 2 przypisane tekstury, Car Texture definiuje główną teksturę samochodu oraz Color FX texture. Właściwości te są wykorzystywane przez Shader aby wykończenie samochodu wyglądało jak farby 2 tonowe. Można to zobaczyć na pszodzie samochodu czerwony: jest żółty, gdzie staje kamera a fioletowy zanika jako kąt się zwiększa. Materiały samochodowe są przypisane do 2 samochodów. Samochodowe koła, światła i okna nie mają wpływu na zmiany kolorów, a więc muszą korzystać z innego materiału. Na spodzie znajduje się wykres Simple Metal Shader. Wheel Material używa tego Shader-a. Należy pamiętać, że chociaż same Car Texture zostały użyte tutaj końcowy wynik jest zupełnie inny od karoserii jak Shader zastosowanego materiału jest inny.

Aby było bardziej konkretnie, Shader określa:

  • Metoda do renderowania obiektu. Obejmuje to za pomocą różnych metod, w zależności od graficznego użytkowania końcowego.
  • Wszelkie vertex i fragment programu używane do renderowania.
  • Niektóre właściwości tekstury, które są przypisane w ramach materiałów.
  • Kolor i numer ustawienia, które są przypisane w ramach materiałów.

Materiał określa:

  • Jakie tekstury użyć do renderowania
  • Jakiego koloru użyć do renderowania
  • Wszelkie inne aktywa, takie jak Cubemap, który jest wymagany przez moduł Shader do renderowania.

Shader-y są pisane przez graficznych programistów. Są one tworzone przy użyciu języka ShaderLab, który jest dość prosty. Jednak aby Shader dobrze działał na różnych kartach graficznych wymaga zaangażowanych praca i dość obszernej wiedzy o tym, jak pracują karty graficzne.

Liczne Shader-y wbudowane są w Unity, a trochę wiecej dochodzi z biblioteki Standard Assets. Dużo więcej informacji o Shader-ach jest w przewodniku Wbudowane Shaders-y.


Poprzedni Następny

unity_manual/materials.txt · ostatnio zmienione: 2012/12/16 16:41 przez valaantha
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki