荧光笔混合功能OpenGL

问题描述 投票:0回答:1

什么是用于在OpenGL中实现荧光笔的标准内置混合函数?使用glBlendEquation(GL_MIN);可以产生所需的效果,但也不允许基于不透明度的混合。我使用glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);建模透明度是否可以使用最小混合来解释不透明度?如果没有,最好使用带有帧缓冲对象的自定义着色器吗?

作为参考,这是一个期望结果的示例(不使用OpenGL渲染):

enter image description here

opengl blending
1个回答
0
投票

我最终使用glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);渲染浮点纹理和混合的高亮元素。然后可以使用相同的混合函数将该中间帧缓冲区与默认帧缓冲区0混合。可以通过将片段着色器中最终值的rgb分量乘以-1来模拟减法混合。浮点纹理支持负值,通常可写为帧缓冲区颜色附件。有关更多信息,请参阅Blend negative value into framebuffer 0 opengl

© www.soinside.com 2019 - 2024. All rights reserved.