Fizycznie oparte renderowanie (PBR) tekstury pozwalają na reprezentację realistycznego oświetlenia i renderowania za pomocą wielu rodzajów obrazów teksturowych lub map na jednym obiekcie.Połączenie wielu map tekstur może bardziej dokładnie symulować kolor, szorstkość i odblaskowość w dowolnym środowisku oświetleniowym i może poprawić wizualne elementy twoich zasobów i środowisko.


Dostępne są różne aplikacje i przepływy pracy do tworzenia tekstur PBR.Możesz ich używać podczas faz modelowania i teksturowania dziełoniestandardowego obiektu 3D, pod warunkiem że Roblox Studio wspiera konkretne mapy tekstur, których używasz.
Ten przewodnik zawiera instrukcje dotyczące ustawienia twoich obiektów siatki do korzystania z map tekstur PBR i opisuje powszechne przypadki użycia i najlepsze praktyki dla wspieranych przez Roblox map tekstur PBR .Podczas tworzenia własnych powierzchni zobacz odniesienia materiałowe na wspólne wartości materiałowe, porównania obrazów i przykłady odzieży.
Włącz wygląd powierzchni
Możesz dodać tekstury PBR do dowolnego MeshPart poprzez dodanie obiektu SurfaceAppearance, który zastąpi oryginalną przypisany teksturę.ogólnerzecz biorąc, nie możesz modyfikować właściwości SurfaceAppearance przez skrypty podczas doświadczenia, ponieważ silnik wymaga pewnej obróbki przedstawienia tych grafik.Podobnie do dodania podstawowej tekstury każda mapa obrazu tekstury musi wskazywać na odpowiedni ID przesłanego obrazu.
Aby włączyć wygląd powierzchni dla MeshPart :
W oknie Eksploratora przewiń nad MeshPart i kliknij przycisk ⊕.
Wstaw SurfaceAppearance z menu kontekstowego.
Kiedy jesteś gotowy, aby dodać mapy tekstur do obiektu SurfaceAppearance, możesz kliknąć każdą właściwość mapy w oknie Właściwości i wprowadzić ID zasobu.
Mapy tekstury
Studio obecnie wspiera 4 rodzaje map tekstur PBR: kolor, normalny, grubość i metalowość.Każda z tych map odpowiada ważnemu aspektowi wyglądu powierzchni obiektu.Mapy tekstur zmieniają tylko wygląd wizualny i nie wpływają na geometrię obiektu MeshPart.
Zobacz następne przykłady, aby uzyskać przeglad wspieranych przez Roblox map tekstur i dodatkowych zasobów:
Właściwość ColorMap ustawia dane kolorowe powierzchni, w tym wszelką przejrzystość obecną na mapie.Zobacz kolor (albedo) dla dodatkowych informacji.



Kolor (albedo)
Kolor lub odbicie mapuje kolor twojej tekstury i składa się głównie z informacji o kolorze z niewielką ilością informacji o oświetleniu lub teksturze.Aby uzyskać dodatkową personalizację, możesz również dodać przezroczystość w swojej teksturze albedo poprzez dodanie przezroczystości do mapy obrazu.
Tryby alfa
Dla obiektów, które wymagają częściowych lub całkowitych sekcji przejrzystości, takich jak trawa, liście, sznurek lub nadruki, takie jak brud lub grunge, możesz użyć różnych trybów alfa , aby zastosować przejrzystość do mapy kolorów.Jeśli format obrazu mapy kolorów wspiera kanały alfa, możesz zastosować mapę alfa o skali szarości, w której 0.0 jest przezroczysta, a 1.0 jest niedostępna.Podobnie, gdy używa się formatu obrazu, takiego jak .png, każda niedostateczna przejrzystość na mapie kolorów stosuje się jako przejrzystość na zasobie.
Możesz zastosować przejrzystość w dwóch różnych zachowaniach, ustawiając następujące AlphaMode wartości:
- Przykrycie — Przykrywa ColorMap nad podstawową siatką MeshPart.Color.Kolorowe mapy za pomocą Przykrycia ujawniają podstawowy kolor siatki w dowolnym miejscu, w którym istnieje przejrzystość siatki.To jest domyślne ustawienie.
- Przezroczystość — Usuwa widoczną siatkę w oparciu o przejrzystość w ColorMap.To renderuje przeźroczystość siatki i nie ujawnia oryginalnego koloru siatki za każdym razem, gdy jest obecna przejrzystość.
Przykrycie
Możesz użyć Przykrycia , aby ujawnić sekcje oryginalnego koloru siatki.Ponieważ przezroczyste obszary mapy kolorów ujawniają podstawowy kolor, możesz zaprojektować unikalną mapę tekstur, która częściowo lub w pełni ujawnia właściwość siatki Color dla niestandardowych odcieni skóry lub innych sytuacji z unikalnymi kolorami.
Poniższy przykład pokazuje, jak działa tryb przezroczystości używając odniesienia białej kuli:



Poniższy przykład używa trybu Przykrycia dla niestandardowych znaków, ujawniając oryginalny odcień skóry znaku:


Zobacz niestandardowy odcień skóry dla dodatkowych szczegółów na temat optymalizacji przekładki dla skóry i podobnych aplikacji.
Przezroczystość
Możesz użyć trybu Przezroczystość , aby tworzyć skomplikowane lub bardzo precyzyjne obiekty, takie jak sznurek lub siatka, usuwając widoczne części siatki jako alternatywę dla rzeźbienia geometrii siatki.Ponieważ nie wpływa to na geometrię obiektu siatki, może to umożliwić tworzenie szczegółowych obiektów bez wpływu na wydajność skomplikowanego modelu siatki.
Poniższy przykład pokazuje, jak częściowa i pełna przejrzystość w tym trybie wizualnie usuwa sekcje siatki:



Istnieją dwa wyniki trybu w zależności od tego, czy jest ustawiony na lub co najmniej , chociaż precyzja liczbowa może prowadzić do małych wartości, takich jak uruchamiających niewidzialną przejrzystość.
- Gdy używa się alfy do wycięcia kształtu większości niedźwigniowych obiektów z twardymi krawędziami, takich jak liście, tkanina i siatka, ustaw MeshPart.Transparency na 0.Gdy części powierzchni są w pełni niedostępne, silnik Roblox może je renderować za pomocą odpowiedniej blokady opartej na głębi.Pochmurne powierzchnie działają również ogólnie lepiej z efektami opartymi na głębokości, takimi jak DepthOfFieldEffect , odbicie szkła i wody oraz odbicie wody.
- Gdy używa się alfy, aby dodać szczegóły do półprzezroczystych obiektów lub obiektów z gładkimi stopniami przezroczystości, ustaw na co najmniej .Poprawia to jakość mieszania dla obiektów takich jak brudne okna i pióra o ostrzu miękkim, ale nie będzie działać z wszystkimi efektami.
Maska odcienia
Możesz użyć trybu Enum.AlphaMode.TintMask w celu zastosowania SurfaceAppearance.Color barwy do wybranych obszarów powierzchni.Barwienie jest najsilniejsze tam, gdzie kanał alfa jest w pełni widoczny i nie jest stosowany tam, gdzie kanał alfa jest przezroczysty.

Kolorowe barwienie
Możesz zastosować odcień do mapy kolorów poprzez zmianę właściwości SurfaceAppearance.Color.Barwienie nie wpływa na wydajność i możesz zaoszczędzić pamięć, ponownie wykorzystując pojedynczą mapę kolorów z różnymi odcieniami.Użyj kolorowania, aby stworzyć dodatkową nisko kosztową odmianę między twoimi MeshPart PBR teksturami lub zmodyfikuj programowo kolory powierzchni PBR w czasie rzeczywistym.



SurfaceAppearance.Color zabarwienie stosuje się jako mnożnik, więc ostateczny wygląd jest funkcją Color3 (kolor texel) razy SurfaceAppearance.Color .Oznacza to, że tworzenie oryginalnego SurfaceAppearance.ColorMap w kolorach blisko białej skali szarych daje najmocniejszy efekt zabarwienia, gdy ta właściwość zostanie zastosowana.
Barwienie odnosi się tylko do SurfaceAppearance.ColorMap i nie do MeshPart.Color. Możesz nadal używać kanałów alfa, gdy stosujesz przejrzystość.
Gdy jest ustawiony na i obecny jest kanał alfa, ujawniony zostaje podstawowy i tylko tintowanie ma zastosowanie do widocznej mapy kolorów .
Gdy SurfaceAppearance.AlphaMode jest ustawione na TintMask i obecny jest kanał alfa, kanał alfa kontroluje ilość SurfaceAppearance.Color barwy.Barwienie jest najsilniejsze tam, gdzie kanał alfa jest w pełni widoczny i nie jest stosowany tam, gdzie kanał alfa jest przezroczysty.

Normalny
Normalna lub powierzchnia mapa dodaje głębokość tekstury do twojej powierzchni i zachowuje się podobnie do mapy wysokościowej .W wynikefekt może wyblaknąć lub zaostrzyć się w zależności od kąta widzenia i środowiskooświetlenia.Gdy normalna mapa nie jest obecna, wartość jest ustawiona na 0.0 .
W poniższej ilustracji możesz przełączać między odniesieniem siatki a odniesieniem mapy do porównań normalnych wartości mapy:



Kanały R , G i B z obrazu odpowiadają odpowiednio komponentom X , Y i Z lokalnego wektora powierzchni.Mundurowy obraz koloru [127, 127, 255] przetłumacza na całkowicie płaską normalną mapę.Roblox wspiera tylko format OpenGL - Tangent Space normalnych map.
Normalne mapy wyraźnie wpływają na powierzchnię wizualną siatki i mogą podkreślać niezręczne szwy w twojej teksturze.W miarę możliwości utrzymaj szwy tekstury ukrytymi, aby uniknąć problemów wizualnych z twoją siatką.
Okrągłość
Pochyłość lub mikropowierzchnia określa, w jaki sposób światło jest rozprzestrzeniane po powierzchni twojego modelu.Gdy szorstkość wynosi 0.0, powierzchnia nie rozprzestrzenia światła w wszystko, co prowadzi do znacznie ostrzejszego i jaśniejszego odblasku oraz błysku na twoim materiale.W 1.0 , światło i odbicia równomiernie rozprzestrzeniają się po modelu, co prowadzi do mniej odblaskowej powierzchni matowej.
Okrągłość może wpłynąć na to, jak odzwierciedlający jest obiekt w różnych kątach, określanym jako efekt Fresnela .Zobacz świeżą dla więcej szczegółów i najlepszych praktyk utrzymywania spójnego zachowania odzwierciedlającego.
Poniższy obraz pokazuje porównania różnych wartości mapy nieostrości:



Freszel
Fresnel odnosi się do ilości odbicia powierzchni w odniesieniu do aktualnego kąta widzenia.Cele przetwarzania Fresnela w Studio mają na celu fizyczną dokładność świata rzeczywistego, choć możesz uzyskać nieoczekiwany wkład specularny w pewnych kątach nawet przy nieostrych powierzchniach.W niektórych przypadkach możesz zrekompensować, uczyniając mapę niedoskonałości bardziej szorstką wokół 0.1 w celu uzyskania spójnej odpowiedzi oświetlenia z twoimi materiałami.
Chociaż Roblox renderuje ten efekt oświetlenia dokładnie, jasność i odblaskowość powierzchni mogą nie reagować spójnie między oprogramowaniem tworzącym treść tekstur, takim jak Substance Painter i Studio.Zobacz przykłady odzieży na różnice w renderowaniu między aplikacjami.
Metalowość
Metalność określa odblaskowość powierzchni.Wartości metalowości znajdują się w przedziale pomiędzy 0.0 a 1.0.Roblox ustawia domyślną wartość na 0.0, jeśli mapa metalowości nie jest obecna.
Zobacz następną ilustrację dla porównań różnych wartości mapy metalności:



Różne renderery PBR wykorzystują różne przepływy pracy do przetwarzania odblaskowości.Studio używa wyłącznie przepływu pracy metalowości, który określa, czy materiał jest niemetalowy lub metalowy, czasami nazywany izolatorem lub przewodnikiem .
W większości przypadków powinieneś ustawić tę wartość na 0.0 (nie metal) lub 1.0 (metal).Możesz używać częściowych wartości metalowości przy tworzeniu bardziej niezwykłych powierzchni o umiarkowanych właściwościach odblaskowych, takich jak satyna lub jedwab.Ta praktyka może sztucznie sfałszować odblaski w materiale, aby podkreślić kolor z mapy kolor/albedo nad kolorami odzwierciedlonymi w środowisku.