Ich rendere die gleiche Szene mit dem gleichen genauen C++ - Code, einmal zu nativen OpenGL unter Windows und einmal mit Emscripten zu WebGL. Alles in der Szene sieht genau gleich aus, außer wenn ich etwas mit Alpha! = 1.0 rende. Der Unterschied sieht wie folgt aus: Alpha-Rendering-Unterschied zwischen OpenGL und WebGL
Der blaue Würfel Farbe ist (0.0, 0.0, 1.0, 0.5)
Der Shader zum Rendern Cube verwendet tut nichts, außer der Farbe zu ziehen.
Auf der rechten Seite ist, wie es mit OpenGL aussieht und ist das erwartete Ergebnis, nur blau mit halber Transparenz. Auf der linken Seite ist, wie es mit Emscripten + WebGL aussieht. Es sieht aus wie die Farbe, die tatsächlich erbracht wird, ist (0.5, 0.5, 1.0, 0.5)
Die Vermischungsfunktion verwende ich der Standard ist:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Gibt es irgendeine Art von Unterschied mit Alpha in WebGL? Was kann dazu führen, dass dies geschieht?
... als Off-Topic zu schließen? Bitte erklären Sie uns, – shoosh
Ist es möglich, dass es sich um ein multipliziertes nicht-multipliziertes Alpha-Problem handelt? –
@ WacławJasper Ich dachte darüber nach, aber ich sehe wirklich nicht, wie ... das Multiplizieren des Alphas es dunkler gemacht hätte, nicht heller, nein? – shoosh