Funzionalità mancanti di WebGL e OpenGL ES


10

Ho iniziato a utilizzare WebGL e sono contento di quanto sia facile sfruttare la mia esperienza OpenGL (e per estensione OpenGL ES). Tuttavia, la mia comprensione è la seguente:

  • OpenGL ES è un sottoinsieme di OpenGL
  • WebGL è un sottoinsieme di OpenGL ES

È corretto per entrambi i casi? In tal caso, ci sono risorse per i dettagli delle funzioni mancanti?

Ad esempio, una notevole caratteristica mancante è glPushMatrixe glPopMatrix. Non li vedo in WebGL, ma nelle mie ricerche non riesco nemmeno a trovarli a cui si fa riferimento nel materiale OpenGL ES.

Risposte:


9

Il wiki di WebGL conteneva una sezione nella sua gerarchia di FAQ per " Differenze di WebGL e OpenGL " che sembra concentrarsi sulle differenze di WebGL rispetto alle implementazioni OpenGL "desktop" e, purtroppo, non è molto dettagliato (principalmente si tratta di comportamento, non dell'API) .

In caso contrario, potrebbe essere necessario confrontare manualmente la più recente bozza WebGL con le specifiche OpenGL ES o OpenGL .


9

Hai controllato l'ultima bozza WebGL?

Secondo la bozza in caso di contraddizione, la specifica OpenGL ES 2.0 è l'autorità finale.

Il capitolo 6 illustra le differenze tra OpenGL ES 2.0 e WebGL.

http://www.khronos.org/registry/webgl/specs/latest/


Hai avuto una buona risposta, che ho votato a favore, ma hai accettato l'altra risposta perché indicava altre risorse da verificare. Grazie per l'aiuto.
Chris Smith,


0

Un modo per vederlo è WebGL è OpenGL ES 2.0 e OpenGL ES 2.0 è OpenGL con tutta l'innesto legacy rimosso.

Dal momento che shaders sono state aggiunte tutte le eredità funzione fissa gasdotto glPushMatrix, glLight, glVertexecc tutto fatto alcun senso per mantenere intorno.

Quindi quelle funzionalità "mancanti" o "deprecate" correttamente e correttamente?

Quali caratteristiche specifiche stai cercando?

WebGL / OpenGL ES 2.0 sono shader di vertici e frammenti di base. C'è un supporto limitato per le trame non power-of-2 e solo pochi formati di trame (non un limite è il 99% di tutte le trame sono RGB8 o RGBA8). Il supporto per le texture in virgola mobile è facoltativo, ma la maggior parte dei dispositivi le supporta. Tuttavia, il supporto per il rendering in trame a virgola mobile è più raro. Pochi dispositivi mobili supportano il rendering in una trama a virgola mobile.

WebGL2 (appena spedito) e OpenGL ES 3.0 hanno aggiunto una tonnellata di nuovi formati di trame tra cui trame basate su numeri interi e trame 3D. Ha rimosso i limiti di trama non di potenza di 2. Ha aggiunto il feedback di trasformazione (la possibilità per uno shader di vertici di scrivere su un buffer). Ha anche aggiunto query di occlusione. Gli oggetti array di vertici sono standard (erano opzionali in WebGL / ES 3.0). C'è un sacco di altre funzionalità minori.

ES 3.1 (e probabilmente la prossima versione di WebGL) aggiunge shader di calcolo (la possibilità per uno shader di frammenti di eseguire scritture ad accesso casuale). Gli shader di frammenti potevano solo scrivere sul frammento / pixel richiesto al momento, mentre gli shader di calcolo e scrivono dove vogliono.

Quali altre funzionalità volevi usare?

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.