Kiến Trúc Tích Hợp Đa Không Gian Khung Cảnh Trong Unity 6 HDRP: Phân Tích Kỹ Thuật Và Giải Pháp Toàn Diện
Phân tích cách gộp hai không gian HDRP trong Unity 6 bằng Light Layers, bóng đổ, volumetrics, skybox, hậu kỳ, và Adaptive Probe Volumes.
Xác Thực Khởi Điểm: Nền Tảng Phân Tách Ánh Sáng Bằng Light Layers
Trong quá trình phát triển các dự án đồ họa phức tạp bằng Unity 6 High Definition Render Pipeline (HDRP), yêu cầu tích hợp hai môi trường hoặc hai không gian bối cảnh (scenes) hoàn toàn biệt lập vào chung một tập tin vật lý đặt ra những thách thức kiến trúc nghiêm trọng. Việc người dùng lựa chọn sử dụng cơ chế Light Layers (hay Rendering Layers) để làm cốt lõi cho việc phân tách các nguồn sáng Directional Light và giới hạn tầm ảnh hưởng của chúng lên các nhóm vật thể cụ thể là một quyết định kỹ thuật hoàn toàn chính xác và tuân thủ chặt chẽ các tài liệu thiết kế cốt lõi của engine.1
Quá trình cấu hình mà giải pháp hiện tại đang áp dụng bao gồm việc truy cập Frame Settings cùng HDRP Asset để kích hoạt Light Layers, sau đó tùy biến tham số Light Layer trong mục General của Directional Light, và cuối cùng đồng bộ hóa tham số Rendering Layer Mask trong phần Additional Settings của Mesh Renderer. Chuỗi thao tác này đã thiết lập thành công một kênh giao tiếp quang học một chiều, đảm bảo rằng các lưới đa giác (mesh) thuộc không gian thứ nhất (Scene 1) chỉ tính toán phản xạ ánh sáng từ mặt trời của không gian thứ nhất (Directional Light 1), và tương tự đối với không gian thứ hai (Scene 2).1
Về mặt bản chất kỹ thuật sâu hơn, hệ thống kết xuất của Unity HDRP hỗ trợ các LayerMasks như một công cụ để hệ thống phân loại bộ đệm (G-buffer) theo từng bit. Một trình kết xuất (Renderer) trong môi trường đồ họa ba chiều có khả năng hỗ trợ tối đa 32 lớp kết xuất (rendering layers) khác nhau. Mặc dù vậy, để tối ưu hóa hiệu suất tính toán và băng thông bộ nhớ VRAM, tất cả các hiệu ứng của HDRP có sử dụng cơ chế Rendering Layers (bao gồm sự chiếu sáng trực tiếp, hiệu ứng Decal và các khối lượng thể tích) hiện tại chỉ hỗ trợ tính toán trên 16 lớp đầu tiên của bộ đệm.1 Điều này có nghĩa là giải pháp gán Layer 1 và Layer 2 hoàn toàn nằm trong vùng an toàn và đảm bảo tính ổn định về mặt hiệu suất. Việc can thiệp thông qua nút Sample Buffer kết hợp với RenderingLayerMask trong ShaderGraph cũng mở ra khả năng tùy biến các vật liệu chuyên biệt chỉ hiển thị hiệu ứng dưới đúng nguồn sáng của layer đó.1
Tuy nhiên, giới hạn của giải pháp hiện tại nằm ở chỗ nó mới chỉ giải quyết được trụ cột đầu tiên của kỹ thuật đồ họa vật lý (Physically Based Rendering - PBR): Ánh sáng chiếu trực tiếp (Direct Lighting). Một hệ sinh thái môi trường hoàn chỉnh và chân thực trong Unity 6 HDRP được cấu thành từ vô số các hệ thống phức tạp hoạt động đan xen. Khi hai không gian bị cưỡng ép phải chia sẻ chung một hệ tọa độ thế giới (world space), sự độc lập về ánh sáng trực tiếp sẽ bị phá vỡ ngay lập tức bởi sự rò rỉ của bóng râm (shadow leaking), sự giao thoa của khí quyển (volumetrics), sự sai lệch của bầu trời (skybox), và sự lây nhiễm của ánh sáng phản xạ gián tiếp (Global Illumination). Việc hoàn thiện giải pháp đòi hỏi một sự can thiệp quy mô lớn vào toàn bộ hệ thống đường ống kết xuất để đảm bảo hai không gian này thực sự vô hình đối với nhau.
Giới Hạn Kiến Trúc Phức Tạp Của Bóng Đổ Đa Hướng (Directional Shadows)
Sau khi tách biệt kênh ánh sáng, chướng ngại vật kỹ thuật lớn nhất xuất hiện ở quy trình kết xuất bóng râm (Shadow Mapping). Trong cấu hình mặc định của HDRP, hệ thống tự động đồng bộ hóa Light Rendering Layers và Shadow Rendering Layers. Cơ chế này ngầm định rằng bất kỳ bề mặt hình học nào nhận photon ánh sáng từ một nguồn thì nó cũng đồng thời đóng vai trò là một đối tượng chắn sáng và đổ bóng cho chính nguồn sáng đó.1 Nhưng có một giới hạn vật lý cốt lõi được lập trình cứng (hard-coded) trong đường ống kết xuất của Unity: Cả Universal Render Pipeline (URP) và High Definition Render Pipeline (HDRP) đều chỉ hỗ trợ duy nhất một nguồn sáng Directional Light có khả năng đổ bóng theo thời gian thực (real-time shadow-casting) tại bất kỳ thời điểm nào trên một camera.2
Khác với các nguồn sáng dạng điểm (Point Light) hay dạng nón (Spot Light) với phạm vi ảnh hưởng cục bộ, Directional Light đại diện cho ánh sáng mặt trời với phạm vi toàn cục. Để xử lý bóng râm cho một diện tích khổng lồ mà không làm cạn kiệt tài nguyên máy tính, HDRP áp dụng kỹ thuật Cascade Shadow Maps (CSM) - Phân tầng bản đồ bóng râm.3 Thay vì tạo ra một bản đồ bóng duy nhất với độ phân giải siêu cao, hệ thống chia không gian quan sát của camera thành nhiều tầng (thường là 4 cascades mặc định, có thể tùy chỉnh trong HD Shadow Settings của Volume).3 Mỗi tầng cascade đòi hỏi engine phải thực hiện một quá trình nội suy hình học riêng biệt (geometry pass) và tạo ra một bản đồ bóng râm riêng. Do đó, một Directional Light duy nhất thực chất yêu cầu tới 4 bản đồ bóng râm được kết xuất liên tục.3
Nếu Unity cho phép hai nguồn sáng Directional Lights song song tạo bóng bằng kỹ thuật CSM, số lượng shadow maps phải tính toán sẽ tăng vọt lên 8 bản đồ ở độ phân giải cao cho mỗi khung hình, kéo theo sự cạn kiệt băng thông bộ nhớ và làm tụt giảm tốc độ khung hình (FPS) đến mức không thể chấp nhận được ngay cả trên các hệ thống phần cứng tối tân.2 Khi hai Directional Lights cùng tồn tại trong scene của người dùng, Unity sẽ tước quyền tạo bóng của một trong hai. Ánh sáng thứ hai sẽ chỉ đóng vai trò cung cấp màu sắc (color contribution) mà không thể tạo ra những vùng tối đổ trên mặt đất (drop shadows), khiến không gian thứ hai trở nên phẳng, thiếu chiều sâu và phi vật lý.2
Hơn nữa, nếu không cẩn thận, bóng râm từ vật thể của Không gian 1 có thể vô tình đổ lên vật thể của Không gian 2 dù chúng không hề nhận sáng từ nhau. Để ngăn chặn sự rò rỉ hình học này, cần phải giải quyết việc phân tách Shadow Layers. Mặc định bóng râm đồng bộ với ánh sáng, nhưng để kiểm soát hoàn toàn, kiến trúc sư cần nhấp vào Directional Light, điều hướng đến phần Shadows và kích hoạt hộp kiểm Custom Shadow Layers.1 Tính năng này cho phép ngắt kết nối Shadow Rendering Layers khỏi Light’s Rendering Layers, bảo đảm rằng lưới vật thể (Mesh) ở Không gian 1 chỉ đổ bóng trên kênh Shadow Layer 1, và hoàn toàn tàng hình đối với quá trình dò tia bóng râm của Không gian 2.1
Các Chiến Lược Khắc Phục Khả Năng Đổ Bóng Dành Cho Đa Môi Trường
Để vượt qua giới hạn một mặt trời đổ bóng của Unity 6, cần phân tích tính chất tĩnh và động của các đối tượng trong hai không gian để áp dụng một trong hai chiến lược can thiệp kỹ thuật sau đây. Mỗi chiến lược đều đi kèm với các thao tác cấu hình tinh vi nhằm đánh lừa hệ thống giới hạn CSM.
Chiến Lược Giả Lập Mặt Trời Bằng Box-Shaped Spot Light
Nếu cả hai không gian đều yêu cầu mức độ tương tác bóng râm động (dynamic shadows) với cường độ cao, chẳng hạn như cây cối đung đưa theo gió, nhân vật liên tục di chuyển, và chu kỳ ngày đêm luân phiên, thì việc sử dụng hai Directional Lights là bất khả thi. Thay vào đó, giải pháp tối ưu là thay thế Directional Light của Không gian 2 bằng một nguồn sáng Spot Light kết hợp với hình dạng không gian Box (Box shape).4
Spot Light khác biệt hoàn toàn với Directional Light ở cách nó quản lý tài nguyên: nó chỉ kết xuất đúng một bản đồ bóng râm duy nhất (một shadow map) thay vì bốn bản đồ phân tầng cascade.3 Nhờ đó, nó thoát khỏi giới hạn khắc nghiệt của engine.2 Trong giao diện cấu hình của Spot Light, việc chuyển đổi thuộc tính Shape sang dạng Box cho phép hệ thống tạo ra một khối lượng chiếu sáng định hướng mô phỏng chính xác đường đi song song của các tia sáng mặt trời trong một khu vực giới hạn cục bộ.4
Tuy nhiên, đặc điểm vật lý của Spot Light là ánh sáng bị suy hao theo khoảng cách (distance attenuation). Mặt trời thực tế không có độ suy hao này trong phạm vi của trái đất. Để khắc phục, chỉ cần truy cập vào cài đặt nâng cao của Spot Light, tìm thuộc tính “Range Attenuation” và điều chỉnh hoặc vô hiệu hóa nó.4 Khi sự suy giảm cường độ sáng bị triệt tiêu, Spot Light mang hình dạng Box này sẽ lập tức tạo ra ánh sáng đồng nhất, song song, và đổ bóng râm cứng hoặc mềm tùy chỉnh, không thể phân biệt được với một Directional Light truyền thống, đồng thời hoàn toàn được phân tách thông qua Light Layer 2.4
Chiến Lược Lưu Trữ Bóng Đổ Hỗn Hợp (Mixed Cached Shadows)
Nếu Không gian 1 hoặc Không gian 2 chủ yếu bao gồm các kiến trúc tĩnh như nhà cửa, địa hình, đường xá và chỉ có một vài thực thể động như nhân vật người chơi, việc tận dụng tính năng Mixed Cached Shadows (Lưu trữ bóng đổ hỗn hợp) là một quyết định kiến trúc mang tính đột phá.5 Bắt đầu từ HDRP phiên bản 13.x và 14.0 (trở thành tiêu chuẩn trong Unity 6), tính năng này đã được mở khóa cho Directional Light, cho phép chia bản đồ bóng râm thành hai luồng dữ liệu riêng biệt: tĩnh và động.5
Quy trình kích hoạt giải pháp này đòi hỏi sự đồng bộ giữa hệ thống quản lý dự án và các đối tượng cục bộ. Việc đầu tiên là định cấu hình cho phép HDRP cấp phát bộ nhớ. Cần mở tập tin cấu hình HDRP Asset trong cửa sổ Inspector, đi theo đường dẫn Lighting > Shadows > Directional Light Shadows và bắt buộc phải đánh dấu vào tùy chọn Allow Mixed Cached Shadows.5 Tiếp theo, thao tác trên Directional Light của cảnh: trong thẻ Light, mở rộng mục Shadows và đánh dấu vào Always draw dynamic, sau đó thiết lập tham số Update Mode của ánh sáng từ trạng thái Every Frame (mỗi khung hình) sang On Demand (theo yêu cầu) hoặc OnEnable.5 Cuối cùng, chọn toàn bộ các vật thể tĩnh trong môi trường và kích hoạt tùy chọn Static Shadow Caster trên component Mesh Renderer của chúng.5
Về mặt vận hành nội bộ, khi hệ thống hoạt động ở chế độ này, HDRP sẽ sử dụng cùng một Shadow Atlas cho cả bóng râm lưu trữ (cached) và chưa lưu trữ (non-cached) của các Directional Lights.6 Đối với các vật thể được đánh dấu là tĩnh, bóng râm của chúng chỉ được vẽ một lần duy nhất vào bộ đệm bộ nhớ, trong khi đối với các vật thể động, bóng râm được cập nhật liên tục.5 HDRP sau đó thực hiện một phép toán blit (Bit Block Transfer) để hợp nhất dữ liệu từ bản đồ lưu trữ vào bản đồ động, tiết kiệm một lượng khổng lồ thời gian xử lý hình học (geometry draw calls).5
Mặc dù giải pháp này không trực tiếp cho phép hai Directional Lights cùng đổ bóng mọi lúc, nó giải phóng tài nguyên tính toán để hệ thống có thể chuyển đổi nhanh chóng quyền đổ bóng (shadow rendering authority) giữa các nguồn sáng tùy thuộc vào vị trí của camera, hoặc sử dụng một Directional Light cho các bóng râm lưu trữ và sử dụng một nguồn sáng cục bộ cho bóng râm động.7 Lưu ý rằng, vì các bóng râm phân tầng (cascade shadow maps) của Directional Light phụ thuộc vào góc nhìn (view-dependent), việc camera di chuyển xuyên qua ranh giới của các tầng cascade có thể gây ra sai lệch hình ảnh ở rìa bóng râm. Để ngăn ngừa, cần tạo một tập lệnh C# để gọi hàm RequestShadowMapRendering mỗi khi camera dịch chuyển một khoảng cách nhất định nhằm làm mới bản đồ lưu trữ.5 Các hàm như SetShadowResolution() hay SetShadowUpdateMode() cũng được cung cấp qua API để kiểm soát bộ đệm này trong quá trình thực thi thời gian thực.5
| So Sánh Giải Pháp Bóng Đổ Đa Cảnh | Directional Light Chuyển Đổi Quyền | Box-Shaped Spot Light | Mixed Cached Shadows |
|---|---|---|---|
| Bản chất hoạt động | Tắt bóng đèn 1, bật bóng đèn 2 thông qua script.7 | Dùng nguồn sáng thể tích giới hạn mô phỏng mặt trời.4 | Lưu bộ đệm bóng tĩnh, cập nhật bóng động.5 |
| Tiêu thụ Tài Nguyên VRAM | Thấp (Chỉ 1 hệ thống cascade hoạt động).3 | Trung Bình (Thêm 1 shadow map không phân tầng).3 | Rất Cao (Cần lưu trữ song song bản đồ tĩnh và động).5 |
| Hỗ trợ Light Layers | Có (Hỗ trợ toàn diện).1 | Có (Hỗ trợ toàn diện).1 | Có (Hỗ trợ toàn diện).1 |
| Phạm vi hiệu quả | Phù hợp khi hai không gian không cùng xuất hiện trên màn hình. | Tuyệt vời cho các khu vực giao thoa, nơi cần 2 mặt trời cùng đổ bóng.2 | Tối ưu cho bối cảnh rộng lớn nhưng chủ yếu là vật thể tĩnh.5 |
| Hạn chế kỹ thuật | Chuyển đổi đột ngột có thể làm gián đoạn thị giác. | Cần cẩn trọng điều chỉnh Range Attenuation và kích thước Box.4 | Đòi hỏi lập trình C# (RequestShadowMapRendering) khi Camera di chuyển.5 |
Quản Lý Thể Tích Khí Quyển (Volumetrics) Và Phân Tách Skybox
Ánh sáng trực tiếp và bóng đổ chỉ chiếm một nửa bức tranh của một đường ống kết xuất vật lý. Nửa còn lại thuộc về bầu trời, các lớp khí quyển, và các hiệu ứng màn hình. Trong thư mục gốc của câu hỏi, người dùng có đề cập đến việc sử dụng “Volume riêng”. Kiến trúc Volume của HDRP là một nền tảng dựa trên việc nội suy (interpolation) giá trị các thuộc tính tùy thuộc vào vị trí không gian của Camera so với các khung giới hạn (bounding boxes), chứ không phân loại thông qua LayerMask trên từng Mesh độc lập.8 Sự khác biệt mang tính triết lý thiết kế này có nghĩa là khí quyển không quan tâm vật thể đó thuộc Scene 1 hay Scene 2, nó chỉ quan tâm camera đang nằm ở đâu.
Để gộp hai Scene mà vẫn giữ nguyên bản sắc môi trường của từng Scene, yêu cầu tiên quyết là phải chuyển đổi toàn bộ tư duy thiết kế từ Global Volume (thể tích toàn cục) sang Local Volume (thể tích cục bộ). Global Volume ảnh hưởng đến Camera bất kể nó nằm ở đâu trong thế giới 3D, điều này sẽ tạo ra một lớp phủ đồng nhất phá hủy sự phân tách của hai không gian.8
Quy trình cô lập môi trường đòi hỏi các thao tác sau: Loại bỏ hoặc giảm Priority (độ ưu tiên) của Global Volume mặc định.9 Tạo ra hai GameObject trống tương ứng với hai không gian, thêm component Volume và thiết lập chế độ Mode thành Local.8 Bắt buộc phải gắn thêm component Box Collider (hoặc Mesh Collider) với thuộc tính Is Trigger được bật để định nghĩa ranh giới vật lý mà không gian khí quyển đó tồn tại.8 Việc chuyển giao giữa Không gian 1 và Không gian 2 được kiểm soát thông qua tham số Blend Distance (Khoảng cách pha trộn). Giá trị Blend Distance quy định khoảng lùi từ mép của Box Collider vào bên trong, nơi các thông số đồ họa bắt đầu nội suy. Nếu thiết lập Blend Distance bằng 0, không gian sẽ bị “cắt ngang” lập tức khi người chơi bước qua lằn ranh. Nếu tăng giá trị này, môi trường (như sương mù, màu sắc ánh sáng) sẽ từ từ hòa quyện vào nhau.10
Override Bầu Trời Bằng Visual Environment
Bầu trời trong Unity 6 HDRP không được định nghĩa bằng cửa sổ Environment Lighting cũ kỹ của Built-in RP, mà bị chi phối hoàn toàn bởi một Volume Override đặc biệt có tên là Visual Environment.11 Sự phân tách bầu trời đòi hỏi việc gán Visual Environment vào từng Local Volume của Không gian 1 và Không gian 2.
Bằng cách kích hoạt tham số Sky Type, hệ thống cho phép chọn các loại hình bầu trời khác nhau như Physically Based Sky cho Không gian 1 (ví dụ một buổi trưa quang đãng) và HDRI Sky cho Không gian 2 (một đêm trăng mờ ảo).11 Do kiến trúc Volume hoạt động dựa trên camera, khi camera lọt vào Box Collider của Không gian 1, engine sẽ tự động tính toán hình ảnh bầu trời tương ứng mà không cần dòng mã nào. Nó cũng kiểm soát cả Cloud Layer (lớp mây) và thông số Ambient Indirect Lighting (Ánh sáng môi trường gián tiếp), đảm bảo rằng bầu trời không chỉ để ngắm mà còn đóng góp chính xác vào sắc thái phản chiếu toàn cục.12 Việc này loại bỏ hoàn toàn hiện tượng Scene 1 vô tình phản chiếu bầu trời của Scene 2.
Độc Lập Hóa Khí Quyển Bằng Local Volumetric Fog
Sương mù trong HDRP được chia làm hai loại. Exponential Fog truyền thống chỉ phủ một màu đơn sắc dựa trên chiều sâu Z-buffer. Tuy nhiên, để đáp ứng chất lượng đồ họa thế hệ mới, Volumetric Fog (Sương mù thể tích) tương tác trực tiếp với các luồng ánh sáng để tạo ra các hiệu ứng God-rays chân thực.13 Nếu sử dụng Volumetric Fog thông qua Volume thông thường, nó vẫn tồn tại nguy cơ lan tỏa sang vùng biên của không gian kế cận. Giải pháp triệt để là sử dụng một thành phần chuyên biệt: Local Volumetric Fog.13
Local Volumetric Fog là một khối sương mù vật lý có thể định hình giới hạn như một hộp định hướng.13 Để vận hành, hệ thống yêu cầu kích hoạt chuỗi cờ (flags) trong Project Settings (Quality > HDRP > Lighting > Volumetrics), HDRP Asset và Frame Settings của camera.13 Component này cung cấp sự kiểm soát tuyệt đối về mật độ thông qua Density Mask 3D Texture, cho phép sương mù cuộn xoáy tự nhiên thay vì đặc sệt.13 Màu sắc phản xạ ánh sáng (Single Scattering Albedo) quyết định sắc thái sương mù khi Directional Light chiếu xuyên qua.14
Chìa khóa để không gian sương mù của Scene 1 không hòa lẫn với Scene 2 nằm ở tham số Blending Mode.14 Mặc định hệ thống sử dụng Additive (Cộng dồn), khiến sương mù chồng lên nhau. Bằng cách đổi Blending Mode thành Overwrite (Ghi đè), khối lượng sương mù này sẽ tàn nhẫn thay thế, xóa bỏ mọi thông số sương mù của cảnh nền nằm trong phạm vi của nó.14 Khi có hai khối sương mù Local Volumetric Fog giao thoa ở ranh giới hai cảnh, tham số Priority sẽ định đoạt lớp nào hiển thị trên cùng, theo quy tắc HDRP kết xuất khối có thứ tự ưu tiên thấp trước, và khối ưu tiên cao hơn sau cùng.14
Hiểu Lầm Về Volume Layer Mask Và Post-Processing
Có một lỗ hổng nhận thức rất phổ biến đối với các nhà phát triển Unity khi cố gắng phân tách hiệu ứng hậu kỳ (Post-processing) như Bloom, Depth of Field, hay Color Grading cho các đối tượng khác nhau. Nhiều người cố gắng điều chỉnh thuộc tính Volume Layer Mask trên Camera với kỳ vọng nó hoạt động giống như Light Layers.15 Thực tế, Volume Layer Mask hoàn toàn không kiểm soát việc vật thể nào nhận hiệu ứng hậu kỳ. Nó chỉ kiểm soát việc Camera nào sẽ chịu sự ảnh hưởng của Volume nào.15
Bởi vì Post-processing là một quy trình kết xuất không gian màn hình (Screen Space). Khi khung hình đến giai đoạn Post-processing, mọi vật thể ba chiều đã bị “ép phẳng” thành một mảng điểm ảnh 2D chứa dữ liệu màu (RGB) và độ sâu (Depth). Hệ thống không còn nhận thức được pixel nào thuộc về Scene 1 hay Scene 2 nữa.16 Do đó, việc dùng Volume Mask để mong Bloom chỉ áp dụng cho Scene 1 là bất khả thi.16
Nếu yêu cầu phân tách hai môi trường khắt khe đến mức các hiệu ứng Post-processing hoặc các thuật toán kết xuất phải được hiển thị chồng chéo nhưng hoàn toàn độc lập (ví dụ: vũ khí cầm tay ở Scene 1 hiển thị đè lên hậu cảnh của Scene 2), giải pháp truyền thống là Camera Stacking (Xếp chồng Camera). Nhưng trong HDRP, Camera Stacking cực kỳ ngốn tài nguyên và gây ra vô số lỗi đồng bộ.16 Giải pháp chuẩn mực và duy nhất được hỗ trợ chính thức bởi Unity là kiến trúc Custom Pass Volume.17
Custom Pass cho phép tiêm (inject) các mã lệnh kết xuất tùy chỉnh vào các giai đoạn cụ thể của đường ống đồ họa (ví dụ: Before Transparent, After Post-Process). Bằng cách thiết lập Custom Pass Volume hoạt động ở chế độ Local hoặc Camera18, và nhắm mục tiêu vào các LayerMask cụ thể, hệ thống có thể kết xuất tách biệt toàn bộ nhóm vật thể của Không gian 2, áp dụng một bộ shader hậu kỳ riêng rẽ, và sau đó hợp nhất lại (composite) lên trên Không gian 1 mà không phá vỡ thông tin che khuất không gian (depth occlusion) hay làm hỏng bộ đệm.17 Biến _FadeValue trong shader và CustomPass.fadeValue trong C# API cho phép kiến trúc sư làm mờ và chuyển đổi mượt mà giữa các lớp hiển thị này dựa trên thang đo từ 0 đến 1, tạo nên một sự phân ly hình ảnh hoàn hảo.18
Kiểm Soát Ánh Sáng Phản Xạ Gián Tiếp Bằng Adaptive Probe Volumes (APV)
Ánh sáng trực tiếp tạo ra sự rực rỡ, nhưng chính ánh sáng gián tiếp (Global Illumination - GI) mới là thứ neo giữ mọi vật thể vào thực tại. Ánh sáng chiếu vào bề mặt cỏ xanh của Không gian 2 sẽ hấp thụ quang phổ và nảy ra tia sáng màu xanh lục lên các bức tường lân cận. Trong bối cảnh gộp hai không gian, khoảng cách vật lý của chúng trong tập tin Scene có thể rất gần. Nếu không có biện pháp cách ly, ánh sáng đỏ rực từ Không gian 1 sẽ rò rỉ (light bleeding) dữ dội sang Không gian 2, phá hủy hoàn toàn định hướng nghệ thuật (Art Direction).
Kể từ Unity 6, cơ sở hạ tầng của ánh sáng gián tiếp đã trải qua một cuộc cách mạng thông qua sự ra đời của Adaptive Probe Volumes (APV).19 Công nghệ này đánh dấu sự kết thúc của việc đặt Light Probe Groups thủ công tẻ nhạt. APV tự động rải một mạng lưới các điểm thu thập dữ liệu ánh sáng (Light Probes) dưới cấu trúc được gọi là “viên gạch” (bricks).19 Mỗi viên gạch chứa một ma trận 4x4x4 (tổng cộng 64 probes).19 Thuật toán thông minh của APV phân tích mật độ hình học: những nơi phức tạp và chật hẹp, nó chia nhỏ gạch để tăng độ phân giải ánh sáng; ở khoảng không gian trống, nó sử dụng gạch lớn thưa thớt để tiết kiệm bộ nhớ.19 Hơn thế nữa, APV tương tác hoàn hảo với cả sương mù thể tích (Volumetric Fog) và hệ thống hạt (VFX Graph), đảm bảo sự liền mạch trong môi trường đồ họa.19
Sự Hỗ Trợ Và Giới Hạn Của Rendering Layers Trong APV
Để đảm bảo rằng hệ thống ánh sáng gián tiếp cũng tôn trọng ranh giới của hai không gian, tính năng Light Layers mà người dùng đã thiết lập ở bước đầu tiên phải được đồng bộ hóa với hệ thống APV. APV hoàn toàn hiểu và hỗ trợ Rendering Layer Masks, nhưng nó bị trói buộc bởi những giới hạn ngặt nghèo về mặt tối ưu hóa: Để bảo vệ bộ nhớ và tốc độ truy xuất, APV chỉ cho phép tối đa 4 Rendering Layers Masks hoạt động đồng thời trong khối dữ liệu lưu trữ.20
Quá trình “nướng sáng” (baking) toàn cầu của Unity diễn ra rất tinh vi. Hệ thống phát ra hàng triệu tia (ray tests) từ mỗi probe để thăm dò không gian xung quanh và thực hiện phân tích độ che khuất (occlusion analysis).21 Trong lúc các tia sáng dội lại, chúng liên tục va chạm với các bề mặt hình học đã được gán sẵn thẻ rendering layers (ví dụ Layer 1 của Không gian 1 và Layer 2 của Không gian 2). Vì một probe chỉ có thể mang duy nhất một mặt nạ trong số 4 mặt nạ đã định nghĩa, Unity sẽ dùng thuật toán đa số để gán mặt nạ đó: nếu đa số tia của một probe chạm vào Layer 1, probe đó sẽ bị khóa vào Layer 1.21
Tuy nhiên, sự tự động hóa này là một thảm họa tại các vùng ranh giới. Những điểm thu nhận ánh sáng nằm lơ lửng giữa Không gian 1 và Không gian 2 sẽ bị trộn lẫn dữ liệu, gây ra hiện tượng ô nhiễm ánh sáng chéo hoặc những khối vuông sáng/tối loang lổ (probe flares/square artifacts) không thể lường trước.22
Cô Lập Ánh Sáng Bằng Probe Adjustment Volume (PAV)
Để dập tắt sự tự do của thuật toán và ép buộc hệ thống tuân theo ý định của người tạo, kiến trúc sư cần phải triển khai một công cụ bẻ lái gọi là Probe Adjustment Volume (PAV).20
PAV là một khối thể tích kiểm soát logic cục bộ, có quyền năng thay đổi dữ liệu APV ở mức độ nguyên thủy nhất trước khi nó truyền đến vật thể. Tính năng quan trọng nhất trong khối lượng này là Override Rendering Layer Mask (Ghi đè mặt nạ lớp kết xuất).21 Các bước triển khai để phân tách hai môi trường:
- Thiết lập một Probe Adjustment Volume với hình dạng Box bao phủ một cách tỉ mỉ toàn bộ cấu trúc lưới của Không gian 1.
- Bên trong bảng Inspector của PAV, kích hoạt chức năng Override Rendering Layer Mask.23
- Loại bỏ hoàn toàn bất kỳ Layer nào không thuộc về Không gian 1 (bao gồm cả Layer 2 của Không gian 2), và chỉ giữ lại Layer 1.20
Khi quá trình này hoàn tất, một cơ chế cách ly sẽ được thiết lập. Tại thời gian thực (runtime), khi nhân vật hoặc đối tượng động di chuyển trong giới hạn của Không gian 1, trình kết xuất (renderer) của chúng sẽ truy vấn mạng lưới APV. Nhờ có cấu hình ghi đè của PAV, vật thể đó sẽ chỉ được phép trích xuất và lấy mẫu (sample) dữ liệu chiếu sáng từ các probes mang nhãn Layer 1.20 Toàn bộ dữ liệu photon ánh sáng vô tình nảy sang từ Không gian 2 sẽ bị từ chối truy cập ở cấp độ bộ đệm. Sự cách ly ánh sáng gián tiếp giữa hai không gian giờ đây đã trở nên tuyệt đối.
Hơn thế nữa, nếu việc gộp hai bối cảnh phục vụ cho kịch bản dịch chuyển tức thời (teleportation) hoặc thay đổi thời gian (như Không gian 1 là ban ngày, Không gian 2 là ban đêm của cùng một khu vực), Unity 6 cung cấp tính năng Lighting Scenarios (Kịch bản chiếu sáng) kết hợp cùng APV.19 Bằng cách bật tính năng này trong HDRP Asset, dữ liệu baking của từng không gian có thể được lưu trữ vào các tài nguyên Kịch bản khác nhau. Tại runtime, API ProbeReferenceVolume cho phép kích hoạt và hoán đổi kịch bản chỉ trong vài mili-giây. Thậm chí, việc kích hoạt Scenario Blending cho phép các hàm C# như BlendLightingScenario nội suy mượt mà dữ liệu GI của Không gian 1 sang Không gian 2 qua từng khung hình (frame), đem đến những hiệu ứng chuyển cảnh kỳ ảo và chuyên nghiệp nhất mà không gây nghẽn cổ chai cho CPU.24
Tối Ưu Hóa Bộ Nhớ Và Quản Trị Tài Nguyên Cấp Thấp
Khi cưỡng ép một engine như Unity kết xuất nhiều hệ thống ánh sáng, bóng râm, và lớp khí quyển song song cho hai môi trường phức tạp, bộ nhớ VRAM của GPU sẽ phải chịu một gánh nặng cực đoan. Sự tinh xảo của một kiến trúc sư hệ thống không chỉ nằm ở việc làm cho mọi thứ chạy được, mà phải đảm bảo nó duy trì một độ trễ khung hình tối thiểu (frametimes) và loại bỏ hoàn toàn các lỗi nhiễu xạ quang học (artifacts).
Giải Phóng Dung Lượng Atlas Bằng Dynamic Rescale
Sự tranh giành không gian trong bộ nhớ bóng râm là mối đe dọa lớn nhất đối với tính toàn vẹn của đồ họa. Như đã phân tích, HDRP phân bổ các bóng râm thông qua hệ thống Atlas tĩnh (kích thước mặc định thường là 4096 x 4096 pixel) được khai báo tại mục HDRP Asset.3 Nếu số lượng bóng đổ từ các nguồn Spot Light (dùng giả lập mặt trời Không gian 2) và Point Lights vượt quá diện tích này, bóng râm của các thực thể sẽ bị vỡ vụn hoặc biến mất.25
Giải pháp phòng ngừa là kích hoạt tính năng Dynamic Rescale (Thay đổi tỷ lệ động) cho cả Punctual Light Shadows và Area Light Shadows trong HDRP Asset.5 Khi tính năng này hoạt động, HDRP sẽ phân tích tỷ lệ diện tích màn hình mà luồng ánh sáng bao phủ. Những nguồn sáng nằm ở xa hoặc bị che khuất một phần sẽ bị ép thu nhỏ độ phân giải bóng râm theo cấp số nhân, nhường chỗ trống trong Atlas cho những vùng bóng râm trọng yếu gần camera.5 Tuy nhiên, cần đặc biệt lưu ý rằng thuật toán Dynamic Rescale bị vô hiệu hóa đối với các bản đồ bóng râm đã được lưu trữ tĩnh (cached shadow maps) của Mixed Cached Shadows, bởi dữ liệu tĩnh không thể co giãn mà không phá vỡ liên kết vật lý.5
Kiểm Soát Chặt Chẽ Max Shadows On Screen và Shadow Bias
Tham số Max Shadows on Screen trong mục Shadows của HDRP Asset đặt ra một giới hạn cứng tuyệt đối về số lượng bóng râm mà phần cứng được phép tính toán trong một khung hình.3 Nếu camera ở một góc độ có thể bao quát một phần cả hai không gian, giới hạn này sẽ bị vượt qua rất nhanh, dẫn đến việc engine loại bỏ ngẫu nhiên các bóng râm. Việc sử dụng occlusion culling kết hợp với các hình học che khuất vật lý giữa ranh giới hai không gian để giảm thiểu số đối tượng được nạp vào bộ đệm bộ nhớ là bắt buộc.16
Khi thực hiện việc giả lập và chia kênh ánh sáng, hiện tượng ánh sáng rò rỉ xuyên thấu qua mặt lưới (light leaking) và hiện tượng mụn bóng râm (shadow acne) sẽ xảy ra thường xuyên hơn do góc chiếu sáng phi tuyến tính. Quản lý hệ thống Shadow Bias trên từng Light component là mấu chốt để giữ vững chất lượng hình ảnh.25 Thay đổi nhẹ thông số Near Plane để đẩy lùi điểm khởi đầu của phép chiếu bóng; tăng cường Normal Bias để dịch chuyển bề mặt lấy mẫu bóng dọc theo pháp tuyến của nó, ngăn chặn sự tự đổ bóng sai lệch; và hiệu chỉnh Slope-Scale Depth Bias cho các bề mặt nghiêng.25 Những sự tinh chỉnh vi mô này, kết hợp với các bộ lọc bóng râm (Shadow filtering) chất lượng cao như PCF (Percentage-Closer Filtering) hoặc PCSS (Percentage-Closer Soft Shadows), sẽ đảm bảo ranh giới bóng râm mềm mại và che lấp mọi nhược điểm do việc sử dụng hai nguồn sáng gây ra.25
Ràng Buộc Phần Cứng Về Số Lượng Nguồn Sáng Cắt Lớp
HDRP và URP cung cấp hai cơ chế kết xuất cốt lõi: Forward+ và Deferred. Trong quá trình cấu hình đa lớp ánh sáng (Light Layers), cần nhận thức rõ giới hạn của kiến trúc đang sử dụng.
- Nếu dự án vận hành trên kiến trúc Forward+, hệ thống hỗ trợ một con số khổng lồ lên tới 256 nguồn sáng cho mỗi camera (trên thiết bị Desktop).26 Tuy nhiên, nó bị khóa cứng ở giới hạn tối đa 8 nguồn sáng bổ sung tác động lên một vật thể duy nhất tại cùng một thời điểm.26 Sự phân kênh bằng Light Layer 1 và Light Layer 2 của người dùng đã xuất sắc giúp loại bỏ các đèn không liên quan, ngăn ngừa việc Mesh đạt tới ngưỡng giới hạn 8 đèn này.
- Nếu dự án vận hành trên kiến trúc Deferred để tối ưu số lượng đèn không giới hạn, cần lưu ý một lỗ hổng nghiêm trọng: Mặt nạ culling mask trong cơ chế Deferred chỉ hỗ trợ phân biệt tối đa 4 lớp layer cùng một lúc.27 Nếu dự án lạm dụng quá nhiều Light Layers phức tạp (vượt quá 4) để chia nhỏ thêm không gian, hệ thống sẽ rơi vào trạng thái vỡ vụn đồ họa (graphical artifacts) không thể phục hồi.27 Phương pháp chỉ sử dụng 2 Layers cơ bản (Layer 1 và Layer 2) của giải pháp ban đầu chứng minh tính hiệu quả và sự an toàn tuyệt đối về mặt bộ nhớ.1
Tổng Bảng Trận Đồ Giải Pháp Và Tóm Lược Hệ Thống
Từ quá trình bóc tách từng phân hệ lõi của Unity 6 HDRP, giải pháp của người dùng được xác thực là bước đi tiên quyết, nhưng để thiết lập một môi trường kết xuất hoàn chỉnh kết hợp 2 scene vào 1 file, cần có sự phối hợp của một hệ thống chiến lược đa tầng. Dưới đây là bảng ma trận tổng hợp toàn bộ các thủ thuật kỹ thuật chuyên sâu đã được phân tích:
| Phân Hệ HDRP | Phương Pháp Khởi Điểm (Của Người Dùng) | Giải Pháp Kỹ Thuật Bổ Sung Cốt Lõi Để Hoàn Thiện |
|---|---|---|
| Ánh sáng trực tiếp (Direct Lighting) | Cấu hình Light Layer 1 (Scene 1) và Light Layer 2 (Scene 2) trên Directional Light và Mesh Renderer. | Đã xác thực tính chuẩn xác. Đảm bảo giữ đúng số lượng layer ở mức tối thiểu để tránh xung đột kiến trúc Deferred.1 |
| Bóng đổ đa hướng (Directional Shadows) | Chưa xử lý. Nguy cơ đối mặt giới hạn 1 Directional Shadow / Frame của engine.2 | Ngắt kết nối bóng râm bằng Custom Shadow Layers.1 Nếu cần bóng râm cả 2 không gian, thay thế đèn 2 bằng Box-shaped Spot Light (Tắt Range Attenuation) 8, hoặc sử dụng công nghệ Mixed Cached Shadows cho các lưới tĩnh (kích hoạt trong HDRP Asset).5 |
| Bầu trời (Skybox & Visual Environment) | Chưa xử lý. Bầu trời chung sẽ phá vỡ tính cách ly giữa hai không gian. | Triển khai 2 Local Volumes (với Box Colliders). Sử dụng override Visual Environment để gán 2 loại Sky Type khác nhau. Điều chỉnh Blend Distance để nội suy mượt mà.8 |
| Sương mù khí quyển (Volumetrics Fog) | Chưa xử lý. Global Volumetric Fog sẽ tràn chéo qua khu vực khác. | Thay thế bằng component Local Volumetric Fog. Chuyển đổi tham số Blending Mode từ Additive sang Overwrite để sương mù cục bộ xóa bỏ khí quyển nền.13 Tinh chỉnh Priority tại vùng giao thoa. |
| Phân tách xử lý hậu kỳ (Post-Processing) | Chưa xử lý. (Hiểu lầm về Volume Layer Mask cho các vật thể riêng biệt).16 | Thiết lập Custom Pass Volume. Sử dụng shader C# API và layer masks để kết xuất hậu kỳ tách biệt rồi composite đè lên nhau, từ bỏ phương pháp Camera Stacking kém hiệu quả.16 |
| Ánh sáng gián tiếp (Global Illumination / APV) | Chưa xử lý. Ánh sáng nảy (Bounced light) sẽ rò rỉ xuyên qua ranh giới 2 môi trường. | Đồng bộ hóa bằng cách sử dụng Adaptive Probe Volumes (APV). Triển khai Probe Adjustment Volume (PAV) bao bọc vùng Không gian 1, sử dụng tính năng Override Rendering Layer Mask để từ chối nội suy dữ liệu ánh sáng từ các Probe mang nhãn Layer 2.19 |
Hệ sinh thái đồ họa mô phỏng vật lý của Unity 6 HDRP là một bộ máy phức tạp và khắt khe, nơi mọi sự thay đổi đối với ánh sáng đều kéo theo những hệ lụy vật lý về phản chiếu, che khuất và khúc xạ không gian. Việc sử dụng Light Layers để phân tách kênh ánh sáng là một khởi đầu hoàn hảo thể hiện sự am hiểu hệ thống, nhưng để biến lý thuyết đó thành một không gian nghệ thuật toàn vẹn, nó cần phải được hỗ trợ bởi một mạng lưới các cấu hình vi mô. Bằng cách áp dụng triệt để hệ thống Custom Shadow Layers kết hợp Mixed Cached Shadows, tận dụng uy lực kiểm soát không gian của Local Volume Framework, và thiết lập kỷ luật phân luồng thông tin ánh sáng gián tiếp với Probe Adjustment Volume, kiến trúc sư đồ họa hoàn toàn có thể cưỡng ép cỗ máy kết xuất khổng lồ này vận hành song song hai thực tại đa chiều bên trong một vùng không gian duy nhất mà không hề để lộ bất kỳ sự thỏa hiệp nào về chất lượng thị giác. Mọi ranh giới về sự rò rỉ hình học và ô nhiễm quang phổ đều có thể bị phong tỏa khi người thiết kế nắm vững cấu trúc lõi của các lớp bộ đệm (buffers) và dòng chảy của photon trên bộ xử lý GPU.
Nguồn trích dẫn
Use light rendering layers High Definition RP 16.0.6 - Unity - Manual, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@16.0/manual/Rendering-Layers.html Is it possible to achieve shadows from two directional lights in URP? : r/Unity3D - Reddit, truy cập vào tháng 5 11, 2026, https://www.reddit.com/r/Unity3D/comments/1bndl5x/is_it_possible_to_achieve_shadows_from_two/ ↩︎ ↩︎2 ↩︎3 ↩︎4 ↩︎5 ↩︎6
Shadows in the High Definition Render Pipeline - Unity - Manual, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@8.0/manual/Shadows-in-HDRP.html ↩︎ ↩︎2 ↩︎3 ↩︎4 ↩︎5 ↩︎6 ↩︎7 ↩︎8
Multiple directional light shadow maps - Unity Discussions, truy cập vào tháng 5 11, 2026, https://discussions.unity.com/t/multiple-directional-light-shadow-maps/821372 ↩︎ ↩︎2 ↩︎3 ↩︎4 ↩︎5 ↩︎6
Shadows in the High Definition Render Pipeline High Definition RP …, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@14.0/manual/Shadows-in-HDRP.html ↩︎ ↩︎2 ↩︎3 ↩︎4 ↩︎5 ↩︎6 ↩︎7 ↩︎8 ↩︎9 ↩︎10 ↩︎11 ↩︎12 ↩︎13 ↩︎14 ↩︎15 ↩︎16 ↩︎17
Shadows in the High Definition Render Pipeline - Unity - Manual, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@10.0/manual/Shadows-in-HDRP.html ↩︎
2 or more directional lights simultaneously - Unity Discussions, truy cập vào tháng 5 11, 2026, https://discussions.unity.com/t/2-or-more-directional-lights-simultaneously/878090 ↩︎ ↩︎2
Volumes High Definition RP 10.2.2 - Unity - Manual, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@10.2/manual/Volumes.html HDRP Global Settings Window High Definition RP 15.0.7 - Unity - Manual, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@15.0/manual/Default-Settings-Window.html Local Volumetric Fog High Definition RP 14.1.0, truy cập vào tháng 5 11, 2026, https://docs.unity.cn/cn/Packages-cn/com.unity.render-pipelines.high-definition@14.1/manual/Local-Volumetric-Fog.html Visual Environment High Definition RP 16.0.6 - Unity - Manual, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@16.0/manual/Override-Visual-Environment.html Create environment lighting High Definition RP 16.0.6 - Unity - Manual, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@16.0/manual/Environment-Lighting.html Local Volumetric Fog High Definition RP 14.0.12 - Unity - Manual, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@14.0/manual/Local-Volumetric-Fog.html Local Volumetric Fog Volume reference High Definition Render Pipeline 17.0.4, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@17.0/manual/local-volumetric-fog-volume-reference.html Field volumeLayerMask High Definition RP 15.0.7 - Unity - Manual, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition%4015.0/api/UnityEngine.Rendering.HighDefinition.HDAdditionalCameraData.volumeLayerMask.html Unity/URP global volume with volume mask still applies effects to all layers, truy cập vào tháng 5 11, 2026, https://gamedev.stackexchange.com/questions/210918/unity-urp-global-volume-with-volume-mask-still-applies-effects-to-all-layers ↩︎ ↩︎2 ↩︎3 ↩︎4 ↩︎5 ↩︎6
[HDRP] Easiest way to force an object to render over everything else? : r/Unity3D - Reddit, truy cập vào tháng 5 11, 2026, https://www.reddit.com/r/Unity3D/comments/178uzdg/hdrp_easiest_way_to_force_an_object_to_render/ ↩︎ ↩︎2
Understand custom pass volumes High Definition Render Pipeline 17.0.4, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@17.0/manual/Custom-Pass-Volume-Workflow.html Unity 6’s New Global Illumination Lighting Features, truy cập vào tháng 5 11, 2026, https://unity.com/blog/engine-platform/new-ways-of-applying-global-illumination-in-unity-6 ↩︎ ↩︎2 ↩︎3 ↩︎4 ↩︎5 ↩︎6 ↩︎7
Fix issues with Adaptive Probe Volumes High Definition Render Pipeline 17.0.4, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@17.0/manual/probevolumes-fixissues.html Override rendering layer masks in a volume - Unity - Manual, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/6000.3/Documentation/Manual/urp/features/rendering-layer-masks-apv-override-probe-in-a-volume.html ↩︎ ↩︎2 ↩︎3
How to use Adaptive Probe Volume Rendering Layer Mask - Unity Discussions, truy cập vào tháng 5 11, 2026, https://discussions.unity.com/t/how-to-use-adaptive-probe-volume-rendering-layer-mask/1650216 ↩︎
Override Rendering Layer Mask in Probe Adjustment Volume - Unity Discussions, truy cập vào tháng 5 11, 2026, https://discussions.unity.com/t/override-rendering-layer-mask-in-probe-adjustment-volume/1645954 ↩︎
Bake different lighting setups with Lighting Scenarios High Definition RP - Unity - Manual, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@16.0/manual/probevolumes-bakedifferentlightingsetups.html Shadows in the High Definition Render Pipeline High Definition RP 12.0.0 - Unity - Manual, truy cập vào tháng 5 11, 2026, https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@12.0/manual/Shadows-in-HDRP.html Is there a maximum number of light you can create in a Project? - Unity Engine, truy cập vào tháng 5 11, 2026, https://discussions.unity.com/t/is-there-a-maximum-number-of-light-you-can-create-in-a-project/910450 ↩︎ ↩︎2
Too many layers used to exclude objects from lighting. in deferred only up to 4 layers can be used simultaneously - Unity Discussions, truy cập vào tháng 5 11, 2026, https://discussions.unity.com/t/too-many-layers-used-to-exclude-objects-from-lighting-in-deferred-only-up-to-4-layers-can-be-used-simultaneously/1518892 ↩︎ ↩︎2