2015-07-21 23 views
8

Ağır kullanım grafiklerini en hızlı şekilde çekmek istiyorum. Standart C# grafik geri çağrıları kullanırsam (es.graphics.drawline) doğru mu yapıyorum? Yoksa farklı kütüphaneleri kullanıyorum mı?C# grafikler için GPU kullanıyor mu?

+0

Neden bu aşağı, soru aptal değil? –

+0

Winforms veya wpf kullanıyor musunuz? – Pazi01

+1

@Yvesdaoust, haklı bir neden olmadan devam eden bir sürü oylama gibi görünüyor, ancak bu soruya ilk yorumu okursanız, o zaman bazı insanların sadece 'böyle olduğunu' görebilirsiniz. ... http://meta.stackexchange.com/questions/135/encouraging-people-to-explain-downvotes –

cevap

6

Graphics.DrawLine, GDI + aramasıdır. Windows Forms kullanıyorsanız ve çiziminizi System.Drawing sınıflarıyla yapıyorsanız, donanımsal hızda olmayan GDI + kullanıyorsunuzdur. Donanım hızlandırma elde etmek için, WFF'yi WinForms yerine kullanmalı veya Direct3D/Direct2D ile çizmelisiniz. İkincisi (Direct3D/Direct2D) COM tabanlı, bu yüzden bir .NET sarıcısına ihtiyacınız olacak. Microsoft Direct3D'yi .NET için Managed DirectX ve XNA ile tamamladı. İkisi de (inanıyorum) artık kullanılmıyor. Daha güncel olan DirectX kitaplıkları için third-party wrappers da vardır.

Düzenleme: Sadece GDI + 2D hızlandırılmış olduğunu @ HansPassant yorumuna öğrendi. GDI + 'nın (GDI +' nın aksine) GDI + 'nın antialiasing gibi şeyleri üstlendiğini düşündüm (bunu anladığım kadarıyla) 2B donanım yapmadı. Ama görünüşe göre yanılmışım.

+1

Sadece 'MonoGame', XNA'nın kullandığı aynı API'da directX veya OpenGL'yi kaydırdığını, ancak hala etkin bir şekilde sürdürüldüğünü, –

+0

buna ek olarak, SharpDX'i DirectX çevresinde yönetilen bir sarıcı olarak tavsiye ederim. – Kyle