Tối ưu bằng Occlusion Culling
C# Code
// Occlusion Culling là một tính năng của Unity, không phải là một script có thể chạy.
// Đây là hướng dẫn các bước để thiết lập nó trong Editor.
/*
* HƯỚNG DẪN THIẾT LẬP OCCLUSION CULLING
*
* 1. ĐÁNH DẤU CÁC ĐỐI TƯỢNG (Mark Objects as Static):
* - Trong Scene của bạn, chọn tất cả các vật thể lớn, tĩnh (không di chuyển)
* mà có khả năng che khuất các vật thể khác (ví dụ: tường, nhà, núi, sàn nhà).
* - Trong Inspector, ở góc trên bên phải, tick vào ô "Static".
* - Một menu dropdown sẽ hiện ra, đảm bảo rằng "Occluder Static" và "Occludee Static" được chọn.
* + Occluder Static: Đánh dấu vật thể này có khả năng che khuất vật thể khác.
* + Occludee Static: Đánh dấu vật thể này có thể BỊ che khuất bởi vật thể khác.
*
* 2. MỞ CỬA SỔ OCCLUSION CULLING:
* - Vào menu Window -> Rendering -> Occlusion Culling.
*
* 3. TÙY CHỈNH THÔNG SỐ (Optional but Recommended):
* - Trong tab 'Bake' của cửa sổ Occlusion Culling, bạn có thể điều chỉnh các thông số.
* Các giá trị mặc định thường hoạt động tốt cho bước khởi đầu.
* + Smallest Occluder: Kích thước tối thiểu của một vật thể được coi là occluder.
* Vật thể nhỏ hơn giá trị này sẽ không được dùng để che khuất vật thể khác.
* + Smallest Hole: Kích thước của lỗ hổng nhỏ nhất mà camera có thể nhìn xuyên qua.
* Tăng giá trị này có thể cải thiện performance nhưng có thể gây ra lỗi đồ họa nhỏ.
*
* 4. BAKE DỮ LIỆU:
* - Sau khi đã đánh dấu các đối tượng và tùy chỉnh thông số, nhấn vào nút "Bake" ở góc dưới bên phải cửa sổ.
* - Unity sẽ bắt đầu quá trình tính toán dữ liệu culling cho Scene hiện tại.
* Quá trình này có thể mất một vài phút tùy thuộc vào độ phức tạp của scene.
* - Sau khi bake xong, một thư mục mới chứa dữ liệu Occlusion Culling sẽ được tạo ra bên cạnh file Scene của bạn.
*
* 5. KIỂM TRA:
* - Để kiểm tra kết quả, hãy mở tab 'Visualization' trong cửa sổ Occlusion Culling.
* - Di chuyển Scene Camera xung quanh. Bạn sẽ thấy các đối tượng bị tô màu xanh dương biến mất khi chúng bị che khuất hoàn toàn khỏi tầm nhìn của camera.
* - Điều này chứng tỏ Occlusion Culling đang hoạt động.
*
* LƯU Ý:
* - Occlusion Culling chỉ hoạt động với Camera có bật tùy chọn "Occlusion Culling" (mặc định là bật).
* - Bạn phải thực hiện lại quá trình 'Bake' mỗi khi bạn thay đổi đáng kể cấu trúc của các đối tượng tĩnh trong Scene.
* - Tính năng này hiệu quả nhất trong các môi trường phức tạp có nhiều vật cản như hành lang, thành phố, dungeon.
*/
Hướng dẫn cách thiết lập Occlusion Culling để tối ưu hiệu năng bằng cách không render các vật thể bị che khuất hoàn toàn bởi các vật thể khác.