使用OpenGLES 1.1(目前没有选择)。目标操作系统是Android。
渲染到主帧缓冲区时,以及渲染到纹理时,我有一些不一致。
当我渲染到普通屏幕时,一切都很好。当我渲染到纹理时,无论alpha是半透明的,我的图形周围都会出现黑色边缘。
这是我的助手功能:
void RenderNormal()
{
if (!gIsRenderToTexture)
{
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glBlendEquationOES(GL_FUNC_ADD_OES);
}
else
{
glBlendFuncSeparateOES(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA,GL_ONE,GL_ONE_MINUS_SRC_ALPHA);
glBlendEquationSeparateOES(GL_FUNC_ADD_OES,GL_FUNC_ADD_OES);
}
}
void RenderAdditive()
{
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
}
void RenderMultiply()
{
glBlendFunc(GL_ZERO, GL_SRC_COLOR);
}
所以,有些数据:
我正在寻找一种方法来对这三个函数进行平方,这样它们就可以使用渲染到纹理,并渲染到普通的ol'屏幕。你能帮忙吗?
答案 0 :(得分:0)
好的,一天的工作和研究,我终于弄明白,在目标设备上,OES不受支持。所以说,任何有这个问题的人...... Kindle Fire和很多旧版的平板电脑都不支持glBlendFuncSeparateOES或glBlendEquationOES,它们将无法正常失败。