- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
OpenGL 的 glBlendFunc 中有没有办法放大目标 RGB? (即(10,50,5)到(20,100,10)
看来你唯一能做的就是添加源 rgb(乘以 <1 的一些因素)
最佳答案
如果您想将此混合函数用于所有绘制操作/所有对象(当然还有一个初始非零值),您可以做的是按指数方式解释颜色。想象一下,写入颜色缓冲区的是某个底数的指数,例如2,所以将加到指数实际上将乘以 2 的幂。
然后,如果您还没有这样做,则需要引入一个后处理步骤。在那里您读取颜色值并取 2 的颜色次方,这将为您提供最终颜色。
当然,初始值必须是对数。
但是,如果您只想为一些 绘制操作增加颜色(我希望只有场景中的最后一个),您必须进一步拆分该过程:首先绘制“正常”内容,其中你使用正常的颜色混合。然后将颜色转换为对数标度(您可以为此使用单独的纹理),将其用于下一个应该乘以颜色的绘制操作(但您告诉 OpenGL 添加颜色),然后通过获取转换回线性标度电源。
当然你也可以使用e作为底数,在这种情况下你使用自然对数和exp函数。
关于OpenGL 的 glBlendFunc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15726017/
OpenGL 的 glBlendFunc 中有没有办法放大目标 RGB? (即(10,50,5)到(20,100,10) 看来你唯一能做的就是添加源 rgb(乘以 <1 的一些因素) 最佳答案 如果您
我需要保留当前的 GlBlendFunc 以便在我做一些工作后可以恢复它。似乎这不是可以用 GLPushAttrib 保存的属性之一,还有其他类似的方法可以用来保存状态吗? 最佳答案 glGet与
我有一个非常简单的着色器(只需将背景方块设置为绿色),这非常有效。 我最近添加了一些应用了纹理的四边形。这个纹理有一些 alpha 值,所以我用它来称呼它: glEnable (GL_BLEN
我希望我的线条用负色绘制(从线条下方的屏幕上获取),我只是不明白混合是如何工作的,看了文档等,测试了 50 种组合等等。开始认为这根本不可能...... 谁能给出这两个值? 最佳答案 画一条白线并使用
我正在尝试通过片段着色器执行我自己的自定义 glBlendFunc,但是,我的解决方案比原生 glBlendFunc 慢很多,即使它们执行精确的混合功能也是如此。 我想知道是否有人对如何以更有效的方式
我在 OpenGl 中创建了一个运行良好的粒子系统。当我想要获得火焰或光束或其他东西的燃烧效果时(系统有点“发光”并将所有颜色融合在一起)我使用 OpenGL 调用此方法。 glBlendFunc(G
我正在使用 glBindFragDataLocationIndexed() 并在片段着色器中写入两种颜色。以下是我的代码: glBindFragDataLocationIndexed(shader_d
我应该使用什么 glBlendFunc 来确保我的绘图的不透明度始终相同?当我使用 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) 并在彼此之上绘制
在尝试了 glBlendFunc 的各种组合后,我注意到大多数组合对我的手机 (HTC Desire) 没有任何影响,而它们在模拟器中工作得很好。在手机上,只有0+1、1+0、1+1有任何明显的效果,
我正在尝试使用以下方法渲染一些透明对象: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 但是,我没有得到我想要的结果。 我画了一个完全不透明的正
我想知道 glBlendFunc 是如何工作的。例如,我有 2 个 gl 纹理,alpha 在 tex1 上,我想在我的最终图像中有 alpha。 tex1 的颜色,我希望 tex2 的颜色。 最佳答
在 OpenGL 中,为了获得适当的透明度效果,我应该使用 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)但是使用该混合函数 glClearColo
我正在尝试渲染方形边框(可变厚度,因此线条不起作用)。我在想 4 个四边形就可以了(所有的尺寸都一样,只是每边旋转和平移)。然后我想,应该用 2 个四边形来做——画一个然后在中间画一个小的。然而,我实
标题看起来有点神秘,但我无法在那里真正解释我想做什么,所以我画了一张图来形象化我的问题: 黑色部分是透明的(又名 alpha = 0)。我在帧缓冲区中有蓝色对象(左),我想在其上渲染白色位图(中),使
编辑:更改片段着色器,以便每次运行只能有一个光源解决了我的第一个问题。我的第二个问题仍然存在。 在此先感谢您提供的任何帮助。我已经为我的LWJGL渲染引擎开发了一个延迟着色管道,现在已经有几个星期了。
我将 GLKit 用于 iPad 应用程序。使用此代码,我设置了混合: glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_A
在我的程序中,我想在带纹理的背景上绘制一个正方形(具有不同的不透明度,为了论证起见,可以说是红色)。然而,根据背景,正方形显示出错误的颜色。当 alpha=1.0f(不透明)时,正方形应显示为红色,在
我正在绘制非纹理三角形,其 alpha 在像素着色器中被明确设置为 0.5 以用于测试目的。我的应用程序基于 Xcode 提供的 Opengl ES 预制件。我没有触及我的 EAGLView 类。 我
我有一个简单的单 channel (8 位)位图,仅包含亮度数据,我想将其与现有帧缓冲区混合就像在 Photoshop 中的屏幕混合模式一样。 因此,源的白色像素 (255) 应产生白色,源的 50%
我不确定 glBlendFunc 是否是解决我问题的好函数,但我认为我会需要它!这是我的问题: 你看到右边那两棵松树的倒影了吗?我想要这样的东西: 然后,我需要一种方法来显示与不透明图像相同的显示,但
我是一名优秀的程序员,十分优秀!