OpenGL 中的预乘 alpha 和多重采样

问题描述

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

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

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

解决方法

多样本解析 blit 无法执行预乘法。在从纹理读取的过程中,您必须预先乘以纹理的像素。