2010-05-23 15 views
17

Sono uno sviluppatore da circa 6 mesi e, dal momento che mi piace programmare, ho iniziato piccoli programmi come encripters, calcolatori, strumenti, cose da giocare con DropBox (hehe), elementi che giocano con bitmap, disegno di grafica e persino un programma per aggiornare l'immagine del display MSN in base al disegno della musica che stai ascoltando su iTunes.Come dovrei iniziare a giocare con 3D?

Uno dei miei altri hobby è Modellazione 3D (completely amateur) e mi piacerebbe mescolare questi hobby insieme! Quindi ho letto un po 'su questo e ho pensato che avrei dovuto avere buone nozioni sulla geometria, matematica, posizione spaziale dei punti (cosa che faccio, dalla mia esperienza di modellazione 3d), ma non so come usare le API per così, ho simulato un semplice 3d con un semplice programma che ho creato (a spinning cube).

Ecco alcune domande:
1) quello che sarebbe un bel strumento di sviluppo 3d per un programmatore .NET come me?
2) Esiste un modo di utilizzare i modelli 3D realizzati in 3DS Max? (Intendo modellare i personaggi)
3) Che conoscenza dovrei avere per renderlo e spostarlo?
4) Quale API dovrei usare?

NOTA: Non una vittima, mi sto chiedendo istruzioni specifiche per lo sviluppo .NET possibilmente utilizzando 3ds MAX, e non c'erano domande su di esso finora


EDIT:

Ho tre risposte che sembrano molto belle, quindi permettimi di specificare un po 'e forse puoi dirmi qual è lo strumento più appropriato.
Quello che mi piacerebbe costruire presto sarebbe come:

  • portatile (click'n'run, nessuna necessità di installare, e (si spera) non c'è bisogno di inviare insieme di DLL)
  • "embedding 3D "in applicazione WinForms, come un PictureBox si potrebbe rendere in
  • WinForms Real Application-simile (con tutte le API di sistema come IO, Disegno e ecc)

L'ambiente di sviluppo sarebbe bello se:.

012.
  • avuto la possibilità di importare modelli inesistente 3D (non è obbligatorio, ma un plus)
  • avuto la capacità di creare modelli 3D programatically (un must)
  • ha forse uno strumento per i materiali e le texture (che avrebbe essere un vantaggio enorme)
  • è ben noto (alta disponibilità di tutorial, domande a SO, forum ..)

E sarebbe davvero bello se potessi utilizzare C# tutta la strada :)

+1

Questo è piuttosto un bel cubo rotante! :) –

+0

@Lucas_Jones haha ​​.. grazie, ma è un pò lenta, la prospettiva dovrebbe essere più agevole .. ho fatto con geometrie semplici, e System.Drawing =) – Marcelo

+1

Ciao Marcelo, scuse per il lieve tangente, ma come un 3d appassionato si può essere interessati alla proposta sito Modellazione 3D Stack Exchange: http://area51.stackexchange.com/proposals/5022/3d-modeling-techniques-and-software sarebbe bello se si potesse firmare e diffondere la parola più avanti :) –

risposta

7

ho intenzione di fornire un altro voto per XNA. Il commento che è troppo "game centric" è un non-starter - fornisce un ciclo di rendering con feedback su quanto velocemente tutto è in esecuzione in modo da poter regolare il rendering per provare a mantenere un framerate specifico (se lo si desidera). Questo non è particolarmente incentrato sul gioco in quanto è qualcosa di cui la maggior parte delle applicazioni 3D dovrebbero preoccuparsi. L'unica cosa veramente insolita per il gioco è che fornisce un facile accesso ai controller di gioco. Sentiti libero di ignorare quel po 'se non vuoi usarlo.

L'unico svantaggio per te che usi XNA è il tuo requisito che sia click'n'run, XNA ha uno redistributable di cui devi preoccuparti. Nota che Win7 ha installato questo di default, ma Vista e prima no.

MODIFICA: XNA è progettato per applicazioni rigorosamente 3D. In quanto tale, non supporta in modo nativo l'utilizzo di controlli di finestre tipici all'interno di un progetto XNA. Ma ci sono dei modi per aggirare questo ... Alcuni link utili. Incorporare XNA in una WinForm: http://forums.xna.com/forums/p/6471/34180.aspx#34180 WPF controlla direttamente all'interno di un progetto XNA: http://www.c-sharpcorner.com/UploadFile/iersoy/256/Default.aspx

+0

Se le persone hanno solo per eseguire questo solo una volta prima di eseguire qualsiasi cosa io, che non va contro la mia richiesta, ho solo odio l'idea di avere una configurazione per un semplice programma di esempio, se l'esecuzione di questo framework renderà l'esperienza dell'utente semplice come sarebbe per un'applicazione winforms, è ok. È giusto? – Marcelo

+0

Sì, la redist deve essere installata solo una volta. Dopo questo punto, l'aggiornamento di Windows si prenderà cura di assicurarsi che rimanga aggiornato se qualcosa cambia. Inoltre, vedi la mia modifica sopra. – Donnie

+0

Whoa .. questo è davvero un punto a favore di XNA – Marcelo

3

Dato che stai usando C# .Net, la libreria XNA sarà eccellente per te. È libero dal sito Web di Microsoft e si integra nell'IDE VS. Un sacco di tutorial disponibili in giro per aiutarti a iniziare.

Inoltre, se non ricordo male. per utilizzare un modello 3d in XNA, è sufficiente esportare il modello completato come (.X). Può quindi essere caricato nel tuo lavoro.

+0

XNA supporta anche il formato FBX e ci sono molti importatori di contenuti creati dalla comunità per altri formati. Anche la possibilità di eseguire i tuoi giochi su 360 è un vantaggio enorme. –

+0

Ok, quindi per quello che le persone mi hanno detto, è davvero progettato quasi esclusivamente per i giochi. Quindi, se voglio fare una semplice applicazione winforms con un'interazione utente semplice, ad esempio un cubo che gira (in più di un asse) quando l'utente fa clic su un pulsante (come il mio esempio, ma con 3D reale), sarei in grado di farlo facilmente? – Marcelo

+0

Esistono numerose esercitazioni per il rendering di XNA a un controllo WinForms. Il framework non ha un controllo pre-costruito, ma è sicuramente possibile. Infatti, i siti web Creators Club ha un campione: http://creators.xna.com/en-US/sample/winforms_series1 –

4

Personalmente, ho trovato XNA un po 'troppo "Game Centric" per i miei gusti. Ero più interessato agli usi del tipo design/architettura.

Potresti trovare SlimDX più di tuo gradimento.

+0

mia idea iniziale (per cominciare, per l'apprendimento) sarebbe quello di fare una "immagine coverflow". sarebbe adatto e facile per un antipasto come me? potrei fare un EXE con esso (lungo o no con le DLL extra) e gestirlo alle persone? (Non una messa a punto, un portatile "click-n-run") – Marcelo

1

Il mio voto va per Povray. È un renderer 3d con un linguaggio di sintassi c-like. Non soddisfa i tuoi bisogni .net, ma se non è bello, per il rendering 3d. Se hai un qualsiasi tipo di interattività, XNA è probabilmente il tuo migliore. Ma sono interessato alle tue scoperte.

+0

Ha qualche tipo di API o qualcosa per me per gestirlo programmaticamente? Mi sembra che sia solo per il rendering di immagini e animazioni .. grazie comunque! – Marcelo

+0

Nessuna API ... Suppongo che potresti costruirne uno. È vero Ray che traccia così non velocemente. – nportelli

+0

Questa sarebbe sicuramente l'unica soluzione in cui potrei imparare di più, ma sto cercando qualcosa di più in mano adesso – Marcelo

1

Re: "Ha la capacità di creare modelli 3D programatically (un must)"

Alcune indicazioni:

Non ci sono librerie .NET di cui sono a conoscenza che consentono di utilizzare le librerie/tecniche sopra menzionate. Dovrai utilizzare PInvoke o C++/CLI per fare chiamate a queste librerie dal mondo gestito.

+0

Hey! Come faccio a ignorarlo?Ci sono voluti mesi per raccogliere ciò che ho elencato qui. : | –

+0

Grazie mille! La gratitudine di qualcun altro non è abbastanza? La condivisione è il punto centrale di questo sito :) – Marcelo

4

Anche se ci sono già ottimi suggerimenti in questo post (come SlimDX e XNA), vorrei solo menzionare OpenTK.

OpenTK è più vicino a OpenGL rispetto a Direct3D, ma potrebbe essere la soluzione migliore per le applicazioni 3D .NET multipiattaforma.

+0

OpenTK è fantastico e funziona su Mono. –

2

io voto si tenta di Blender. www.blender.org

È gratuito, open source e ha una grande community sia su forum che su IRC.I progressi nell'app vengono spinti avanti dai principali progetti comunitari ogni anno, alcuni dei quali sono film e giochi e hanno vinto alcuni premi. Sta guadagnando l'accettazione del settore come un modo per modellare estremamente velocemente.

Svantaggi: non è considerato come "pro" come Maya o ZBrush, e ha un cervello molto diverso interfaccia. La curva di apprendimento può essere interessante, a seconda di come si impara e di quanto aiuto si riceve.

Upsides: È gratis grande comunità,, aggiornato regolarmente, molti tutorial e progetti comunitari su cui lavorare.

Community:

comunità precedenti Progetti: