Sto visualizzando la stessa scena utilizzando lo stesso esatto codice C++, una volta in OpenGL nativa su Windows e una volta utilizzando Emscripten in WebGL. Tutto nella scena sembra esattamente lo stesso, tranne quando eseguo il rendering di qualcosa con alpha! = 1.0. La differenza è simile al seguente: Differenza di rendering alfa tra OpenGL e WebGL
Il colore cubo blu è (0.0, 0.0, 1.0, 0.5)
Lo shader utilizzati per il rendering del cubo non fa nulla se non richiamare il colore.
Sulla destra è come appare con OpenGL ed è il risultato previsto, solo blu con mezza trasparenza. A sinistra è come appare con Emscripten + WebGL. Sembra che il colore che è reso in realtà è (0.5, 0.5, 1.0, 0.5)
La funzione miscela che uso è lo standard:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
C'è una sorta di differenza con alfa WebGL? Cosa può causare che ciò accada?
... chiudere come off-topic? per favore spiega – shoosh
E 'possibile che sia un problema alfa premoltiplicato vs non premoltiplicato? –
@ WacławJasper Ci ho pensato, ma davvero non vedo come ... premuscultare l'alfa lo avrebbe reso più scuro, non più luminoso, no? – shoosh