2011-09-20 78 views
2

我在lwjgl(java opengl)中制作了一个包含纹理立方体网格的游戏。纹理边缘的颜色精度

我已经修复了纹理坐标在边缘不准确的常见错误,我的坐标是100%准确的。

在场景中移动时,我的鲜红色四边形边缘上的像素在与绿色四边形重叠的情况下仅在很短的时间内闪烁水滴(这恰好是我清晰的颜色)。重叠后面的其他四边形颜色呈绿色。

问题只出在立方体顶部的近侧和远侧。

在你问之前,我的纹理中没有蓝色像素。

我的分/磁过滤器在绿色的重叠处固定了一条棕色线。但我认为这可能是问题的一部分。

我怎样才能让这些像素保持红色,或去绿色?

或者更具体一点,我怎样才能使混合只使用最接近的颜色,而不是做任何结合?

这里是我的PARAMS:

  GL11.glEnable(GL11.GL_TEXTURE_2D); 
     GL11.glEnable(GL11.GL_ALPHA_TEST); 
     GL11.glAlphaFunc(GL11.GL_GREATER, (float) 0.9); 
     GL11.glEnable(GL11.GL_BLEND); 
     GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); 
     GL11.glColor4f(255, 255, 255, 1.0f); 
     GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_MODULATE); 
     GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST); 
     GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST); 
+0

你能发表截图吗? – Thomas

+0

你想使用alpha混合或(布尔)'ALPHA_TEST'吗?这两个选项是互不兼容的。可能不是你的问题;我只是想我会提到它。 – duskwuff

回答

0

哇,解决。从截图看,它实际上是我的眼睛欺骗我与青色幻影,随着屏幕移动和像素估计的变化边界从红色闪烁到白色。长时间盯着红色,闭上眼睛,你会看到青色。我将查找一些反锯齿指南或更改我的滤镜来混合颜色。