OpenGL отложенная прозрачность затенения - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь нарисовать прозрачные текстуры в отложенном затенении. Это макет gBuffer:

_depthComponentTexture = new Texture(_width, _height, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT, GL_NEAREST);        
_worldNormalSpecPower = new Texture(_width, _height, GL_RGBA16F, GL_RGBA, GL_NEAREST);
_albedoSpecularIntensity = new Texture(_width, _height, GL_RGBA8, GL_RGBA, GL_NEAREST);
_3unusedShaderless = new Texture(_width, _height, GL_RGBA16F, GL_RGBA, GL_NEAREST);

При прямом рендеринге простой вызов glEnabeld blend и blendFunc работал, как и ожидалось, но так как я переключился на отложенный, это не так. Нужно ли резервировать альфа-канал в альбедо / диффузной части буфера? Также GL_ONE к GL_ONE отлично работает для накопления света.

Что я пробовал:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
...