2011-01-27 22 views
9

Che cosa dovrei imparare? OpenGL 4.1 o OpenGL ES 2.0?OpenGL o OpenGL ES

Svilupperò applicazioni desktop utilizzando Qt, ma potrei iniziare a sviluppare applicazioni mobili tra qualche mese. Non so nulla di matematica 3D, 3D, ecc. E preferirei spendere 100 dollari in un buon libro di una settimana scavando siti Web e passando per tentativi ed errori.

Un problema che vedo con OpenGL 4.1 è per quanto ne so non c'è ancora un libro (i più recenti sono per OpenGL 3.3 o 4.0), mentre ci sono libri su OpenGL ES 2.0.

D'altra parte, dal mio punto di vista ingenuo, OpenGL 4.1 sembra come OpenGL ES 2.0 + aggiunte, quindi sembra che sarebbe più facile/meglio prima imparare OpenGL ES 2.0, quindi scegliere il linguaggio shader, ecc

Ti prego, non dirmi di usare NeHe (è opinione comune è pieno di vecchie pratiche/cattivo), il tutorial Durian, ecc

Grazie

+1

OpenGL 4 e OpenGL 3 sono entrambi OpenGL moderni e non la vecchia funzione fissa OpenGL. Quindi se impari OpenGL 3, allora puoi assolutamente codificare con OpenGL 4, i concetti principali da imparare sono 'Oggetti Oggetti Vertex, Oggetti Array Vertex (i.e VBO e VAO)' quali sono questi e come usarli. –

risposta

8

Sì, sicuramente iniziare con OpenGL ES 2.0. In realtà, direi iniziare con WebGL (che è quasi come OpenGL ES 2.0). Il wiki pubblico su here è un buon punto di partenza. La cosa bella di WebGL è che non devi occuparti di cose come la compilazione/il linking ed eviti un sacco di codice boilerplate per configurare un sacco di cose. Quindi ti concentri sul disegno reale (che è davvero un po 'divertente :)). Se si dispone di un libro OpenGL ES 2.0, questo dovrebbe comunque funzionare correttamente su WebGL.

Inoltre ci sono molte demo nello repository che è possibile eseguire immediatamente (e fare clic su "Visualizza sorgente" del browser per andare direttamente al codice). Inizia con quelli semplici come: image-texture-test, scatola colorata, casella testurizzata

Questi esempi, insieme al tuo libro OpenGL ES 2.0, dovrebbero iniziare subito. Divertiti!

EDIT: Probabilmente dovrei precisare, inoltre, che se si fa decide di andare il percorso 4.1 OpenGL, probabilmente non c'è bisogno di aspettare per un libro 4.1 di OpenGL. Un libro OpenGL 3.3 o 4.0 andrebbe benissimo.

+0

nota anche che al momento webGL è disponibile solo nelle versioni beta della maggior parte dei browser. Pertanto, se è necessario distribuire rapidamente le applicazioni, sarà necessario creare una versione desktop. tuttavia, se stai solo * imparando *, è un ottimo modo per iniziare –

2

Le versioni OpenGL generalmente aggiungono nuove funzionalità alle versioni precedenti, quindi direi che l'apprendimento di OpenGL 4.1 sta infatti imparando OpenGL 3.0, poiché la base è la stessa, specialmente se si sta iniziando la programmazione 3d.

OpenGL ES 2.0 è un tipo di sottoinsieme di OpenGL 3.x.

Con questi "fatti" in mente, direi che l'apprendimento di OpenGL 3+ o OpenGL ES 2+ è quasi lo stesso, con differenze nei dettagli.

Si noti che a seconda della piattaforma desktop (SO, scheda grafica), potrebbe non essere possibile accedere a un'implementazione di OpenGL 3.

Un'implementazione di OpenGL ES 2 sul desktop potrebbe anche non essere disponibile.

Suggerimento Shezan Baig per l'avvio con WebGL può essere d'aiuto, poiché delega OpenGL init. problema al browser - alcuni anche implement WebGL over DirectX per migliorare la sua disponibilità.

Il mio suggerimento è che, mentre impari, ti concentri su principi, algoritmi e matematica 3d. Questi sono i più difficili da ottenere.I 'dettagli' di implementazione non variano molto con OpenGL (ES o non) o DirectX, o qualsiasi altra cosa.

Più precisamente, io suggerirei che si avvia nel linguaggio di programmazione si è più familiarità con. Andrei con OpenGL 1.x/2.x in questa lingua: queste versioni "vecchie" di GL contengono molte funzioni di supporto (glBegin/glVertex/glEnd; glMultMatrix; ecc.) Che sono "deprecate" in 3.x + . Usando questi, sarai più 'produttivo' per testare gli algoritmi.

Ci sono molte cose nella programmazione 3d, è possibile trovare libri di riferimento che sono diventati freely available e selezionare quali informazioni sono interessanti per il proprio caso d'uso.

+0

Che cosa suggerisci di iniziare con "3d principi, algoritmi e matematica"? – zxspectrum

+0

Modificata la risposta per includere alcuni suggerimenti – rotoglup

0

Sì, utilizzare GLES2.

1) È portatile.

2) Anche per il PC seguire il modo GLES2 di fare le cose. (A meno che non sia avanzato e abbia bisogno delle funzionalità GL3/4).

3) Si desidera utilizzare il periodo di shader e GLES2 è utile per l'apprendimento nel modo corretto.

Ricordare OpenGL fa schifo su Windows. I driver sono di solito schifo. Prendi il netbook, supporta hlsl 2.0 ma non supporta gli shader GLSL e gira solo GL-1.3

+1

Il punto "I driver sono schifo" non è vero in generale. Cosa "fa schifo", sono driver Intel, e i netbook sono, più comunemente, forniti con GPU Intel. Dall'altra parte, AMD e NVidia hanno entrambi dei buoni driver. E di solito questo è vero con disprezzo per il sistema operativo. –

+0

No dalla mia esperienza I driver OpenGL su Windows solitamente succhiano contro D3D (quando si tratta di funzionalità e talvolta di prestazioni al momento del commento). L'unico caso non è vero è Nvidia. Si noti inoltre che il post è del 2011 e rappresenta le GPU per quel tempo e oltre. Nel contesto di ora le cose potrebbero essere cambiate. – zezba9000