Я выполняю ту же сцену, используя тот же самый точный код на C++, один раз на свой собственный 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)
Функция смесь я использую стандарт:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Есть ли какая-то разница с альфа в WebGL? Что может быть причиной этого?
... закрыть как не по теме? объясните, пожалуйста, – shoosh
Возможно ли, что это премультипликативная и не-преуммированная альфа-проблема? –
@ WacławJasper Я думал об этом, но я действительно не понимаю, как ... преждевременная альфа-игра сделала бы его темнее, а не ярче, нет? – shoosh