混合添加颜色而不是仅仅替换?

时间:2012-11-15 21:28:40

标签: c++ opengl

绘制时有没有办法在像素(而不是设置)上添加颜色值?

我的pesudo代码例如:

//DrawPixel( int x, int y, Color color ); - Puts pixel to color buffer with specific place.
DrawPixel( 0, 0, Red );
DrawPixel( 0, 0, Green );

执行此代码后,0,0像素的颜色是Red+Green的结果。 (黄色) 我不只是谈论绘制像素或混合。有没有办法在OpenGL中完成它?

2 个答案:

答案 0 :(得分:1)

是的。它叫做GL_FUNC_ADD。除透明度外,还有一些其他有用的blending functions​

在早期的opengl版本中 Gl.BlendFunc(Gl.SRC_COLOR,Gl.DST_COLOR)可能就是这样做的。

答案 1 :(得分:1)

除了Aki Suihkonen的回答之外,您可能还需要调用glEnable(GL_BLEND)来打开混音。你说它目前正在替换听起来像混合关闭的颜色。

假设你已经正确初始化了glew,当一个OpenGL调用抛出一个异常,说你试图调用0x00000000时,这意味着你的OpenGL版本中没有该API,所以请确保你的版本使用了正确的函数OpenGL。