Renderuję tę samą scenę przy użyciu tego samego kodu C++, raz na macierzysty OpenGL w oknach i raz używając Emscriptena do WebGL. Wszystko na scenie wygląda dokładnie tak samo, z wyjątkiem sytuacji, gdy renderuję coś za pomocą alpha! = 1.0. Różnica wygląda następująco: Różnica renderowania alfa między OpenGL a WebGL
Niebieska kostka kolor jest (0.0, 0.0, 1.0, 0.5)
Moduł cieniujący używany do renderowania kostkę robi nic oprócz narysować kolor.
Po prawej stronie wygląda on tak, jak w przypadku OpenGL i jest oczekiwanym wynikiem, po prostu niebieski z półprzezroczystością. Po lewej widać jak wygląda z Emscripten + WebGL. Wygląda na to kolor, który jest renderowany jest rzeczywiście (0.5, 0.5, 1.0, 0.5)
Funkcja mieszanka używam to średnia:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Czy jest jakaś różnica w porównaniu z alfa w WebGL? Co może spowodować to?
... zamknąć jako nietypowy? proszę wyjaśnić – shoosh
Czy to możliwe, że jest to problem z premikatem wstępnym i niepochodzącym z premii wstępnej? –
@ WacławJasper Pomyślałem o tym, ale naprawdę nie widzę, jak ... premikulowanie alfy sprawiłoby, że byłoby ciemniej, nie jaśniej, nie? – shoosh