Theo tính toán của Vertex trong vận chuyển OpenGL


9

Tôi cố gắng thực hiện một mô phỏng vải dựa trên vị trí bằng cách sử dụng phần cứng. Điều này có nghĩa là tôi muốn chỉ cần tải lên một quad điều khiển vào card đồ họa và sau đó sử dụng tô bóng và tô bóng hình học để tạo các nút trong miếng vải.

Ý tưởng này theo bài báo:

Huynh, David, "Mô phỏng vải bằng cách sử dụng phần cứng" (2011). Luận văn. Học viện Công nghệ Rochester http://scholarworks.rit.edu/theses/265/

Tôi biết làm thế nào để sử dụng tàu để tạo các điểm mô phỏng. Những gì tôi không biết là làm thế nào để lưu trữ thông tin được tính toán vào bộ đệm khung.

Hình học và cũng là các shader đánh giá tàu có thông tin cần thiết cho các tính toán trên mỗi đỉnh. Nhưng họ có thể trực tiếp viết vào bộ đệm khung không?

Trình phân mảnh mà tôi biết có thể viết cho bộ đệm khung, nhưng thông tin của tôi sẽ bị nội suy và tôi không còn biết phải viết gì ở vị trí nào.


chuyển đổi bộ đệm phản hồi
ratchet freak

Nghe có vẻ tốt đấy. Các ràng buộc của mô phỏng vải khiến tôi có thể truy cập tất cả các lân cận của hạt (để tính toán lực lò xo). Điều này có thể được thực hiện với bộ đệm như vậy? Trong một shader hình học có thể? để phổ biến bộ đệm phản hồi để in mỗi đỉnh nhiều lần tôi muốn sử dụng GL_POINTS. Sau cái nhìn đầu tiên, có vẻ như điều này làm cho việc tính toán lò xo khó khăn hơn.
Dragonseel

Câu trả lời:


3

Dựa trên nhận xét của "ratchet freak", tôi đã nghiên cứu Transform Feedback Buffers và giải quyết vấn đề của mình theo cách đó.

Bây giờ tôi tạo các điểm mô phỏng trên CPU và đặt chúng vào VertexBufferObject. Tôi tạo VBO thứ hai cho các điểm (cùng với một số điểm khác cho vận tốc). Sự kết nối của vải được đưa ra như một thuộc tính đỉnh trong ivec4.

Sử dụng bộ đệm phản hồi chuyển đổi và thủ thuật đệm đôi bằng hai VBO tôi luôn có thể đọc từ bước cuối cùng (sử dụng thông tin kết nối) và ghi vào bộ đệm khác. Điều này là để giải quyết vấn đề với sự tương tranh.

Các tính toán được thực hiện trong shader đỉnh như GL_POINTS. Liên kết đầu ra của trình đổ bóng đầu tiên vào một trình tạo bóng thông thường khác bằng cách sử dụng bộ đệm chỉ mục bổ sung để tạo ra các hình tam giác mà tôi có thể không gặp khó khăn khi kết xuất vải theo bất kỳ cách nào tôi muốn.

Ý tưởng này tuân theo ví dụ về bộ đệm phản hồi chuyển đổi được thực hiện trong cuốn sách "OpenGL Superible" http://www.openglsuperbible.com/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.