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

Blend that adding color instead of just replacing?

本文关键字:不仅仅是 替换 添加 颜色 混合      更新时间:2023-10-16

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

例如,我的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中有没有办法完成它?

是的,有。它被称为GL_FUNC_ADD。除了透明度之外,还有一些其他有用的混合功能。

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

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

假设您已经正确初始化了 glew,当 OpenGL 调用抛出异常说您正在尝试调用0x00000000这意味着该 API 在您的 OpenGL 版本中不可用,因此请确保您使用的是适用于您的 OpenGL 版本的正确函数。

相关文章: