混合添加颜色,而不仅仅是替换
Blend that adding color instead of just replacing?
有没有办法在绘制时在像素上添加颜色的值(而不是设置)?
例如,我的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 版本的正确函数。
相关文章:
- 为什么这个案例陈述需要一个"if else"而不仅仅是一个"if"?
- std::find,返回所有找到的值的替代方法,而不仅仅是存在重复的向量的第一个值
- 为什么C++总是显示十六进制内存地址,而不仅仅是整数?
- 为什么我们要做"INT_MAX/10"而不仅仅是INT_MAX?
- 为什么 std::vector 需要 is_trivial 才能按位移动,而不仅仅是is_trivially_copya
- 为什么在这个C++问题中使用const_iterator而不仅仅是迭代器?
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 如果要求比较器是严格的总排序,而不仅仅是严格的弱排序,C++标准算法会更快吗?
- 为什么我们必须在 C++ 中释放数组数组,而不仅仅是整个"matrix"
- 十进制文字不仅仅是LONG_LONG_MAX
- 为什么非放置"新建"和"删除"内置于语言中,而不仅仅是常规函数?
- 使用 fstream 在空格分隔文件中查看下一项(不仅仅是一个字符)的方法
- 这是循环击中两个输出,而不仅仅是我期望的输出
- 在C++中,是否有任何理由生成并立即加入线程,而不仅仅是直接调用函数?
- 如何正确抛出一个需要的不仅仅是构造函数的异常
- 为什么 cppreference 将type_traits xxx_v快捷方式定义为内联 constexpr,而不仅仅是
- C++Qt创建者,我可以评论每一行,而不仅仅是评论选择
- 为什么BOOST.PROGROGROGOTIONS不仅仅是标头
- 使用FP:快速导致错误的VC 结果(不仅仅是不准确)结果 - 这是编译器错误
- 混合添加颜色,而不仅仅是替换