Về cơ bản, tôi muốn loại bỏ sự cần thiết phải tạo ra tiếng ồn kết hợp từ CPU đến GPU. Từ đó, tôi cũng muốn tạo địa hình cho một thế giới ba chiều bằng cách sử dụng tiếng ồn này như mật độ tại các điểm voxel. Sau này, tôi muốn lấy các mật độ đó và đa giác hóa (tạo các đỉnh) chúng đại diện cho địa hình của thế giới.
Điều này là tốt và tất cả. Nhưng, tôi cũng muốn biến dạng linh hoạt thế giới trong thời gian thực. Khi tôi đến thời điểm này, tôi gặp vấn đề khi cố gắng đưa các đỉnh trở lại CPU để thực hiện những việc như phát hiện va chạm và tất cả các tính toán trò chơi mà tôi muốn liên quan đến CPU chứ không phải GPU.
Vì vậy, câu hỏi là: làm thế nào tôi có thể đưa một tập hợp con của đỉnh trở lại CPU để xử lý các va chạm giữa những thứ khác?
Và một câu hỏi nữa: có cách nào dễ dàng để lấy một tập hợp các đỉnh và tạo các chỉ số từ chúng trên GPU không?
Tôi bối rối cũng như những loại shader nào tôi nên sử dụng cho những thứ khác nhau này. Tôi nghe nói về những người sử dụng một pixel shader để thu thập mật độ và sau đó sử dụng một shader hình học để xử lý việc tạo địa hình từ các đỉnh và sau đó bằng cách nào đó kết hợp một shader đỉnh để thực hiện các biến dạng động.
Tôi đang sử dụng C # 4.0, .NET 4.0 và XNA Game Studio 4.0.