differenze tra opengl 3 e opengl 4


10

Sto appena iniziando con la programmazione del gioco e voglio iniziare ad imparare l'opengl. Ho trovato un ottimo tutorial da zero per iniziare con opengl 3 e mi chiedo se ci sia una grande differenza tra openGL 3 e openGl 4. O dovrei chiedere, openGL 4 rende openGL 3 obsoleto o posso iniziare con openGL 3 e quindi posso passare a openGL 4?

Risposte:


12

Inizierò questo collegando a una spiegazione di come funzionano le versioni di OpenGL . In breve, OpenGL (generalmente) è retrocompatibile, quindi tutto il codice GL 3 funziona perfettamente con le implementazioni GL 4.

La serie 4.x di versioni OpenGL rappresenta quello che potresti chiamare hardware di classe "Direct3D 11". Espone le funzionalità di quell'hardware. L'hardware D3D10 è rappresentato dalle versioni 3.x di OpenGL. Quindi "passare a openGL 4" significa abbandonare l'hardware inferiore o avere più percorsi di rendering.

Una suddivisione dettagliata delle effettive modifiche della funzione tra 3.3 e 4.2 è disponibile nella specifica 4.2 . Si noti che molte funzioni (separate_shader_objects, shading_language_420pack, texture_storage) non sono limitate all'hardware 4.x; sono modifiche API e puoi accedervi su hardware 3.x tramite estensioni.

La domanda più saliente è questa: cosa mi consente GL 4.x di non poterlo fare con l'hardware 3.x?

La tessellazione è probabilmente la caratteristica più nota. Probabilmente è anche il meno generalmente utile. Questo non vuol dire che è inutile; l'uso corretto della tassellatura può migliorare i dettagli nei modelli. Ma almeno per me, non è proprio la cosa migliore che GL 4 abbia da offrire.

Le subroutine di shader sono un'idea interessante. Questo in sostanza ti consente di riunire dinamicamente diversi frammenti di shader. È possibile associare più o meno una funzione a un punto di associazione specifico in un programma. Le specifiche sono un po 'difficili da seguire, ma sono buone funzionalità.

Direi che il caricamento / archiviazione delle immagini è probabilmente la funzionalità GL 4 più trascurata e tuttavia più potente. Con esso, hai la capacità di implementare la trasparenza indipendente dall'ordine con prestazioni buone quanto l'OIT sta per ottenere. Probabilmente ci sono molti altri usi per caricare / archiviare immagini, ma ci vorranno persone più intelligenti per capirli.

Ci sono alcune probabilità e estremità in GL 4. Roba come supporto a doppia precisione e rendering indiretto. Queste sono più cose in stile GPGPU, quindi probabilmente non saranno molto utili in un gioco.

Ma in generale GL 4 non cambia radicalmente il modo in cui implementate la funzione X da GL 3.


Devo solo dire che hai completamente torto nel dire che il rendering indiretto è "roba in stile GPGPU". È un grande aumento delle prestazioni per qualsiasi renderer che altrimenti effettuerebbe molte chiamate dalla CPU ed è una grande funzionalità per i giochi.
Caffè
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.