我注意到,当我加载纹理时,它可能会改变当前的绘图颜色,具体取决于纹理的颜色.例如在执行之后
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, info.biWidth,
info.biHeight, 0, GL_RGB, GL_UNSIGNED_BYTE,bitmap);
glTexParameterf(GL_TEXTURE_2D,
GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D,
GL_TEXTURE_MAG_FILTER, GL_LINEAR);
Run Code Online (Sandbox Code Playgroud)
绘制到屏幕上的所有连续多边形将具有一种颜色,具体取决于加载的纹理图像.
那是标准吗?我没有发现记录这种行为.
是的,它是如何工作的,记住GL是一个状态机,所以你离开纹理边界(并且可能已启用),所以在绘制时使用第一个像素(假设你没有提供任何纹理坐标)来为原始颜色着色.
要解决此问题,请在不需要纹理时禁用纹理,您可以使用以下方法执行此操作:
glDisable(GL_TEXTURE_2D);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2444 次 |
| 最近记录: |