问题标签 [glblendfunc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opengl - OpenGL 的 glBlendFunc
OpenGL 的 glBlendFunc 中有没有办法放大目标 RGB?(即(10,50,5)到(20,100,10)
看来您唯一能做的就是添加源 rgb(乘以 <1 的一些因素)
opengl - OpenGL - glBlendFunc
我一直试图找到 glBlendFunc 内部工作背后的一些具体数学。
澄清一下,我知道混合方程是:
srcChannels * srcFactor + dstChannels * dstFactor = channelsRendered。
我的问题是,srcChannels、dstChannels 和 channelsRendered 是 3-vector (r,g,b) 还是 4-vector (r,g,b,a)?
由于 (0.2, 0.2, 0.2, 1.0) 和 (1.0, 1.0, 1.0, 0.2) 看起来应该相同,因此这里可能存在歧义。
cocos2d-iphone - Cocos2dx CCRendertexture 和 framebuffer 对象问题。我的新纹理看起来不一样。Alpha 值不正确
我在尝试将 Cocos2Dx 中的 CCRenderTexture 类用于 iPhone 时遇到了一些问题(据我所知,它只是一个 FBO 类)。
我有一个派生自 CCSprite 的类。在其中,我尝试将纹理绘制到 CCrenderTexture,然后将其保存以备后用。但是,我注意到我的新纹理中的 alpha 值似乎已经增强了。我的新纹理看起来比原始纹理更褪色,它似乎只影响 alpha 小于 1.0 的像素。
这是我正在使用的代码:
作为测试,我将上面的代码连续运行了 4 次。每一次,质地似乎都淡化了一点。但我期望它每次看起来都一样。
我采取的下一步是替换ccGLBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
它ccGLBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)
似乎解决了我的问题,因为无论我运行多少次,生成的纹理看起来都是一样的。但是,我还在此纹理上运行自定义片段着色器(着色器未显示,并且在此测试期间未运行)并且它需要ccGLBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
正常工作。
经过一番研究,我尝试ccGLBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
用glBlendFuncSeparate(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA,GL_ONE, GL_SRC_ALPHA)
. 我希望这将保持我的 alpha 水平,同时改变颜色值。不幸的是,这产生了相反的效果,似乎实际上使 alpha 变暗,导致纹理变暗。
这是我的三个测试的图片。这个比基尼底部资产很容易看到效果;)
有人能告诉我我做错了什么以及是什么导致了这些影响吗?是我的BlendFunc
吗?我需要能够CCRenderTexture
连续多次绘制到(或 FBO),并且我不希望对图像产生任何不良影响。我还需要使用我的着色器......所以ccGLBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)
不起作用......
任何帮助表示赞赏!提前致谢!
opengl - 使用多个 blendfunc OpenGL
我想用
和
同时。这可能吗?
opengl - glPoint Alpha 混合问题
我在 alpha 混合 glPoints 时遇到问题。当 glPoint 在背景上时,alpha 混合正常工作,但是当 glPoint 与另一个 glPoint 重叠时,背景颜色可见,而不是底层 glPoint。
我究竟做错了什么?
ios - 现实生活中的油漆 GLBlenFunc
什么 GLBlendFunc 可以解决这个问题?
我目前正在使用:
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
我希望绘画应用程序像真正的绘画一样表现,但似乎当使用较低不透明度的颜色时,它不会在纯白色上绘画。
这是我的例子
我所期待的是,在第 3 步中,即使不透明度为 0.1 而不是 1.0,浅粉色油漆仍会在之前的白色笔触上轻轻绘制
我希望它能够表现其他绘画应用程序。这些示例来自 Photoshop。
opengl-es-2.0 - OpenGL ES 2.0 混合
我将 glBlendFunc 设置为
出于测试目的,我在片段着色器中设置颜色,如下所示
对象不应该是完全透明的吗?如果不是,可能是什么原因?
opengl - glBlendFunc 和帧缓冲区对象
当我绘制到帧缓冲区对象时,Alpha 混合没有按预期工作。具体来说,调用 glBlendFunc 对帧缓冲区中的像素没有影响。我在使用glReadPixels
. 以下调用glBlendFunc*
产生相同的结果:
这是我的绘制代码:
输出(对于 GL_ZERO、GL_ONE 的两个订单):
我显然在使用旧的 GL 代码。以前,上下文创建将版本限制为 1.1。现在版本是 4.4,我请求兼容性配置文件。
这里有什么问题?如何使用 Alpha 混合?
opengl-es - 自定义混合模式
我并没有真正glBlendFunc()
了解该功能及其工作原理。
是否有一种混合模式可以让目标黑色变为黑色,同时覆盖任何其他 dst 颜色?
我有一个包含着色边缘和形状的黑白画布。我想在画布上的任何地方画一个画笔,但不要覆盖边缘,这样一旦图像完全着色,它们就会保持黑色。理想情况下,由于目标边缘周围有一些灰色以保持平滑,灰色阴影将被画笔颜色着色。
谢谢!