Kết xuất dựa trên vật lý (PBR) cho phép bạn thể hiện độ bóng và ánh sáng thực tế bằng cách sử dụng nhiều loại hình ảnh kết cấu, hay bản đồ, trên một đối tượng duy nhất. Việc kết hợp nhiều bản đồ kết cấu có thể mô phỏng chính xác hơn màu sắc, độ nhám và độ phản chiếu trong bất kỳ môi trường ánh sáng nào và có thể nâng cao các yếu tố hình ảnh của tài sản và môi trường của bạn.


Có nhiều ứng dụng và quy trình làm việc để tạo ra các kết cấu PBR. Bạn có thể sử dụng chúng trong các giai đoạn mô hình hóa và tạo kết cấu của việc tạo đối tượng 3D tùy chỉnh, với điều kiện rằng Roblox Studio hỗ trợ các bản đồ kết cấu cụ thể mà bạn đang sử dụng.
Hướng dẫn này cung cấp hướng dẫn về cách thiết lập các đối tượng lưới của bạn để sử dụng các bản đồ kết cấu PBR, và mô tả các trường hợp sử dụng phổ biến và các phương pháp tốt nhất cho các bản đồ kết cấu được Roblox hỗ trợ. Khi tạo bề mặt của riêng bạn, hãy xem tham chiếu vật liệu để biết các giá trị vật liệu phổ biến, so sánh hình ảnh và ví dụ về quần áo.
Bật hình thức bề mặt
Bạn có thể thêm các kết cấu PBR vào bất kỳ MeshPart nào bằng cách thêm một đối tượng SurfaceAppearance mà ghi đè lên kết cấu gán ban đầu. Nói chung, bạn không thể sửa đổi các thuộc tính của SurfaceAppearance bằng các kịch bản trong một trò chơi vì động cơ yêu cầu một số xử lý trước để hiển thị các đồ họa này. Tương tự như việc thêm một kết cấu cơ bản, mỗi bản đồ hình ảnh kết cấu phải trỏ đến ID tài sản hình ảnh đã tải lên thích hợp.
Để bật hình thức bề mặt cho một MeshPart:
Trong cửa sổ Explorer, di chuột qua MeshPart và nhấp vào nút ⊕.
Chèn một SurfaceAppearance từ menu ngữ cảnh.

Khi bạn sẵn sàng thêm các bản đồ kết cấu vào đối tượng SurfaceAppearance, bạn có thể nhấp vào từng thuộc tính bản đồ trong cửa sổ Properties và nhập một ID tài sản.
Bản đồ kết cấu
Studio hiện hỗ trợ 5 loại bản đồ kết cấu PBR: màu sắc, bình thường, độ nhám, độ kim loại, và phát quang. Mỗi bản đồ này tương ứng với một khía cạnh quan trọng của hình thức bề mặt của đối tượng. Các bản đồ kết cấu chỉ thay đổi hình thức hình ảnh và không ảnh hưởng đến hình học của đối tượng MeshPart.
Xem các ví dụ sau để có cái nhìn tổng quan về các bản đồ kết cấu được Roblox hỗ trợ và các tài nguyên bổ sung:
Thuộc tính ColorMap thiết lập dữ liệu màu sắc của bề mặt, bao gồm bất kỳ độ trong suốt nào có trong bản đồ. Xem màu sắc (albedo) để biết thêm thông tin.



Màu sắc (albedo)
Màu sắc, hay albedo, bản đồ xác định màu sắc của kết cấu của bạn và chủ yếu bao gồm thông tin màu sắc với ít hoặc không có thông tin ánh sáng hoặc kết cấu. Để tùy chỉnh thêm, bạn cũng có thể thêm độ trong suốt vào kết cấu albedo của mình bằng cách thêm độ mờ vào bản đồ hình ảnh của bạn.
Chế độ alpha
Đối với các đối tượng yêu cầu các phần trong suốt một phần hoặc hoàn toàn, chẳng hạn như cỏ, lá, ren, hoặc các hình dán như bụi bẩn hoặc bẩn, bạn có thể sử dụng nhiều chế độ alpha khác nhau để áp dụng độ trong suốt cho bản đồ màu sắc của bạn. Nếu định dạng hình ảnh bản đồ màu sắc của bạn hỗ trợ các kênh alpha, bạn có thể áp dụng một bản đồ alpha xám nơi 0.0 là trong suốt và 1.0 là không trong suốt. Tương tự, khi sử dụng một định dạng hình ảnh như .png, bất kỳ độ mờ nào trên bản đồ màu sắc sẽ áp dụng như độ trong suốt trên tài sản.
Bạn có thể áp dụng độ trong suốt theo hai hành vi khác nhau bằng cách thiết lập các giá trị AlphaMode sau:
- Không trong suốt — Bỏ qua kênh alpha của ColorMap và sử dụng giá trị màu sắc trực tiếp từ bản đồ màu sắc.
- Chồng lên — Chồng bản đồ ColorMap lên màu của lưới bên dưới MeshPart.Color. Các bản đồ màu sắc sử dụng chế độ chồng lên sẽ tiết lộ màu sắc cơ bản của lưới ở bất kỳ đâu có độ trong suốt. Đây là cài đặt mặc định.
- Độ trong suốt — Loại bỏ lưới nhìn thấy dựa trên độ trong suốt trong ColorMap. Điều này làm cho lưới trở nên trong suốt và không tiết lộ màu sắc lưới gốc bất cứ khi nào có độ trong suốt.
Không trong suốt
Bạn có thể sử dụng chế độ Enum.AlphaMode.Opaque để bỏ qua hoàn toàn kênh alpha của ColorMap. Trong trường hợp này, giá trị alpha được giả định là 1 (hoàn toàn không trong suốt).
Ví dụ sau đây minh họa cách chế độ Opaque hoạt động bằng cách sử dụng một đối tượng màu xanh làm tham chiếu:
Chồng lên
Bạn có thể sử dụng Enum.AlphaMode.Overlay để tiết lộ các phần của màu sắc gốc của lưới. Vì các khu vực trong suốt của bản đồ màu sắc phơi bày màu sắc bên dưới, bạn có thể thiết kế một bản đồ kết cấu độc đáo mà tiết lộ một phần hoặc hoàn toàn màu sắc Color của lưới cho các tông màu da tùy chỉnh hoặc các tình huống khác với màu sắc độc đáo.
Ví dụ sau đây minh họa cách chế độ Overlay hoạt động bằng cách sử dụng một hình cầu màu xanh nhạt làm tham chiếu:
Ví dụ sau đây sử dụng chế độ Overlay cho các nhân vật tùy chỉnh, tiết lộ tông màu da gốc của nhân vật:


Xem tông màu da tùy chỉnh để biết thêm chi tiết về việc tối ưu hóa một lớp phủ cho da và các ứng dụng tương tự.
Độ trong suốt
Bạn có thể sử dụng chế độ Enum.AlphaMode.Transparency để tạo ra các đối tượng phức tạp hoặc cực kỳ tinh vi, chẳng hạn như ren hoặc lưới, bằng cách loại bỏ các phần nhìn thấy của lưới như một lựa chọn thay thế cho việc điêu khắc hình học lưới. Vì điều này không ảnh hưởng đến hình học của đối tượng lưới, điều này có thể cho phép bạn tạo ra các đối tượng chi tiết mà không bị ảnh hưởng bởi hiệu suất của một mô hình lưới phức tạp.
Ví dụ sau đây minh họa cách độ trong suốt một phần và hoàn toàn trong chế độ này loại bỏ trực quan các phần của lưới:



Có hai kết quả của chế độ Transparency, tùy thuộc vào việc MeshPart.Transparency được đặt thành 0 hoặc ít nhất 0.02, mặc dù độ chính xác số có thể dẫn đến các giá trị nhỏ như 0.01 kích hoạt độ trong suốt không nhìn thấy.
- Khi alpha được sử dụng để cắt ra hình dạng của các đối tượng chủ yếu không trong suốt với các cạnh sắc nét như thực vật, vải ren và lưới, hãy đặt MeshPart.Transparency thành 0. Khi các phần của bề mặt hoàn toàn không trong suốt, động cơ Roblox có thể hiển thị chúng với độ che khuất dựa trên độ sâu chính xác. Các bề mặt không trong suốt cũng thường hoạt động tốt hơn với các hiệu ứng dựa trên độ sâu như DepthOfFieldEffect, khúc xạ kính và nước, và phản chiếu nước.
- Khi alpha được sử dụng để thêm chi tiết cho các đối tượng trong suốt hoặc các đối tượng có độ mờ dần mượt mà, hãy đặt MeshPart.Transparency thành ít nhất 0.02. Điều này cải thiện chất lượng pha trộn cho các đối tượng như cửa sổ bẩn và lông vũ có cạnh mềm, nhưng nó sẽ không hoạt động với tất cả các hiệu ứng.
Mặt nạ tông màu
Bạn có thể sử dụng chế độ Enum.AlphaMode.TintMask để áp dụng tông màu SurfaceAppearance.Color cho các khu vực chọn lọc của một bề mặt. Tông màu mạnh nhất ở nơi kênh alpha hoàn toàn nhìn thấy và không được áp dụng ở nơi kênh alpha trong suốt.

Tông màu màu sắc
Bạn có thể áp dụng một tông màu cho bản đồ màu sắc của mình bằng cách sửa đổi thuộc tính SurfaceAppearance.Color. Tông màu không ảnh hưởng đến hiệu suất và bạn có thể tiết kiệm bộ nhớ bằng cách tái sử dụng một bản đồ màu sắc duy nhất với các tông màu khác nhau. Sử dụng tông màu để tạo ra sự biến đổi chi phí thấp bổ sung giữa các kết cấu PBR của MeshPart của bạn hoặc để lập trình sửa đổi màu sắc bề mặt PBR của bạn trong thời gian thực.



Tông màu SurfaceAppearance.Color được áp dụng như một hệ số nhân, vì vậy hình thức cuối cùng là một hàm của Color3 (màu sắc texel) nhân với SurfaceAppearance.Color. Điều này có nghĩa là việc tạo bản đồ SurfaceAppearance.ColorMap gốc của bạn bằng các màu xám gần trắng tạo ra hiệu ứng tông màu mạnh nhất khi thuộc tính này được áp dụng.
Tông màu chỉ áp dụng cho SurfaceAppearance.ColorMap và không áp dụng cho MeshPart.Color. Bạn có thể tiếp tục sử dụng các kênh alpha khi áp dụng độ trong suốt.
Khi SurfaceAppearance.AlphaMode được đặt thành Overlay và một kênh alpha có mặt, màu sắc MeshPart.Color bên dưới được tiết lộ và tông màu SurfaceAppearance.Color chỉ áp dụng cho bản đồ màu sắc SurfaceAppearance nhìn thấy.
Khi SurfaceAppearance.AlphaMode được đặt thành TintMask và một kênh alpha có mặt, kênh alpha điều khiển lượng tông màu SurfaceAppearance.Color. Tông màu mạnh nhất ở nơi kênh alpha hoàn toàn nhìn thấy và không được áp dụng ở nơi kênh alpha trong suốt.

Bình thường
Bản đồ bình thường, hay bề mặt, thêm độ sâu kết cấu cho bề mặt của bạn và hoạt động tương tự như một bản đồ độ cao. Do đó, hiệu ứng có thể mờ đi hoặc tăng cường tùy thuộc vào góc nhìn và môi trường ánh sáng.
Trong hình dưới đây, bạn có thể chuyển đổi giữa tham chiếu lưới và tham chiếu bản đồ để so sánh các giá trị bản đồ bình thường:



Các kênh R, G, và B của hình ảnh tương ứng với các thành phần X, Y, và Z của vector bề mặt cục bộ. Một hình ảnh đồng nhất có màu [127, 127, 255] chuyển thành một bản đồ bình thường hoàn toàn phẳng. Roblox chỉ hỗ trợ các bản đồ bình thường định dạng OpenGL - Không gian tiếp tuyến.
Các bản đồ bình thường ảnh hưởng rõ rệt đến bề mặt hình ảnh của một lưới và có thể làm nổi bật các đường nối khó chịu trong kết cấu của bạn. Bất cứ khi nào có thể, hãy giữ cho các đường nối kết cấu của bạn được ẩn để tránh các vấn đề hình ảnh với lưới của bạn.
Độ nhám
Các bản đồ độ nhám, hay bề mặt vi mô, xác định cách ánh sáng được phân tán trên bề mặt mô hình của bạn. Khi độ nhám ở mức 0%, bề mặt không phân tán ánh sáng chút nào, dẫn đến một phản chiếu sắc nét và sáng hơn nhiều và độ bóng trên vật liệu của bạn. Ở mức 100%, ánh sáng và phản chiếu phân tán đều trên mô hình dẫn đến một bề mặt mờ ít phản chiếu hơn.
Hình dưới đây cho thấy sự so sánh của các giá trị bản đồ độ nhám khác nhau:



Độ nhám có thể ảnh hưởng đến mức độ phản chiếu của một đối tượng ở các góc độ khác nhau, được gọi là hiệu ứng Fresnel. Quy trình fresnel của Studio nhằm đạt được độ chính xác vật lý trong thế giới thực, mặc dù bạn có thể nhận được sự đóng góp phản chiếu không mong đợi ở một số góc độ ngay cả với các bề mặt nhám. Trong một số trường hợp, bạn có thể bù đắp bằng cách tăng giá trị bản đồ độ nhám của bạn lên khoảng 0.1 nhám hơn để đạt được phản ứng ánh sáng nhất quán với các vật liệu của bạn.
Mặc dù Roblox hiển thị hiệu ứng ánh sáng này một cách chính xác, độ sáng và độ phản chiếu của một bề mặt có thể không phản ứng nhất quán giữa phần mềm tạo nội dung kết cấu của bạn, chẳng hạn như Substance Painter, và Studio. Xem ví dụ về quần áo để biết sự khác biệt trong việc hiển thị giữa các ứng dụng.
Độ kim loại
Độ kim loại xác định độ phản chiếu của một bề mặt. Trong hầu hết các trường hợp, bạn nên đặt giá trị này thành 0% (không phải kim loại) hoặc 100% (kim loại), mặc dù bạn có thể sử dụng các giá trị độ kim loại một phần khi tạo ra các bề mặt có các thuộc tính phản chiếu vừa phải như satin hoặc lụa. Thực hành này có thể giả lập một cách tinh tế các phản chiếu trong vật liệu để làm nổi bật màu sắc từ bản đồ màu sắc/albedo hơn là các màu sắc phản chiếu trong môi trường.
Xem hình dưới đây để so sánh các giá trị bản đồ độ kim loại khác nhau:



Các trình kết xuất PBR khác nhau sử dụng các quy trình làm việc khác nhau để xử lý độ phản chiếu. Studio chỉ sử dụng quy trình làm việc độ kim loại xác định liệu một vật liệu là không kim loại hay kim loại, đôi khi được gọi là cách điện hoặc dẫn điện.
Mặt nạ phát quang
Một kết cấu xám EmissiveMaskContent áp dụng một mặt nạ phát quang trên bề mặt. Điều này cho phép bạn sử dụng một kết cấu để kiểm soát độ phát quang cho nhiều kiểm soát nghệ thuật hơn so với vật liệu Neon tất cả hoặc không có và cho phép bạn tạo ra các hiệu ứng phát sáng chi tiết như văn bản phát sáng, áo giáp tương lai, hoặc sinh vật phát quang.
Thuộc tính EmissiveTint liên quan xác định màu sắc tông màu cho sự đóng góp phát quang, và EmissiveStrength xác định độ mạnh của sự đóng góp phát quang.







