FBO + Alpha

Версия Minecraft
1.7.10
API
Forge
Здравствуйте всем! Столкнулся с FBO и пост-обработкой.
Почему то с FBO альфа работает как то странно.
Для примера:
Рендерю на экране белый квадрат с альфой 255, в нем черный квадрат с альфой 200.
С FBO почему то черный квадрат с альфой 200 становится прозрачным для фбо майна. В чем может быть проблема?1652799782296.png
 
7,099
324
1,510
Какие настройки смешивания выставляешь перед рендером в фбо?
 
808
3
124
Если ты пытаешься нарендерить полупрозрачные элементы друг поверх друга в FBO, а потом отрендерить текстуру из этого FBO поверх игры, то оно в принципе не будет корректно работать. Операциям блендинга важен порядок: если нарисовать С поверх В поверх А, получится не то же самое, как если нарисовать С поверх В во фреймбуффер, а потом текстуру из этого фреймбуфера поверх А.

Конкретно в твоём кейсе может помочь glBlendFuncSeparate. Но если бы твой белый квадрат тоже был полупрозрачным, то уже нет. Придется что-то костылить, например сначала рисовать в этот фреймбуффер твой будущий фон.
 
808
3
124
1653052338751.png

Дает поставить разные уравнения для блендинга цвета и альфы. Ситуация на скриншоте у ТС происходит, потому что альфа блендится по тому же уравнению, что и цвет, и в итоге результат получается отличным от единицы.
 
808
3
124
Искренне без понятия, как люди это делают нормально.
Можешь внимательно попробовать почитать документацию к glBlendFuncSeparate, возможно его правда хватит для твоей гуишки.
Если у гуишки нет полупрозрачных границ, можешь сделать через stencil: сначала рисуешь в FBO текстуру сцены/игры, при отрисовке элементов гуишки пишешь что-то в stencil, потом при отрисовке текстуры из FBO поверх игры вместо блендинга используешь stencil test.

Мы хотели как-то из интереса сделать цветокоррекцию худа для дальтоников, но забили из-за такой же проблемы с блендингом.
 
Сверху