我将多个符号渲染到背景为完全透明的纹理图集(纹理图谱图像获得alpha通道,RGBA合成图像)。之后,只要符号出现在纹理上,我就可以使用纹理图集绘制所有符号。OpenGL纹理颜色旋转时无法正确显示
问题是,当呈现的符号不旋转,一切都很好。但是,符号颜色在旋转时显示为不正确。
如下图所示:左箭头符号未被正确旋转和渲染。旋转的右侧符号边缘的颜色有所变化。
什么可能导致这种情况?
编辑:
由于@BDL建议,我改变了参数:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
右侧的三角符号是c orrect。
我也试过:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
也不起作用。
我应该改变纹理背景的颜色与符号边界像素颜色相同,然后使用GL_LINEAR作为纹理过滤器选项吗?
检查您的反锯齿工艺 – shan
是什么颜色源图像中的透明像素改变纹理的放大滤波器?黑色?白色? – genpfault
@genpfault黑色 –