我是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的黑点。
这是一个混合问题?如果是这样,我该如何进行混合呢?
提前致谢!