同じシーンを同じ正確なC++コードでレンダリングしています.WindowsではネイティブOpenGLに、EmscriptenからWebGLを使用しています。シーン内のすべては、アルファ!= 1.0で何かをレンダリングしている場合を除いて、まったく同じように見えます。違いは次のようになります。 OpenGLとWebGLのアルファレンダリングの違い
青キューブカラーキューブを描画するために使用されたシェーダが色を描く除いて何もしない(0.0, 0.0, 1.0, 0.5)
です。
右はOpenGLでどのように見えているのか、期待される結果です。半透明の半透明です。左側はEmscripten + WebGLの外観です。これは、レンダリングされる色は、実際にあるように見える(0.5, 0.5, 1.0, 0.5)
私が使用したブレンド機能が標準である
:WebGLのアルファとの違いのいくつかの種類が
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
ありますか?おそらくこれが起こる原因は何ですか?
...オフトピックとして閉じますか?説明してください – shoosh
それは事前に乗算されたものと非事前乗算されたアルファの問題の可能性はありますか? –
@WacławJasper私はそれについて考えましたが、実際にはどのように...アルファを事前に乗せると暗くなっていましたか、明るくなっていませんでしたか? – shoosh