无法通过混合改变颜色

时间:2014-07-22 17:15:21

标签: java opengl lwjgl alphablending blending

我是OpenGL的新手,我对混合有点困惑。我正在使用java和lwjgl。

我想要的结果是一组带有alpha通道的不同纹理。我已经这样做了,我没有问题。但后来我想用GL_POINTS添加点,无论我的glColor3f参数是什么,我总是得到黑点。我认为这可能是一个混合问题。

对于纹理,我使用glEnable(GL_BLEND)然后使用glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)。正如我所说,它运作良好。

对于我使用glBlendFunc(GL_ONE_MINUS_SRC_COLOR,GL_SRC_COLOR)的点。

public void drawPoint() {

  ...

  GL11.glColor3f(1, 0, 0);

  GL11.glBlendFunc(GL11.GL_ONE_MINUS_SRC_COLOR, GL11.GL_SRC_COLOR);

  GL11.glPointSize(3.0f);

  GL11.glBegin(GL11.GL_POINTS);

    GL11.glVertex2f(x, y);

  GL11.glEnd();

  GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
}

我希望在(x,y)中有一个大小为3的红点,但我在(x,y)中得到一个大小为3的黑点。

这是一个混合问题?如果是这样,我该如何进行混合呢?

提前致谢!

0 个答案:

没有答案
相关问题