2013-02-20 18 views
15

Mi piacerebbe imparare a realizzare semplici applicazioni 3D per Windows 7/desktop. Con questo intendo sfere, triangoli o pixel che si muovono nello spazio 3D. Non deve essere ancora molto complicato. Per questo, vorrei usare il linguaggio C# con .NET (Java/C++ è la mia seconda priorità).Libreria grafica 3D per .NET

So che questo è stato chiesto più volte su Internet, ma sento che molte delle domande sono obsolete, molte API deprecate e tutorial troppo vecchi.

Stavo pensando di imparare XNA, ma poi ho appreso che anche lo Sharp2X Microsoft does not plan to develop and support it anymore. sembrava un buon modo per andare, ma che sembra essere indirizzato alle app di Windows Store e Phone.

Mentre cerca su internet, Managed DirectX sembrava esattamente quello che cercavo (la sintassi, la complessità), ma ancora una volta, che è il modo troppo deprecato per me da usare.

Potete indicarmi cosa devo imparare a creare applicazioni 3D semplici ma solide?

+2

Look at [OpenTK] (http://www.opentk.com/) e [renderstack] (http://neure.ath.cx/renderstack_new) non è DirectX, ma OpenGL. – ja72

+0

# Ja75 Grazie per il commento. Ho guardato OpenTK, ma mi preoccupa un po '. Sembra che non ci siano aggiornamenti dal 2010 e ci sono alcuni problemi di compatibilità con la versione più recente di VS. – Janman

+1

La versione 2010 è un po 'vecchia, ma il trunk SVN è stabile. L'ho usato per un po 'senza problemi. Se vuoi qualcosa di più all'avanguardia, c'è [un fork di OpenTK su GitHub] (https://github.com/andykorth/opentk) a cui alcuni di noi hanno contribuito dal momento che il manutentore originale di OpenTK è stato occupato con la vita per il passato mentre –

risposta

8

Date un'occhiata a SlimDX. È una libreria gestita open source, gratuita per DirectX (DirectX 11). Ogni versione coincide con una versione di DirectX, quindi la maggior parte delle volte è abbastanza aggiornata. L'ho usato ed è stato abbastanza facile iniziare. Here (scroll down) è un confronto con altre possibilità che hai citato.

+0

Ciao! Questo sembra molto simile a quello che sto cercando. Lo scaverò e riferirò tra qualche giorno se questo mi sarà d'aiuto! Grazie mille! – Janman

5

Il più semplice è probabilmente l'utilizzo di WPF 3D. Si tratta di un sistema di grafica in modalità conservata, quindi se non si hanno esigenze enormi (es: shader speciali per effetti, ecc.), È molto facile da configurare e usare direttamente.

In caso contrario, un sistema 3D più elaborato, come XNA, potrebbe essere più appropriato. Questo sarà più lavoro da configurare, ma ti darà molto più controllo.

  1. Tutorial 1: Displaying a 3D Model on the Screen
  2. WPF
  3. XNA
4

Nel mondo OpenGL ho utilizzato OpenTK. Ho dovuto creare il codice esistente con C# per visualizzare oggetti geometrici piatti senza ombreggiature ed effetti realistici.

Ecco un esempio:

render

generato dal codice:

void InitModels() 
{ 
    Scene.CoordinateSystem cs1 = new Scene.CoordinateSystem(world.Ground) 
    { 
     DrawSize = 1, 
     Visible = false 
    }; 
    Scene.CoordinateSystem cs2 = new Scene.CoordinateSystem(world.Ground, 0.6 * vec3.J) 
    { 
     DrawSize = 0.5, 
     Orientation = rot3.RotateXDegrees(-15) 
    }; 
    Scene.Cube cube = new Scene.Cube(cs1) 
    { 
     CubeSize = 0.5 
    }; 
    cs2.AddPoint(new point3(vec3.O,1), Color.Firebrick, 15); 
    var line = cs2.AddLine(new line3(-vec3.I, vec3.I), 20, Color.SlateGray, 2); 
    line.SetPattern(0xFF0F, GeometryTest.Scene.Stripple.Scale2); 

    cube.BindTexture(5, GeometryTest.Properties.Resources.julia, true); 
    cube.AddText(3, "OpenTK 1.0", Color.DarkMagenta, 0.5f, 0.5f, 1.0f); 

} 
+1

Vedere [Avviso di permesso] (https://github.com/opentk/opentk/commit/2e51fe019771f4c70b15bb25b3a560f712a45fbf): Sembra che il proprietario del progetto non sia in giro, quindi il progetto non verrà più aggiornato. – kiamlaluno