Khái niệm quan trọng về drawcall
Vấn đề gặp phải và giải pháp
- Trong một cảnh (scene) có thể tồn tại những đối tượng với kết cấu phức tạp, xuất hiện nhiều lần, ví dụ như một ngôi nhà gồm các bộ phận: cửa sổ, cửa ra vào, ống khói, mái ngói, cột thu lôi, v.v.
- Nếu gộp tất cả các bộ phận này vào chung một object dưới dạng các mesh part (giả sử có 6 mesh part cho mỗi nhà), thì sẽ cần 6 drawcall để hiển thị một căn nhà (1 drawcall cho phần khung, 5 drawcall cho các bộ phận còn lại).
- Nếu có 10 căn nhà, tất cả đều sử dụng chung các bộ phận (ví dụ ống khói giống nhau), nhưng do vị trí sắp xếp từng bộ phận khác nhau giữa các căn nên mỗi bộ phận vẫn cần được render riêng bằng các drawcall độc lập. Tổng cộng, sẽ có 60 drawcall cho 10 căn nhà này – một con số khá lớn.
- Tuy nhiên, nếu tách các bộ phận giống nhau (cửa sổ, cửa ra vào, v.v.) thành các object riêng biệt, tổng số drawcall sẽ được tối ưu đáng kể: chỉ cần 10 drawcall cho phần khung của mỗi căn nhà, cộng thêm 5 drawcall cho tất cả các instance của từng loại bộ phận gắn vào chúng (do engine có thể gộp các instance này lại với nhau). Như vậy, tổng drawcall chỉ còn 15.
- Chế độ Construction mode sẽ giúp bạn tối ưu hiệu suất hiển thị theo cách này.
Giới thiệu Construction mode (Cmode)
Khái niệm về construction base object (gọi tắt là base) và plugin
- Base là phần khung chính của một đối tượng, dùng để gắn các bộ phận khác (gọi là plugin) vào.
- Một plugin có thể xuất hiện ở nhiều vị trí khác nhau và gắn với các base khác nhau. Ví dụ, một model cửa ra vào có thể được sử dụng ở hai căn nhà khác nhau.
Cmode cung cấp cho người dùng một số công cụ quan trọng nhằm hỗ trợ các thao tác với plugin như: thêm mới, nhân bản, căn chỉnh và xóa. Tất cả plugin đều lấy base làm đối tượng chính để gắn vào.
Sau khi được gắn plugin, một base có thể xuất hiện ở nhiều nơi trong scene mà vẫn đảm bảo tất cả các plugin đi kèm đều được hiển thị cùng.
Để truy cập Cmode, lựa chọn từ danh sách các chế độ hoạt động của MDE, bên trái sẽ hiển thị danh sách các tool, bao gồm: