View Single Post
Old 30-01-2006, 10:01   #2
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Ci sono vantaggi e svantaggi per entrambe.

Directx è un prodotto microsoft, e cambiano alla velocità della luce; questo significa continuo aggiornamento, codice da riscrivere (o da buttare), e tutto quanto sia correlato al non avere uno standard fisso. Opengl cambia molto più lentamente, ed è lo standard industriale per quanto riguarda la grafica 3d (applicazioni tipo maya utilizzano opengl). Directx è più orientata allo sviluppo di giochi, dove la manutenzione del codice praticamente non esiste. Dalla sua Directx ha la pregevole caratteristica di avere tutto dentro di sè: video, audio, input, ecc... Con l'ultimo sdk poi è stata aggiunta una libreria figa chiamata DXUT (che penso stia per directx utility toolkit) che ti facilita di molto l'inizializzazione delle librerie e ti dà la possibilità di aggiungere widget grafici in modo direi quasi banale. Questo non è un vantaggio da poco secondo me.
Opengl è molto più rozza: il suo scopo è la grafica, punto. Niente audio, niente input, niente caricamento delle texture (una texture è un insieme di byte, e opengl capisce quelli, non i file .jpg, .tga, ecc...). Per queste cose ti devi appoggiare a librerie esterne (come devIL per le texture, fmod per l'audio, ecc...queste sono scelte religiose).

Personalmente io utilizzo opengl: è più pulita, più diretta, genera codice MOLTO più pulito e leggibile, e l'utilizzo di librerie esterne non mi pesa troppo.

Mi sarò dimenticato sicuramente qualcosa, ma per ora direi che può bastare
Ah, ovviamente con directx puoi sviluppare solo per windows, ma questo penso sia chiaro

Il modo migliore di scegliere comunque è provare entrambe.

ps. non devi pagare nulla per sviluppare applicazioni con directx: ti scarichi l'sdk e bon.

ps2. ah...sai qualcosina di matrici e vettori, vero??
shinya è offline   Rispondi citando il messaggio o parte di esso