Chủ đề unity occlusion culling: Unity Occlusion Culling là một trong những kỹ thuật tối ưu hóa mạnh mẽ giúp cải thiện hiệu suất trò chơi bằng cách giảm thiểu số lượng đối tượng được hiển thị không cần thiết. Bài viết này sẽ giúp bạn hiểu rõ hơn về cách hoạt động của Occlusion Culling và cách ứng dụng hiệu quả để tăng cường trải nghiệm người chơi.
Mục lục
- Occlusion Culling trong Unity
- Tổng quan về Occlusion Culling trong Unity
- Các bước thiết lập Occlusion Culling trong Unity
- Phân tích chi tiết các thông số Occlusion Culling
- Kiểm tra và trực quan hóa Occlusion Culling trong Unity
- Những lưu ý khi sử dụng Occlusion Culling
- So sánh Occlusion Culling và Frustum Culling
Occlusion Culling trong Unity
Occlusion Culling là một kỹ thuật tối ưu hóa trong Unity nhằm cải thiện hiệu suất bằng cách loại bỏ các đối tượng không cần thiết khi chúng bị che khuất khỏi tầm nhìn của camera. Điều này giúp tiết kiệm tài nguyên và giảm số lượng draw call, qua đó tăng hiệu suất của trò chơi.
Cách hoạt động của Occlusion Culling
Khi camera di chuyển qua một cảnh, những đối tượng bị che khuất bởi các vật thể khác sẽ không được vẽ ra, giảm số lượng đối tượng cần xử lý. Unity thực hiện điều này bằng cách chia cảnh thành các phần nhỏ và xác định xem những phần nào cần được hiển thị dựa trên góc nhìn của camera.
Các bước thiết lập Occlusion Culling
- Phân loại đối tượng: Các đối tượng lớn được đánh dấu là Occluder Static, trong khi các đối tượng nhỏ hơn, có thể bị che khuất, được đánh dấu là Occludee Static.
- Chia nhỏ cảnh: Cảnh cần được chia thành các khu vực nhỏ và có cấu trúc rõ ràng, với các vật lớn như tường hoặc tòa nhà để che khuất các khu vực khác.
- Sử dụng cửa sổ Occlusion Culling: Truy cập cửa sổ Window → Rendering → Occlusion Culling, nơi bạn có thể kiểm tra, điều chỉnh và bake dữ liệu Occlusion.
- Bake dữ liệu: Trong tab Bake, nhấn nút Bake để Unity tạo dữ liệu culling runtime. Bạn có thể điều chỉnh các thông số như Smallest Occluder và Smallest Hole để kiểm soát chi tiết quá trình culling.
Các thông số quan trọng
- Smallest Occluder: Kích thước của đối tượng nhỏ nhất có thể che khuất đối tượng khác. Giá trị lớn sẽ giảm độ chính xác nhưng tăng tốc độ tính toán và giảm dung lượng bộ nhớ.
- Smallest Hole: Kích thước nhỏ nhất của lỗ hổng qua đó camera có thể nhìn thấy. Giá trị nhỏ giúp tăng độ chính xác nhưng tốn nhiều thời gian và bộ nhớ hơn để bake.
- Backface Threshold: Xác định tỷ lệ các bề mặt không nhìn thấy (backfaces) bị loại bỏ khỏi dữ liệu. Giá trị thấp giúp giảm kích thước file nhưng có thể gây ra hiện tượng đồ họa không mong muốn.
Visualization và kiểm tra
Sau khi bake dữ liệu, bạn có thể chuyển sang tab Visualization để xem trước kết quả của quá trình Occlusion Culling. Chọn camera trong cảnh và di chuyển camera để quan sát sự khác biệt giữa khi Occlusion Culling bật và tắt.
Lưu ý khi sử dụng Occlusion Culling
- Đối với các đối tượng trong suốt hoặc bán trong suốt, hãy đánh dấu chúng là Occludee Static thay vì Occluder, vì chúng không che khuất tầm nhìn và sẽ giảm chi phí tính toán.
- Chỉ sử dụng các đối tượng LOD0 làm Occluder nếu bạn sử dụng các nhóm LOD.
- Đảm bảo các khu vực Occlusion được thiết lập hợp lý để tránh các khu vực quá lớn hoặc quá nhỏ.

Tổng quan về Occlusion Culling trong Unity
Occlusion Culling là một kỹ thuật trong Unity giúp tối ưu hóa hiệu suất bằng cách ngăn chặn việc render các đối tượng bị che khuất khỏi tầm nhìn của camera. Điều này giúp giảm tải cho GPU và cải thiện tốc độ khung hình.
- Frustum Culling: Unity tự động loại bỏ các đối tượng nằm ngoài tầm nhìn của camera. Tuy nhiên, Frustum Culling không xử lý được các đối tượng bị che khuất bởi các vật thể khác, và đây là lúc Occlusion Culling trở nên hữu ích.
- Occluder và Occludee: Trong Occlusion Culling, các đối tượng lớn, cố định (như tường hoặc núi) được gọi là Occluder (người che khuất), trong khi các đối tượng nhỏ hơn, có thể bị che khuất được gọi là Occludee (người bị che khuất).
Quy trình Occlusion Culling được thực hiện qua các bước sau:
- Phân loại đối tượng: Đầu tiên, xác định các đối tượng trong cảnh của bạn là Occluder hoặc Occludee. Để đối tượng tham gia vào Occlusion Culling, bạn phải đặt thuộc tính Static cho chúng.
- Mở Occlusion Culling Window: Truy cập Window → Rendering → Occlusion Culling. Đây là nơi bạn có thể thiết lập các thông số và thực hiện quá trình bake Occlusion Culling.
- Thiết lập Occlusion Area: Bạn có thể tạo các khu vực Occlusion trong Scene bằng cách chọn các đối tượng lớn hoặc vùng không gian mà camera không cần render. Điều này giúp Unity xác định vùng nào cần được bỏ qua.
- Bake Occlusion Culling: Sau khi thiết lập các khu vực, nhấn nút Bake để Unity tính toán và lưu lại dữ liệu Occlusion Culling. Việc này sẽ giúp game chạy mượt hơn khi camera di chuyển qua các vùng có nhiều vật thể bị che khuất.
- Kiểm tra kết quả: Bạn có thể sử dụng tab Visualization để kiểm tra kết quả của quá trình Occlusion Culling. Các khu vực mà đối tượng bị che khuất sẽ không được render trong Scene.
Occlusion Culling là một công cụ mạnh mẽ và dễ sử dụng, giúp bạn tối ưu hóa cảnh trong Unity một cách hiệu quả, đảm bảo trò chơi chạy mượt mà và tiết kiệm tài nguyên phần cứng.
Các bước thiết lập Occlusion Culling trong Unity
Occlusion Culling giúp tăng hiệu suất của game bằng cách không render những đối tượng bị che khuất. Dưới đây là các bước để thiết lập Occlusion Culling trong Unity một cách chi tiết.
-
1. Phân loại đối tượng: Occluder và Occludee
Trong Unity, đối tượng có thể là Occluder (vật thể che khuất) hoặc Occludee (vật thể bị che). Đảm bảo rằng các đối tượng quan trọng được phân loại đúng để tối ưu hóa hiệu suất.
-
2. Tạo Occlusion Area trong Scene
Occlusion Area là vùng không gian nơi Unity sẽ kiểm tra xem các đối tượng có bị che hay không. Bạn có thể tạo một Occlusion Area bằng cách:
- Chọn GameObject và vào tab Component.
- Chọn Rendering và thêm Occlusion Area.
- Điều chỉnh kích thước của Occlusion Area sao cho bao phủ các vùng cần tối ưu hóa.
-
3. Sử dụng Occlusion Culling window để cấu hình
Trong Unity, bạn có thể truy cập Occlusion Culling Window để bắt đầu cấu hình:
- Vào Window > Rendering > Occlusion Culling.
- Tab Object để cấu hình các đối tượng là Occluder hay Occludee.
- Tab Bake để chuẩn bị quá trình bake Occlusion Culling.
-
4. Các thông số chính cần điều chỉnh khi bake Occlusion Culling
Trước khi bắt đầu bake, cần chú ý các thông số:
- Smallest Occluder: Điều chỉnh kích thước nhỏ nhất của đối tượng có thể che khuất.
- Smallest Hole: Thiết lập kích thước lỗ nhỏ nhất mà Occlusion Culling sẽ bỏ qua.
- Backface Threshold: Xác định mức độ bề mặt phía sau của đối tượng không được hiển thị.
Sau khi cấu hình, nhấn Bake để Unity tiến hành bake Occlusion Culling cho Scene.
Phân tích chi tiết các thông số Occlusion Culling
Occlusion Culling là một kỹ thuật quan trọng trong Unity giúp tối ưu hiệu suất khi render các đối tượng trong Scene. Tính năng này xác định những đối tượng bị che khuất hoàn toàn bởi các đối tượng khác và không render chúng, từ đó giảm thiểu số lượng draw calls và tăng tốc độ xử lý.
- Camera View: Chỉ các đối tượng nằm trong tầm nhìn của camera mới được render. Các đối tượng ngoài tầm nhìn sẽ bị loại bỏ.
- Occluder: Đây là các đối tượng lớn, thường là tường hoặc công trình, được sử dụng để che khuất các đối tượng khác. Các đối tượng này không được render nếu bị Occluder che.
- Occludee: Là các đối tượng có thể bị che khuất. Unity sẽ kiểm tra xem đối tượng có bị một Occluder nào che khuất không trước khi quyết định render nó.
Các thông số chi tiết trong Occlusion Culling bao gồm:
- Near Clip Plane: Đây là khoảng cách tối thiểu mà camera bắt đầu render các đối tượng. Những vật thể ở xa hơn giá trị này sẽ được tính đến trong quá trình Occlusion.
- Far Clip Plane: Đây là giới hạn xa nhất của camera. Những đối tượng xa hơn giá trị này sẽ bị loại khỏi quy trình render.
- Cell Size: Đây là kích thước của các cell trong grid không gian. Những cell nhỏ hơn sẽ giúp việc tính toán Occlusion chính xác hơn, nhưng cũng sẽ tăng chi phí tính toán.
| Thông số | Ý nghĩa |
| Occlusion Area | Khu vực trong Scene mà Occlusion Culling được áp dụng. |
| Backface Culling | Kỹ thuật loại bỏ các mặt sau của các đối tượng 3D để giảm số lượng polygon được render. |
| Static Batching | Kết hợp các đối tượng tĩnh có chung material để giảm draw calls. |
Trong quá trình tối ưu hóa Occlusion Culling, việc cân bằng giữa chi phí tính toán và hiệu suất là rất quan trọng. Các yếu tố như cell size và clip planes phải được cấu hình hợp lý để tránh lãng phí tài nguyên.
Cuối cùng, bạn cũng cần chú ý đến các loại đối tượng đặc biệt như cây cối hoặc các đối tượng trong suốt (\( transparent \)) vì chúng có thể ảnh hưởng đến overdraw và fill rate nếu không được xử lý đúng cách.

Kiểm tra và trực quan hóa Occlusion Culling trong Unity
Occlusion Culling là một kỹ thuật tối ưu hóa hiển thị bằng cách ẩn đi các đối tượng không nằm trong tầm nhìn của camera, giúp giảm tải công việc rendering của hệ thống. Dưới đây là các bước kiểm tra và trực quan hóa Occlusion Culling trong Unity một cách chi tiết:
- Kích hoạt Occlusion Culling:
Để kích hoạt Occlusion Culling trong Unity, bạn cần vào phần Window > Occlusion Culling. Cửa sổ Occlusion sẽ hiển thị các cài đặt cho phép bạn điều chỉnh cách Unity tính toán và loại bỏ các đối tượng không nhìn thấy.
- Thiết lập các thông số Occlusion Culling:
- Smallest Occluder: Kích thước nhỏ nhất của đối tượng có thể chặn tầm nhìn.
- Smallest Hole: Kích thước của các lỗ hổng mà ánh sáng có thể đi qua.
- Backface Threshold: Xác định mức độ của các bề mặt quay lưng lại camera và có thể bị loại bỏ khỏi quá trình render.
- Xây dựng Occlusion Data:
Khi đã điều chỉnh các thông số phù hợp, nhấn vào nút Bake để Unity xây dựng dữ liệu Occlusion cho toàn bộ cảnh. Quá trình này có thể mất một ít thời gian tùy thuộc vào kích thước và độ phức tạp của cảnh.
- Kiểm tra Occlusion Culling:
Để kiểm tra hiệu quả của Occlusion Culling, bạn có thể sử dụng camera trong chế độ Scene View. Khi di chuyển camera, các đối tượng bị che khuất sẽ được đánh dấu màu xanh và sẽ không được render trong thời gian thực, giúp bạn trực quan hóa cách Unity loại bỏ các đối tượng này.
- Đánh giá hiệu suất:
Sau khi thiết lập và kiểm tra Occlusion Culling, bạn có thể đánh giá hiệu suất tổng thể của trò chơi bằng cách sử dụng Profiler. Kiểm tra mức độ cải thiện về FPS (\(Frame Per Second\)) và khả năng giảm thiểu tài nguyên của GPU.
Những lưu ý khi sử dụng Occlusion Culling
Việc sử dụng Occlusion Culling trong Unity có thể tối ưu hóa hiệu suất game, nhưng để đạt được hiệu quả tốt nhất, bạn cần chú ý một số điểm quan trọng sau:
- 1. Xác định đúng đối tượng Occluder và Occludee:
Đảm bảo phân loại các đối tượng lớn, không trong suốt (như tường, núi...) là Occluder. Các đối tượng nhỏ hơn và dễ bị che khuất nên được đánh dấu là Occludee. Việc xác định đúng loại đối tượng sẽ giúp tăng hiệu quả của Occlusion Culling và tránh lãng phí tài nguyên tính toán.
- 2. Cấu hình Occlusion Area hợp lý:
Sử dụng Occlusion Area để tối ưu hóa những khu vực nhất định trong Scene, đặc biệt là với các cảnh lớn. Kỹ thuật này giúp tránh tính toán culling ở các khu vực không cần thiết, giảm tải cho CPU và GPU.
- 3. Điều chỉnh các thông số Occlusion Culling một cách tối ưu:
- Smallest Occluder: Đặt giá trị này hợp lý để đảm bảo các vật thể nhỏ nhưng quan trọng không bị bỏ qua. Giá trị quá cao sẽ khiến các vật thể nhỏ không được che khuất và tốn tài nguyên để render.
- Smallest Hole: Điều chỉnh để các lỗ nhỏ giữa các Occluder không dẫn đến việc render không cần thiết các vật thể bị che khuất.
- Backface Threshold: Giúp giảm số lượng các mặt không cần thiết bị render bằng cách culling các mặt bị che khuất hoàn toàn bởi Occluder.
- 4. Kiểm tra và trực quan hóa kết quả:
Sử dụng chế độ Occlusion Visualization trong Scene View để kiểm tra xem hệ thống culling đã hoạt động đúng như mong muốn chưa. Đặc biệt, nên thử nghiệm từ nhiều góc độ khác nhau để đảm bảo rằng các vật thể quan trọng không bị culling sai cách.
- 5. Xử lý các vật thể trong suốt và bán trong suốt:
Các đối tượng trong suốt và bán trong suốt có thể gây ra vấn đề trong Occlusion Culling, vì chúng có thể vẫn yêu cầu render ngay cả khi bị che khuất. Cần kiểm tra và điều chỉnh các vật liệu hoặc cân nhắc không sử dụng culling với các đối tượng này.
- 6. Tối ưu hóa kích thước và khu vực Occluder:
Tránh tạo ra những Occluder quá lớn bao trùm nhiều khu vực không cần thiết, hoặc quá nhỏ không mang lại hiệu quả. Sử dụng các khu vực Occluder phù hợp để giảm thiểu công việc tính toán không cần thiết cho hệ thống culling.
XEM THÊM:
So sánh Occlusion Culling và Frustum Culling
Trong Unity, cả Occlusion Culling và Frustum Culling đều là hai kỹ thuật quan trọng nhằm tối ưu hóa hiệu năng, nhưng chúng có cơ chế hoạt động khác nhau và phù hợp với các tình huống riêng biệt.
1. Occlusion Culling
Occlusion Culling là quá trình loại bỏ những đối tượng bị che khuất khỏi tầm nhìn của camera. Những đối tượng này dù nằm trong phạm vi nhìn thấy của camera (Frustum), nhưng lại bị che khuất bởi các đối tượng khác, sẽ không được render. Kỹ thuật này giúp tiết kiệm tài nguyên, đặc biệt là trong các cảnh phức tạp với nhiều vật thể chồng chéo.
- Cơ chế: Unity sẽ tự động phát hiện các đối tượng bị che khuất và loại bỏ chúng khỏi quá trình rendering.
- Ưu điểm: Tăng hiệu suất đáng kể trong các cảnh phức tạp, nhiều đối tượng che chắn lẫn nhau.
- Nhược điểm: Cần phải thiết lập và bake trước khi sử dụng, không hoạt động tốt với các đối tượng di chuyển liên tục.
2. Frustum Culling
Frustum Culling là quá trình loại bỏ những đối tượng nằm ngoài phạm vi nhìn của camera. Unity chỉ render những đối tượng nằm bên trong khối hình chóp (frustum) của camera. Kỹ thuật này luôn hoạt động tự động mà không cần cấu hình trước.
- Cơ chế: Unity tự động tính toán những đối tượng nào nằm ngoài frustum của camera và bỏ qua việc render chúng.
- Ưu điểm: Không cần thiết lập trước, hoạt động tự động và liên tục mà không yêu cầu người dùng can thiệp.
- Nhược điểm: Không xử lý các đối tượng nằm trong frustum nhưng bị che khuất bởi các đối tượng khác.
3. Sự khác biệt chính
- Frustum Culling chỉ loại bỏ các đối tượng nằm ngoài phạm vi nhìn của camera, trong khi Occlusion Culling còn loại bỏ các đối tượng bị che khuất bên trong phạm vi nhìn.
- Frustum Culling hoạt động tự động và không cần thiết lập trước, trong khi Occlusion Culling yêu cầu phải thiết lập và bake dữ liệu trước khi sử dụng.
4. Khi nào nên sử dụng
Occlusion Culling nên được sử dụng trong các cảnh có nhiều vật thể phức tạp và chồng chéo, nơi có nhiều đối tượng bị che khuất. Ngược lại, Frustum Culling luôn nên được kích hoạt vì nó tự động giúp cải thiện hiệu suất mà không cần cấu hình thêm.
























Blender Room - Cách Tạo Không Gian 3D Tuyệt Đẹp Bằng Blender
Setting V-Ray 5 Cho 3ds Max: Hướng Dẫn Tối Ưu Hiệu Quả Render
D5 Converter 3ds Max: Hướng Dẫn Chi Tiết Và Các Tính Năng Nổi Bật
Xóa Lịch Sử Chrome Trên Máy Tính: Hướng Dẫn Chi Tiết Và Hiệu Quả
VLC Media Player Android: Hướng Dẫn Chi Tiết và Tính Năng Nổi Bật
Chuyển File Canva Sang AI: Hướng Dẫn Nhanh Chóng và Đơn Giản Cho Người Mới Bắt Đầu
Chuyển từ Canva sang PowerPoint - Hướng dẫn chi tiết và hiệu quả
Ghi Âm Zoom Trên Máy Tính: Hướng Dẫn Chi Tiết và Mẹo Hữu Ích
"Notion có tiếng Việt không?" - Hướng dẫn thiết lập và lợi ích khi sử dụng
Facebook No Ads XDA - Trải Nghiệm Không Quảng Cáo Đáng Thử
Ký Hiệu Trên Bản Vẽ AutoCAD: Hướng Dẫn Toàn Diện và Thực Hành
Tổng hợp lisp phục vụ bóc tách khối lượng xây dựng
Chỉnh kích thước số dim trong cad – cách đơn giản nhất 2024