2009-05-04 14 views
10

Sto provando a spostare il mio sviluppo di gioco nella terza dimensione, ma ho un po 'di problemi a capire cosa devo effettivamente fare. Ho creato un MMORPG 2D prima di usare C e SDL, che non era troppo difficile. Ma non riesco a trovare alcuna risorsa utile che spieghi come funzioni effettivamente la programmazione 3D. Ho una conoscenza di base della matematica vettoriale coinvolta, ma non riesco a trovare alcuna spiegazione chiara e approfondita su come funzionano tutto il resto, come l'illuminazione e gli shader. Ho trovato un sacco di esempi di codice e simili, ma tutti loro inseriscono un commento come "// Applica l'illuminazione", che in realtà non mi dice nulla su cosa stia effettivamente facendo e perché.Guide sui concetti di programmazione 3D?

Non sto cercando un tutorial specifico per API; è abbastanza facile apprendere una nuova API: non sono sicuro di cosa farne effettivamente.

risposta

11

Se stai cercando un libro, consiglio vivamente lo Real-Time Rendering. Ho la seconda edizione del libro e ho trovato che è una grande risorsa quando si lavora con la grafica 3D. Il libro spiega i meccanismi interni degli elementi costitutivi della programmazione 3D, come trasformazioni, illuminazione e trame. Esplora anche una serie di argomenti avanzati, tra cui shader, rilevamento delle collisioni, accelerazione e ottimizzazione.

Il libro è molto leggero sul codice. Spiega in modo approfondito gli algoritmi ma non contiene frammenti di codice reali. Quindi è molto buono se vuoi imparare come funzionano le cose invece di sapere solo quale funzione chiamare.

+0

ci sarebbe un libro o un sito web equivalente per il concetto di grafica 2D? o è 2d troppo semplice per un simile trattamento? – eugene

1

Se sei interessato alla programmazione per XBOX 360 in C# puoi guardare XNA Framework. This website ha tonnellate di tutorial su XNA e consiglio vivamente di provarlo. Basta navigare nella barra laterale (sulla destra) e fare clic sulla sezione 3D.

5

Ti suggerisco di dare un'occhiata allo NeHe OpenGL tutorials, iniziando da quelli più semplici e imparare un po 'di OpenGL. Un buon riferimento OpenGL (come lo Red Book, anche se forse è un po 'avanzato per iniziare) sarà di grande aiuto.

+0

Oops ha appena visto il tuo post, +1 per Red Book (a.k.a OpenGL Programming Guide, Fifth Edition) – yxk

+0

Oh, oops. Ho appena visto anche il tuo post. Il libro rosso è stato quello che ho imparato dal 3D - fa un buon lavoro iniziando da zero. –

+0

Se/quando prendi una copia del Red Book, assicurati che sia OpenGL 4.0+ (che tratta gli shader, non la vecchia pipeline fissa) –

8

Se si desidera comprendere i concetti di grafica 3D e rendering tutorial non sarà di grande aiuto. Come hai scoperto, ti insegnano l'API ma non aiutano con la comprensione fondamentale.

è necessario il bibbia di programmazione grpahics:

http://www.amazon.com/Computer-Graphics-Principles-James-Foley/dp/0201121107

alt text http://introtextbooks.com/wwwstatic/gfx/cover/foley-computer-graphics-principles-and-practice-in-c-2e.jpg

non copre alcun OpenGL, DirectX o shader, solo i fondamentali. Ma è quello di cui hai bisogno. Ad esempio: una volta capito come funziona l'illuminazione, le tre linee che abilitano l'illuminazione su OpenGL avranno improvvisamente un senso.

+1

Wow, non sapevo che Van Dam fosse uno scrittore, tanto meno che fosse un guru della computer grafica ... –

+0

sarebbe meglio del 'rendering in tempo reale' per un newbie completo alla grafica? – eugene

2

Il testo standard "di giorno" era Foley and Van Dam, alcuni argomenti trattati sono un po 'lunghi nel dente ma la matematica fondamentale alla base delle trasformazioni e delle proiezioni 3D non è cambiata.

Alan Watt's testo è anche buono, ma non è davvero un libro introduttivo.

Si potrebbe anche dare un'occhiata al sito web David Eberly's, ha scritto diversi libri sull'argomento e vi è una ricchezza di informazioni correlate da trovare anche lì. Aspettatevi un sacco di matematica.

3

The Red Book - è praticamente l'unica fonte che insegna tutto (principiante-intermedio) che è necessario conoscere su OpenGL.Questi concetti possono essere facilmente spostati su qualsiasi altra libreria 3D. E anche questa ha una versione online gratuita!

Problemi correlati