Câu hỏi hay. Câu trả lời là nó phụ thuộc !!
Trên một lưu ý hữu ích hơn tôi có thể nói điều này: Một vài năm trước, tôi đã phát triển một ứng dụng dựng hình 3D kiểu CAD trong OpenGL. Điều này đã hiển thị các mô hình CAD của giàn khoan dầu với tối đa 1.000.000 đối tượng và cho phép người dùng phóng to chi tiết, hoặc thu nhỏ, di chuyển đối tượng, v.v. Tôi có thể nói chắc chắn rằng WPF sẽ không phù hợp với điều này loại ứng dụng vì nó sẽ chỉ là quá chậm. Ứng dụng này được phát triển bằng cách sử dụng C++/CLI và cầu nối từ .NET GUI (Thanh công cụ, cửa sổ) sang C++ sang OpenGL (hiển thị bề mặt) và thậm chí giới thiệu hiệu suất trên ứng dụng C++/OpenGL gốc do thunking. Vì vậy, nếu bạn muốn có hiệu suất cao nhất, bạn không thể đánh bại C++ gốc bằng DirectX hoặc OpenGL.
WPF có thể cung cấp đồ họa 3D hiệu năng cao và tương tác mượt mà cho các ứng dụng 3D đơn giản hơn. Ví dụ: bề mặt biểu đồ 3D hoặc băng chuyền 3D, ngay cả trình xem mô hình CAD 3D miễn là mô hình khá đơn giản. Khi số lượng đối tượng bắt đầu tăng lên, bạn sẽ thấy công cụ hiển thị không thể xử lý nó - đó là khi bạn cần chuyển sang công cụ hiển thị cho phép truy cập trực tiếp vào GPU.
Đối với giải pháp nhà nửa chừng (managed + DirectX), hãy thử SharpDX. Về cơ bản, đây là một triển khai mã nguồn mở của Managed DirectX và cực kỳ mạnh mẽ và linh hoạt. Hiệu suất hit của quản lý so với bản địa C + + là nhỏ (~ 5%) và khi thực hiện đúng, quản lý DirectX có thể cực kỳ hiệu quả.
Điều chúng tôi đã làm là tích hợp DirectX trực tiếp với WPF qua D3DImage. Chúng tôi đã đạt được điều này trong một WPF 3D Chart Control sử dụng DirectX11 cho bản vẽ (không phải WPF3D). Điều này chia sẻ trực tiếp từ bản địa DirectX đến WPF nhưng bạn có thể nhận được kết quả như nhau tốt với SharpDX, mà chúng tôi đã sử dụng để tạo ra một tốc độ cao WPF Drawing Plugin ở đây.
Để giới thiệu WPF3D, tôi đề nghị bạn thử this link. Như bạn thấy WPF3D có thể tạo ra các ví dụ vô cùng hấp dẫn và đôi khi phức tạp nhưng bạn sẽ không tìm thấy bất kỳ giàn dầu nào đối tượng 1.000.000 trong đó;)
Cuối cùng, bạn muốn làm gì trong WPF 3D? Chỉ cần một điểm quan tâm hoặc bạn có một dự án cụ thể để thực hiện và muốn biết nếu nó sẽ phù hợp?
Trân trọng,
Nguồn
2012-01-20 15:45:41
Cảm ơn câu trả lời và câu hỏi của tôi chỉ là một điểm đáng chú ý, nhưng sẽ rất hữu ích trong tương lai nếu tôi phải triển khai một cái gì đó trong không gian 3D. – SpeedBirdNine
@SpeedBirdNine không có vấn đề gì. Tôi muốn đề nghị kiểm tra liên kết này http://helixtoolkit.codeplex.com/ vì nó dường như có một showcase khá tốt về khả năng của WPF 3D. Trân trọng –
Cảm ơn bạn lần nữa vì đã liên kết! – SpeedBirdNine