OpenGL 中的预乘 alpha 和多重采样

Premultiplied alpha and multisampling in OpenGL

我正在将一些三角形渲染成多重采样纹理。然后将该纹理 blit 为普通纹理,并在屏幕上绘制一个带纹理的四边形。

我需要最终纹理具有预乘 alpha。有没有办法告诉 OpenGL 自动预乘多采样纹理中的半透明像素(或在 blitting 时)?

或者唯一的方法是使用额外的着色器通道手动执行乘法?

多样本解析 blit 无法执行预乘。您将不得不在从纹理读取的过程中预乘纹理的像素。