2009-09-15 18 views
20

Tôi đã nghe một số đánh giá tốt về Công cụ trực quan hóa (VTK) từ các nhà phát triển. Nhưng chính xác nó mạnh đến thế nào? Ví dụ, nó có thể xử lý trực quan hóa toàn bộ hồ chứa dầu (trong một mô phỏng) với hàng tỷ điểm lưới không? Hầu hết các mô phỏng hồ chứa công nghiệp chạy trên các bộ vi xử lý song song. Tôi biết VTK hỗ trợ xử lý song song, nhưng một lần nữa làm thế nào ổn định nó có thể được sử dụng bộ xử lý song song khi chạy một cái gì đó giống như mô phỏng hồ chứa? Có ai đã sử dụng VTK trên một dự án quy mô lớn như vậy không?VTK tốt như thế nào?

Mathematica hỗ trợ một số mô phỏng hồ chứa đơn giản, nhưng tôi nghĩ nó sử dụng các thư viện Java Swing. Vì vậy, không ai có bất kỳ ý tưởng của VTK được sử dụng cho một hình dung mạnh mẽ hơn 3DSplice? Ngoài ra, bất cứ ai có thể nói bất cứ điều gì về thời gian phát triển bằng cách sử dụng VTK?

Trả lời

11

VTK được mã hóa bằng C++ và có thể sử dụng trong C++, Python, Tcl/Tk, Java. Các phòng thí nghiệm như Sandia (bao gồm, tôi tin rằng nỗ lực của họ là Titan), Los Alamos và Livermore, sử dụng VTK cho những nỗ lực trực quan trên quy mô đủ lớn để cạnh tranh với tham vọng của bạn (tất nhiên, điều này được thực hiện với số lượng lớn phần cứng hỗ trợ, và các lập trình viên có kỹ năng rất cao với VTK và tất cả các công nghệ khác đang được sử dụng trong dự án - "hàng tỷ điểm lưới" không phải là một dự án để giải quyết cho đến khi bạn có một đội ngũ kỹ năng cực đoan, không phải với bộ công cụ BẤT CỨ).

Tôi không tuyên bố điều này (một dự án trực quan về quy mô đầy tham vọng dữ dội mà bạn nghĩ) sẽ là DỄ DÀNG dù bạn giải quyết nó như thế nào - nhưng tôi không thể nghĩ ra bất kỳ khuôn khổ thay thế nào nó dễ dàng hơn VTK! -)

+0

Về cơ bản, tôi kỹ sư dầu khí nhưng tôi rất đam mê lập trình (Tôi biết có một sự khác biệt giữa việc đam mê và là tay nghề cao) Chúng tôi có một đội ngũ lập trình viên có tay nghề cao đã được tham gia vào sự phát triển của mô phỏng chứa. Gần đây, chúng tôi đã suy nghĩ về VTK. Vì vậy, những gì về thời gian phát triển? –

+1

Thời gian phát triển có thể nhanh hơn so với bất kỳ bộ công cụ khác tương tự mà tôi từng nghe nói về, nhưng tinh chỉnh và tối ưu hóa để chạy tỷ nút visualizations NHANH trên cụm khổng lồ vẫn sẽ cảm thấy như nó được dùng mãi mãi - đó là một vấn đề vốn đã khó khăn. Tôi không biết bất kỳ công cụ nào làm cho sự phát triển của bạn nhanh hơn VTK, nhưng điều đó không có nghĩa là bạn sẽ THÍCH số lượng công sức liên quan ngay cả với VTK (vậy thì thay thế là gì - chẳng làm gì cả vì nó quá khó? -). –

+0

Có một số nhược điểm quá (từ kinh nghiệm cá nhân ngắn của tôi với nó): * Tài liệu có thể (nhiều) tốt hơn. * Chỉ danh sách gửi thư, không có diễn đàn. * Nếu mọi thứ không hoạt động thì khó tìm ra lý do. * chất lượng API là so-so (Odd Tên, chức năng trùng lặp, các khái niệm lẻ) – Bim

-2

Xác định VTK "mạnh" (hoặc bất kỳ thư viện nào) là không thể. Tất cả phụ thuộc vào nhu cầu của bạn. Nó không giống như bạn có thể ném bất kỳ lưới điện tại VTK, thịt bò lên với vô số tải của phần cứng và mong đợi nó chạy trơn tru. VTK không hướng đến các mô hình khổng lồ - tuy nhiên có một thư viện có tên là Paraview cố gắng hỗ trợ điều này.

Sidenote: chúng tôi hình dung các mô hình tế bào tỷ tương tác trên các máy tính xách tay đơn giản (không sử dụng VTK/Paraview). Làm sao? Tôi đoán đó là một bí mật ... :)

+0

Tôi muốn upvote này đề cập đến ParaView, nhưng ParaView là một chương trình độc lập, không phải là một "thư viện". Ngoài ra, vai trò của nó không thêm hỗ trợ dữ liệu lớn cho VTK. Hiện tại, tôi bị buộc phải bỏ phiếu -1 vì không chính xác về mặt kỹ thuật. – Eric

3

Trải nghiệm cá nhân của tôi với VTK là tích cực, nhưng chỉ với các tập dữ liệu nhỏ. Nó chắc chắn sẽ rất chậm nếu bạn có bộ dữ liệu lớn, như trong trường hợp của bạn. Về mặt tích cực, nó thể thao rất nhiều chế độ trực quan mà nó không thể tưởng tượng để viết lại chúng trong OpenGL thuần túy. Tôi không biết sự chậm chạp của VTK đến từ đâu, nhưng kiến ​​trúc đường ống có thể không giúp ích gì. Ngoài ra, phần lớn phụ thuộc vào bộ lọc bạn sử dụng. Ví dụ, âm mưu thể tích là chậm bởi xây dựng (nhiều mặt phẳng trong suốt song song).

Một giải pháp mà chúng tôi thấy hữu ích là cắt tập dữ liệu về mức tối thiểu trước khi vẽ. Rất thường xuyên, mất độ chính xác của hình ảnh là không đáng kể. Bạn cũng có thể thử với bộ lọc LevelOfDetail (LOD) nhưng tôi không có kinh nghiệm với nó.

7

VTK là một bộ công cụ khá mạnh mẽ ở chỗ nó cung cấp các triển khai hiệu quả hợp lý của nhiều thuật toán trực quan hóa khác nhau. Để xem một số VTK có thể làm gì, tôi khuyên bạn nên kiểm tra ParaView. ParaView xây dựng ứng dụng có thể sử dụng được xung quanh VTK để bạn có thể trực quan hóa dữ liệu bằng cách ghép nối các thành phần VTK khác nhau với nhau.

Để trực tiếp giải quyết các câu hỏi của bạn, việc xử lý song song trong VTK được sử dụng để đẩy nhanh quá trình tạo hình ảnh. Điều này sẽ ổn định, nhưng độc lập với tính toán mô phỏng của bạn. Học cách sử dụng VTK mất một thời gian, nhưng có một cuốn sách mà bạn có thể mua để giải thích nhiều khía cạnh về cách sử dụng nó. Thử nghiệm với bao bọc Python là một cách hay để tăng tốc độ sử dụng VTK.

Đối với các ứng dụng của bạn, tôi không chắc liệu VTK có phải là giải pháp phù hợp nhất hay không.Tôi muốn giới thiệu một số thử nghiệm quy mô nhỏ bằng cách sử dụng ParaView hoặc các ràng buộc VTK Python để xem liệu bạn có thể tạo ra một hình ảnh hợp lý về các mô phỏng của bạn hay không.

+0

+1 Để tham khảo ParaView. Lưu ý rằng cũng có [VisIt] (https://wci.llnl.gov/codes/visit/) thực hiện một công việc tương tự. Cũng hữu ích khi lưu ý rằng các hình ảnh ParaView và VisIt đều có thể được viết kịch bản bằng Python. – Chris

Các vấn đề liên quan