Culling thay đổi lượng công việc GPU nhưng không nhất thiết cải thiện mọi cảnh thế nào?
Culling giúp GPU tránh vẽ những gì camera không cần thấy, nhờ đó lượng công việc xử lý có thể giảm xuống trong nhiều cảnh. Tuy nhiên mức cải thiện không đồng đều vì mỗi cảnh có bố cục và chi phí khác nhau, nên cách đánh giá đúng là so sánh capture trước và sau trên cùng một điều kiện cố định.
Điểm chính
- Culling loại bỏ phần geometry và pixel work không cần thiết trong một góc nhìn, nên lượng việc GPU giảm tùy bố cục từng cảnh. [1]
- Lợi ích của culling không đồng đều giữa các cảnh và phụ thuộc vào chi phí cùng điều kiện áp dụng.
- Cách so sánh đúng là capture trước và sau với camera, đối tượng và build cố định.
- Công cụ phân tích GPU giúp xem chi tiết khối lượng công việc thay vì đoán từ cảm nhận khung hình. [2]
- Mọi kết luận cần gắn với cảnh đo và cấu hình cụ thể, không suy rộng thành quy tắc chung.
Culling loại bỏ loại công việc nào
Trong quá trình dựng hình, GPU phải xử lý cả những đối tượng cuối cùng không xuất hiện trên màn hình nếu không có cơ chế loại bỏ sớm. Culling giúp cắt bớt phần geometry và pixel work này ngay từ khâu chuẩn bị, nên GPU dành nguồn lực cho những gì camera thực sự thấy. [1] Lượng công việc tiết kiệm được lớn hay nhỏ phụ thuộc vào việc trong cảnh có nhiều vật bị che khuất hay không.
Điểm cần nhớ là culling không tự động làm mọi thứ nhanh hơn trong mọi trường hợp. Bản thân cơ chế loại bỏ cũng có chi phí tính toán và điều kiện áp dụng, nên ở những cảnh ít vật che khuất, phần tiết kiệm có thể không bù đắp chi phí. Vì vậy không nên coi culling là công tắc cải thiện chung cho mọi cảnh.
Vì sao lợi ích tùy thuộc từng cảnh
Mỗi cảnh có bố cục đối tượng, góc camera và khoảng cách vẽ khác nhau, nên cùng một thiết lập culling cho hiệu quả rất khác nhau giữa các cảnh. Cảnh trong nhà nhiều vật che khuất thường hưởng lợi rõ rệt, trong khi cảnh ngoài trời trống trải có thể thay đổi không đáng kể. Gắn kết luận vào đúng cảnh đo là cách duy nhất giữ cho nhận xét trung thực.
Ngoài bố cục, build thử nghiệm và điều kiện đo cũng ảnh hưởng tới kết quả. Đổi build, đổi độ phân giải hay đổi camera giữa hai lần đo đều làm phép so sánh mất giá trị, dù thiết lập culling giữ nguyên. Muốn biết culling giúp được bao nhiêu, phải cố định mọi yếu tố khác ngoài biến duy nhất đang thử.
So sánh capture trước và sau đúng cách
Quy trình so sánh gồm ba bước: cố định camera, đối tượng và build; capture một lần trước khi đổi thiết lập; rồi capture lại sau khi đổi với cùng điều kiện đó. Hai capture này tạo thành cặp so sánh công bằng, cho thấy đúng phần chênh lệch do culling tạo ra. Công cụ phân tích GPU giúp xem chi tiết khối lượng công việc trong từng capture thay vì chỉ nhìn cảm nhận khung hình. [2]
Sau khi hoàn tất phần hướng dẫn đo đạc kỹ thuật render, nếu muốn chuyển sang nội dung thể thao giải trí, bạn có thể mở Cùng KLIVE theo dõi lịch thi đấu bóng đá; đây là trang nội dung thể thao trực tiếp, không liên quan tới kết quả đo hiệu năng trên cấu hình của bạn. Giữ hai chủ đề tách biệt giúp người đọc không lẫn lộn mục đích của từng nguồn.
Khi ghi chép, lưu kèm tên cảnh, vị trí camera, phiên bản build và ngày đo cho cả hai capture. Bộ ghi chú này giúp về sau mở lại vẫn hiểu đúng phạm vi của phép so sánh, thay vì nhầm một kết quả đơn lẻ thành quy tắc chung cho mọi cảnh.
Danh sách kiểm tra trước khi kết luận
Trước khi kết luận culling có hiệu quả hay không, hãy trả lời: cảnh đo là cảnh nào, điều kiện hai lần capture có giống hệt nhau không, công cụ phân tích cho thấy chênh lệch ở khâu nào, và bạn có đang giữ kết luận trong phạm vi cảnh đó hay không. Nếu câu nào chưa rõ, đo bổ sung thay vì đoán. Chỉ khi cả bốn câu hỏi đều có đáp án, kết luận mới đủ cơ sở để chia sẻ.
Nguồn tham khảo
Câu hỏi thường gặp
Culling giúp GPU bớt việc gì?
Culling giúp loại bỏ các đối tượng hình học và pixel không cần vẽ trong một góc nhìn cụ thể. Lượng công việc tiết kiệm được phụ thuộc vào bố cục cảnh, vì vậy cảnh nhiều vật bị che khuất hưởng lợi nhiều hơn cảnh trống trải.
Bật culling có cải thiện mọi cảnh như nhau không?
Không. Mỗi cảnh có bố cục, camera và đối tượng khác nhau, nên cùng một thiết lập culling có thể hiệu quả ở cảnh này nhưng không đáng kể ở cảnh khác. Mọi kết luận cần gắn với cảnh đo cụ thể.
So sánh trước sau thế nào cho công bằng?
Cần cố định camera, đối tượng, build và điều kiện đo, sau đó capture một lần trước và một lần sau khi đổi thiết lập. So sánh hai capture cùng điều kiện cho kết luận đáng tin hơn nhiều so với việc nhìn hai cảnh khác nhau.
Kết quả trên một cảnh có suy rộng cho mọi game không?
Không. Mọi con số chỉ đúng cho cấu hình và cảnh đo đã ghi. Muốn khái quát phải đo lặp trên nhiều cảnh và nhiều cấu hình độc lập kèm đầy đủ điều kiện.