Trong môi trường rất năng động, chẳng hạn như bối cảnh trò chơi trên máy tính, điểm sử dụng VBO là gì, nếu VBO sẽ cần phải được xây dựng trên cơ sở từng khung hình?
Nếu bạn đang xây dựng lại dữ liệu đỉnh cho mọi đối tượng mỗi khung hình, bạn đã làm sai. Hoặc ít nhất, có lẽ bạn đang làm nó không hiệu quả.
Di chuyển các đối tượng trong một cảnh có thể và thường nên được thực hiện bằng cách thay đổi ma trận biến đổi thế giới được sử dụng để hiển thị đối tượng đó, không thay đổi trực tiếp dữ liệu đỉnh. Hoạt hình xương cũng có giải pháp hoàn toàn trên GPU. Các đối tượng có thể phân tách có thể được hiển thị với các ma trận biến đổi riêng biệt, sao cho chúng xuất hiện cùng nhau cho đến khi chúng cần được phân tách, và sau đó các ma trận được điều chỉnh để làm cho chúng tách ra như mong muốn. Các đối tượng không thể nhìn thấy hoặc không sinh ra không cần phải được hiển thị, ngay cả khi dữ liệu đỉnh của chúng nằm trên thẻ từ khung trước - chúng không cần bộ đệm bị phá hủy / tái tạo mỗi khi tầm nhìn của chúng bật.
Bạn có thể vui lòng giúp tôi hiểu cách thực sự mang lại lợi ích của VBO trong các trò chơi trên máy tính không? Có thể có nhiều VBO dựa trên đỉnh hơn (giả sử một trên một đối tượng) hoặc phải luôn luôn có chính xác một VBO cho mỗi chu kỳ vẽ?
Bạn có thể có nhiều bộ đệm đỉnh. Nói chung, bạn có một lưới cho mỗi lưới / mô hình và bạn đề cập đến cấu trúc dữ liệu lưới / mô hình đơn lẻ đó với một tập hợp các đối tượng có thể kết xuất có thể chứa ma trận biến đổi thế giới duy nhất của riêng chúng. Bằng cách này, nếu bạn có 50 kẻ thù, tất cả đều sử dụng cùng một lưới, bạn chỉ cần lưới đó trong bộ nhớ một lần. Sau đó, bạn có 50 cấu trúc thể hiện nhỏ hơn, nhẹ hơn tham chiếu đến lưới đó và giữ một biến đổi thế giới duy nhất được sử dụng khi hiển thị từng thể hiện.