在使用子像素渲染(LCD,字形位图格式为 RGB(不是 alpha))时,我正在使用混合函数对从 freetype 库获得的字形进行着色:
我将 RGB 格式的纹理上传到 GPU 并使用以下混合:
glBlendFunc( GL_CONSTANT_COLOR_EXT, GL_ONE_MINUS_SRC_COLOR );
glBlendColor( r, g, b, 1 );
r,g,b 是所需的字形颜色。只要字形都是相同的颜色(我使用的是单个顶点缓冲区),这效果很好。我现在想为每个字形设置不同的颜色,然后,我需要在着色器中指定不同的混合颜色,但我认为这是不可能的。有谁知道如何做到这一点(如果可行的话)?
相关项目可在此处获得
我想在某些时候我找到了“正确”的着色器,但实际上它是错误的(参见问题 48)