2012-11-13 16 views
5

Tôi đang học DirectX ngay bây giờ, tôi đã đọc rất nhiều về VertexBuffer. Vì bạn không thể học từ lập trình bằng cách chỉ đọc, tôi đang tạo một Engine nhỏ với DX11 (Câu hỏi của tôi không thực sự phụ thuộc phiên bản)DirectX - VertexBuffer hoạt động như thế nào?

Theo như tôi đã hiểu trong VertexBuffer tôi lưu trữ Vertices và thực sự tôi lưu trữ trên thẻ đồ họa. Tôi cũng đọc về bộ đệm tĩnh và động. Vì vậy, nếu tôi hiểu chính xác, một bộ đệm tĩnh được khởi tạo với các đỉnh và các đỉnh được khởi tạo sẽ không thay đổi. OKay nhưng khi nào tôi thực sự cần nó. Tôi có nghĩa là trong một trò chơi hoặc bất cứ điều gì, khi nào tôi có đỉnh liên tục? Có lẽ đối với một số đối tượng UI ..? - nhưng ngay cả những điều này không phải lúc nào cũng liên tục .. bạn có thể di chuyển vị trí 2D của chúng ... vv ..

Điểm tiếp theo là về bộ đệm đỉnh động, ví dụ: Tôi có Bộ đệm với một số đỉnh trong đó, các đỉnh được vẽ. Sau đó, tôi muốn thêm hoặc loại bỏ một số đỉnh. Điều gì bây giờ .. Vì vậy, tôi chỉ đơn giản là "cập nhật" bộ đệm. Nhưng điều này thực sự đúng và tốt cho hiệu suất? Hãy tưởng tượng một trình chỉnh sửa địa hình. Ở đó bạn phải cập nhật tấn đỉnh.

Trả lời

7

Tôi có nghĩa là trong trò chơi hoặc bất kỳ điều gì, khi nào tôi có các đỉnh liên tục?

Tất cả thời gian thực sự. Ví dụ, hình học tĩnh, các đối tượng UI bạn đã đề cập vv Có một sự hiểu lầm nhỏ về phía bạn về việc di chuyển các đối tượng, do đó sự nhầm lẫn - bạn không di chuyển các đối tượng bằng cách thay đổi đỉnh của chúng. Thay vào đó, bạn sẽ đặt đỉnh của bạn thông qua các đường ống đổ bóng. Trong shader vertex, bạn có thể áp dụng các biến đổi tùy ý cho các đỉnh của bạn. Vì vậy, ví dụ, nếu bạn có cây di chuyển trên khắp thế giới vì lý do nào đó (có thể là trên một hòn đảo nổi hay gì đó), thay vì thay đổi các đỉnh tạo nên cây, bạn thay đổi phép biến đổi được áp dụng cho các đỉnh .

Hãy tưởng tượng một trình soạn thảo địa hình

Nó phụ thuộc vào những gì biên tập địa hình của bạn có nghĩa vụ phải làm, nhưng nói chung bạn một lần nữa sẽ không thay đổi đỉnh đây. I E. khi chỉnh sửa chiều cao, thay vì sau đó di chuyển các đỉnh lên và xuống, bạn ghi vào bản đồ độ cao (phần lớn thời gian là một kết cấu màu xám) và một lần nữa tính toán chuyển đổi trên GPU trong đường ống đổ bóng.