Esiste un buon tutorial che mostra la differenza tra OpenGL 1. * e 2. *?
Sarebbe molto utile sapere quali funzioni dovrei non essere chiamando (come glBegin (), suppongo).
Esiste un buon tutorial che mostra la differenza tra OpenGL 1. * e 2. *?
Sarebbe molto utile sapere quali funzioni dovrei non essere chiamando (come glBegin (), suppongo).
Risposte:
La pagina iniziale di OpenGL.org ha una panoramica, con molti collegamenti a vari tutorial.
In breve, OpenGL 2.0 vive tra la funzione fissa (1.x) e il mondo completamente programmabile (2.x +); puoi comunque usare tutto ciò che OpenGL 1.x ha, aggiungendo shader. Andando avanti (3.x +), tutti i tipi di vecchi sistemi a funzione fissa iniziano a diventare deprecati, quindi potrebbe essere meglio avere un inizio pulito invece di mescolare entrambi i mondi.
Sono anche sorpreso che questo non sia stato chiesto prima ... o almeno non sono riuscito a trovarlo in una rapida ricerca.
Le versioni OpenGL, nel complesso, non sono come le versioni di Direct3D. Il tuo vecchio codice funziona ancora con le nuove versioni (con una sola eccezione). Pertanto, OpenGL v1.4 funzionerà perfettamente con OpenGL 2.1. Le versioni OpenGL sono aggiunte, non sottrazioni.
OpenGL 2.0 e 2.1 aggiungono shader, nel linguaggio di ombreggiatura OpenGL. Aggiungono anche molte altre funzionalità, come trame a virgola mobile, trame non di potenza di due e così via. L'elenco completo è disponibile nella specifica OpenGL 2.1 stessa. Guarda le sezioni "Versione"; ti diranno cosa è cambiato dalla versione precedente.
L'unica eccezione alla regola relativa alle modifiche all'API è OpenGL 3.1 (sì, 3.1, non 3.0). In OpenGL 3.0, un certo numero di API sono state designate come "obsolete". Ciò significa che l'ARB, il comitato responsabile di OpenGL, potrebbe rimuovere queste funzioni dalle versioni successive. Questa rimozione è avvenuta in OpenGL 3.1. La specifica 3.0 contiene un grande elenco di elementi obsoleti e la specifica 3.1 viene ridotta di conseguenza.
Nota che non devi preoccuparti (almeno su Windows e Linux. MacOSX è diverso). È possibile eseguire correttamente in modalità " compatibilità ", in cui tutte le funzionalità rimosse in precedenza restituiscono. Le implementazioni di OpenGL non devono supportare contesti di compatibilità (e Mac OS X Lion no. Supporta core 2.1 o 3.2, su richiesta), ma tutti lo fanno ancora. Solo per compatibilità con le versioni precedenti di applicazioni precedenti.
Credo che ci siano tutorial per opengl 1.xe 2.x, ma molto probabilmente non ci saranno tutorial che mostrano come sono diversi per caratteristiche o facilità d'uso ecc.
Potrebbe essere meglio cercare tutorial per la specifica versione di Opengl, trovare tutorial simili e confrontarli da soli.