2015-07-21 46 views
8

Tôi muốn vẽ đồ họa sử dụng nhiều nhất một cách nhanh nhất. Nếu tôi sử dụng callbacks C# tiêu chuẩn đồ họa (es.graphics.drawline) tôi đang làm nó phải không? Hay tôi sử dụng các thư viện khác nhau?C# có sử dụng GPU cho đồ họa không?

+0

Tại sao lưu ý này, câu hỏi không phải là ngớ ngẩn? –

+0

Bạn đang sử dụng winforms hoặc wpf? – Pazi01

+1

@YvesDaoust dường như có rất nhiều cuộc bỏ phiếu đang diễn ra mà không có lý do chính đáng, nhưng nếu bạn đọc nhận xét đầu tiên cho câu hỏi này thì bạn có thể thấy rằng một số người chỉ là 'như thế!' ... http://meta.stackexchange.com/questions/135/encouraging-people-to-explain-downvotes –

Trả lời

6

Graphics.DrawLine là cuộc gọi GDI +. Nếu bạn đang sử dụng Windows Forms và làm bản vẽ của bạn với các lớp System.Drawing, bạn đang sử dụng GDI +, mà không phải là tăng tốc phần cứng. Để tăng tốc phần cứng, bạn cần sử dụng WPF thay cho WinForms hoặc vẽ bằng Direct3D/Direct2D. Hai cái sau (Direct3D/Direct2D) là dựa trên COM, vì vậy bạn sẽ cần một trình bao bọc .NET. Microsoft gói Direct3D cho .NET với Managed DirectX theo sau bởi XNA. Cả hai (tôi tin) hiện không được chấp nhận. Ngoài ra còn có third-party wrappers cho các thư viện DirectX được cập nhật hơn.

Chỉnh sửa: Tôi vừa học được từ nhận xét của @ HansPassant rằng GDI + được tăng tốc 2D. Tôi nghĩ rằng chỉ áp dụng cho GDI (như trái ngược với GDI +) vì GDI + xử lý những thứ như antialiasing (như tôi đã hiểu nó) phần cứng 2D không làm. Nhưng hình như tôi đã sai.

+1

Chỉ muốn đề cập đến rằng 'MonoGame' kết thúc tốt đẹp DirectX hoặc OpenGL trong cùng một API mà XNA sử dụng, nhưng vẫn được duy trì tích cực, –

+0

Ngoài ra, tôi khuyên bạn nên sử dụng SharpDX như một trình bao bọc được quản lý xung quanh DirectX. – Kyle

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