Qual è la differenza tra OpenGL 1.xe 2.x?


13

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).


1
Vorrei riformulare la tua domanda. Qual è la differenza tra rendering a funzione fissa e Shader?
EnabrenTane,

3
Questa è una domanda completamente diversa.
Jari Komppa,

Risposte:


11

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.


Non riesco a trovare un tutorial specifico per la versione. (eccetto 3.0)
t123,

C'è molto linkato da quella pagina, sotto "Tutorial e How To Guides", ma fondamentalmente hai una scelta tra OpenGL 1.xe "qualunque altra cosa".
Jari Komppa,

@ tm1rbrt: non troverai tutorial specifici per 2.1, perché tutti i tutorial 1.x validi sono ancora tutorial 2.1 validi. L'unica ragione per cui c'è un'interruzione in 3.x è perché è lì che sono state rimosse le API. Se stai cercando tutorial basati su shader 2.1-era, i tutorial di lighthouse3d sono utili. Tuttavia, dovresti essere informato che l'hardware 3.x è in circolazione dal 2006 e anche ora è incorporato in schede madri e persino CPU. Quindi il futuro non è nel mondo 2.x; i tutorial futuri si concentreranno generalmente su 3.xe versioni successive.
Nicol Bolas,

3

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.


Puoi aggiungere qualcosa su OpenGL 4. *?
Kromster dice che supporta Monica l'

@Krom: non c'è molto da dire. Proprio come andare da 1.xa 2.x, nulla è stato rimosso.
Nicol Bolas,

0

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.


Seriamente, chi continua a votare in modo casuale i miei commenti?
LizardGamer,

Perché i voti negativi qui? Non un'ottima risposta, ma downvotes? Non sono sicuro. La domanda in verità vuole qualcosa di non molto usuale ... Tutorial per mostrare le differenze, questo non è per lo più quello che fa il tutorial ...
Notabene

@LizardGamer Vedo che ti sei unito a gamedev.SE qualche giorno fa, quindi vorrei dire "Benvenuto!". Tuttavia, dovresti davvero leggere le FAQ qui: gamedev.stackexchange.com/faq Questa risposta è un esempio perfetto del tipo di risposta che NON vuoi dare. Cerca di essere più specifico e decisamente più costruttivo con le tue domande e le tue risposte. Le FAQ dovrebbero aiutarti a capire lo scopo di questo sito e il tipo di contenuto che stiamo cercando. In bocca al lupo!
Amplifica il

@notabene questa risposta in realtà non risponde alla domanda. L'unico suggerimento che dà è fondamentalmente "cercare la risposta". Ovviamente, l'OP lo sta già facendo ponendo una domanda qui.
Amplifica91

@ Amplify91 Grazie per l'unico benvenuto che ho ricevuto e ho già letto le FAQ, non trovo come sia un esempio di cosa non chiedere? Inoltre risponde alla domanda, dal momento che non ho visto alcun tutorial relativo al confronto delle versioni di opengl
LizardGamer
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.