混合颜色的色值计算公式

之前为了实现不同颜色液体混合的颜色变化效果,推敲得出一个计算公式。
两种颜色混合后,混色的色值计算,RGB分别用这个公式计算:颜色A-(颜色A-颜色B)*(1-颜色A的百分比)
例如:绿和白混合,绿(192, 229, 112)70%,白(255, 255, 255)30%
R: 192-(192-255)*(1-0.7) = 210.9
G: 229-(229-255)*(1-0.7) = 234.8
B: 112-(112-255)*(1-0.7) = 154.9
四舍五入后得到混合色值:(211, 235, 155)。
经过验证,效果是靠谱的。如果要计算2个以上颜色的混色色值,先计算出其中两个的混色,再和第三个计算,递归
至算完全部
  • 14
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
简单的透明 OpenGL中的绝大多数特效都与某些类型的(色彩)混合有关。混色的定义为,将某个象素的颜色和已绘制在屏幕上与其对应的象素颜色相互结合。至于如何结合这两个颜色则依赖于颜色的alpha通道的分量值,以及/或者所使用的混色函数。Alpha通常是位于颜色值末尾的第4个颜色组成分量。前面这些课我们都是用GL_RGB来指定颜色的三个分量。相应的GL_RGBA可以指定alpha分量的值。更进一步,我们可以使用glColor4f()来代替glColor3f()。 绝大多数人都认为Alpha分量代表材料的透明度。这就是说,alpha值为0.0时所代表的材料是完全透明的。alpha值为1.0时所代表的材料则是完全不透明的。 混色的公式 若您对数学不感冒,而只想看看如何实现透明,请跳过这一节。若您想深入理解(色彩)混合的工作原理,这一节应该适合您吧。『译者注:其实并不难^-^。原文中的公式如下,CKER再唠叨一下吧。其实混合的基本原理是就将要分色的图像各象素的颜色以及背景颜色均按照RGB规则各自分离之后,根据-图像的RGB颜色分量*alpha值+背景的RGB颜色分量*(1-alpha值)-这样一个简单公式来混合之后,最后将混合得到的RGB分量重新合并。』 公式如下: (Rs Sr + Rd Dr, Gs Sg + Gd Dg, Bs Sb + Bd Db, As Sa + Ad Da) OpenGL按照上面的公式计算这两个象素的混色结果。小写的s和r分别代表源象素和目标象素。大写的S和D则是相应的混色因子。这些决定了您如何对这些象素混色。绝大多数情况下,各颜色通道的alpha混色值大小相同,这样对源象素就有 (As, As, As, As),目标象素则有1, 1, 1, 1) - (As, As, As, As)。上面的公式就成了下面的模样: (Rs As + Rd (1 - As), Gs As + Gd (1 - As), Bs As + Bs (1 - As), As As + Ad (1 - As)) 这个公式会生成透明/半透明的效果。 OpenGL中的混色 在OpenGL中实现混色的步骤类似于我们以前提到的OpenGL过程。接着设置公式,并在绘制透明对象时关闭写深度缓存。因为我们想在半透明的图形背后绘制 对象。这不是正确的混色方法,但绝大多数时候这种做法在简单的项目中都工作的很好。 Rui Martins 的补充: 正确的混色过程应该是先绘制全部的场景之后再绘制透明的图形。并且要按照与深度缓存相反的次序来绘制(先画最远的物体)。 考虑对两个多边形(1和2)进行alpha混合,不同的绘制次序会得到不同的结果。(这里假定多边形1离观察者最近,那么正确的过程应该先画多边形2,再画多边形1。正如您再现实中所见到的那样,从这两个<透明的>多边形背后照射来的光线总是先穿过多边形2,再穿过多边形1,最后才到达观察者的眼睛。) 在深度缓存启用时,您应该将透明图形按照深度进行排序,并在全部场景绘制完毕之后再绘制这些透明物体。否则您将得到不正确的结果。我知道某些时候这样做是很令人痛苦的,但这是正确的方法。
Photoshop的颜色混合模式是一种通过计算公式来调整图像颜色的工具。在Photoshop中,每个图层都可以应用不同的颜色混合模式,以改变图层与下方图层的颜色交互效果。 以下是几种常见的颜色混合模式及其计算公式: 1. 正常(Normal)模式:新像素的颜色等于它本身,计算公式为:新像素 = 原始像素。 2. 滤色(Screen)模式:通过增加原始像素的亮度来混合颜色计算公式为:新像素 = 1 - (1 - 原始像素) * (1 - 混合像素)。 3. 叠加(Overlay)模式:根据混合像素的亮度,对比原始像素来调整颜色计算公式为:如果混合像素 > 0.5,新像素 = 1 - (1 - 原始像素) * (1 - 2 * (混合像素 - 0.5)),否则新像素 = 原始像素 * (2 * 混合像素)。 4. 柔光(Soft Light)模式:根据混合像素的亮度,调整原始像素的亮度和对比度,计算公式为:如果混合像素 > 0.5,新像素 = 原始像素 + (2 * (混合像素 - 0.5) - (1 - 原始像素) * (1 - 2 * (混合像素 - 0.5))),否则新像素 = 原始像素 * (1 - (1 - 2 * 混合像素) * (1 - 原始像素))。 5. 差值(Difference)模式:根据混合像素与原始像素的差异,调整颜色计算公式为:新像素 = 绝对值(原始像素 - 混合像素)。 6. 排除(Exclusion)模式:根据混合像素与原始像素的亮度差异,调整颜色计算公式为:新像素 = (原始像素 + 混合像素 - 2 * 原始像素 * 混合像素)。 这些计算公式可以根据图层的不同混合模式进行调整,以达到不同的图像效果。Photoshop的颜色混合模式为用户提供了丰富的颜色调整选项,可以更好地编辑和设计图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值