设计中国 网站首页   新闻资讯   Photoshop   在线教程   艺术设计   图书   资源下载   会员俱乐部   博客   交流论坛
发新话题
打印

[原创] <008的混合模式深入理解>

其他类如变暗和叠加模式组中的完整不透明度也是这样计算,这里就不想过多叙述了.
这个色阶调节器的作用非常大,可以适当的变形后推出如色彩平衡,色相饱和度中的明度等公式易如反掌,不过论坛里对理论关心的人实在太少,所以这些问题就不再一一叙述了.

TOP

上面的公式看着吃力啊

TOP

引用:
原帖由 国产008 于 2006-6-14 04:19 发表
其他类如变暗和叠加模式组中的完整不透明度也是这样计算,这里就不想过多叙述了.
这个色阶调节器的作用非常大,可以适当的变形后推出如色彩平衡,色相饱和度中的明度等公式易如反掌,不过论坛里对理论关心的人实在太 ...
要说声:谢谢国产008君的精辟论述!

不是大家不感兴趣,不关心理论。我想多说几句:
1.理论本比较枯燥。要理解理论,需要有关的知识,特别本帖,数学知识交代较少(我的理解,数学可能不深,但变量之间的关系交代不细,使学习者,理解起来,感觉数字与图形联系起来,有较大的困难。)

2.图的制作过程,缺少交代。比如,那些类似曲线的图是怎么做出来的?我一直以来,也很感困惑。

3.建议008君,请能对数学的推导,有代表性地做个演绎。对操作的过程,也有代表性地做个说明。这样大家理解和认识起来,会容易一些。(那个模式控制器的做法,就交代得比较清楚)

4.来这里学习的人,平时应用数学较少,对数字与图象之间的联系的敏感性就比较迟钝,所以还请多多理解!

5.盼望着你能对这些基础的东西,帮大家打打基础!

6.很想你对“色阶调节器”有一个图文并茂的详细说明和介绍。敬候着!!

代表大家向你表示感谢了!!!





.

TOP

太深奥了,收藏起来慢慢看!

TOP

引用:
原帖由 sunshijiu 于 2006-6-14 12:57 发表


要说声:谢谢国产008君的精辟论述!

不是大家不感兴趣,不关心理论。我想多说几句:
1.理论本比较枯燥。要理解理论,需要有关的知识,特别本帖,数学知识交代较少(我的理解,数学可能不深,但变量之间的 ...
比如,类似曲线的图是怎么做出来的?我做得很累哟!
附件: 您所在的用户组无法下载或查看附件

TOP

你做得没错啊,图形和对应层都完全给出来了,也讲述了制作方法,再说不能做的话那神仙也没办法。

TOP

好文章,需要细心研究

TOP

引用:
原帖由 国产008 于 2006-6-14 04:15 发表
以前总是认为不透明度的计算公式就是CP+A(1-P),后来偶然发现了这样一个奇怪的折线
图为颜色减淡的不透明度曲线(A为渐变层,B为混合层),这个折线象什么?叠加!
可以看出,这是一个折线,由这个折线我们可以认为,以前 ...
这个,你多虑了。透明度的公式是ka+(1-k)b是毫无疑问的。
至于你这个帖子里困惑,其实这早就有结论了,只是你没弄清计算的过程。
计算的步骤是这样的,
第一步,计算合成的结果图层f(a,b)。采用线性减淡的方式,(注意这个结果是把不透明度当100%看待得到的,也就是所不考虑透明度)这里得到了结果是255。

第二步,计算透明度,这里采用的两个合成源是下面的图层和我们的第一步中得到的那个结果。也就是用255*0.65+130*(1-0.65)=211。也就是说,采用的是合成结果和下面的图像进行透明度计算,而不是采用本图层的本身。
计算结果=k* f(a,b) + (1-k)*a;     (假设a为下面的图层,b为上面的图层,f(a,b)是不考虑透明度的合成结果。
其他任何混合模式都是这样的。

我以前也发过写透明度的帖子和言论了,透明度是从最底层背景开始,逐层向上合成的。假如有个图层被隐藏,那么显然这个图层不会参与合成计算。相应的操作源会选取下一个。


比如4个图层,从下而上,A1,A2,A3,A4,对应的“不透明度”为100,k2,k3,k4
那么结果就应该是
r1=k2*A2+(1-k2)*A1;
r2=k3*A3+(1-k3)*r1;
r3=k4*A4+(1-k4)*r2;

r3就是我们从A4层开始向下看到的结果图了。那么r2呢,就是我们从A3图层开始向下看看到的结果图。
写成一个公式就是:
r3=k4*A4+(1-k4)(k3*A3+(1-k3)*(k2*A2+(1-k2)*A1)));

即r3 = k4*A4 + (1-k4)*k3*A3 + (1-k4)(1-k3)k2*A2 + (1-k4)(1-k3)(1-k2)*A1;

现在假如,我们把A3层隐藏了,就是点掉了那个小眼睛,
这时,计算过程变成这样了,
r1=k2*A2+(1-k2)*A1;   第一步不变,但是到第二步被跳过,因为A3是隐藏的。
r3=k4*A4+(1-k4)*r1;   这就是我们从A4层开始向下看看到的结果。比前面那个省略了一步。
写成一个公式就是:
r3=k4*A4+ (1-k4)*k2*A2+ (1-k4)*(1-k2)*A1

[ 本帖最后由 hoodlum1980 于 2006-6-18 02:51 编辑 ]

TOP

引用:
原贴由hoodlum1980发表:



QUOTE:
原帖由 国产008 于 2006-6-14 04:15 发表
以前总是认为不透明度的计算公
对,我忘记了一个高光(暗调)缢出的条件了,大于255以255计算,实际上也确定了两个斜率,有机会你研究研究背景层不透明度不为100%的计算方式

TOP

这副图正是说明了透明度合成时的两个源在结果中的线性比例关系。
我稍微做了加工。我添加了y=x曲线。也就是对角线。这个表示的是下面的图层中的数据,同时我们看到结果曲线,透明度合成后的结果曲线 线性的介于不考虑透明度的合成结果曲线(最上方)和下面图层的数据之间。如果我们把黑色箭头表示的长度定义为1的话,那么蓝色箭头的长度就是不透明度p,当p=100%时,可以想见,透明度结果曲线完全和合成结果曲线重合。当p=0,结果曲线就和下层数据y=x曲线完全重合。
附件: 您所在的用户组无法下载或查看附件

TOP

是这样,所以那个帖我没删,顺便也可以把填充不透明度的关系帖出来了,可以看出,两者不同的区别正是改变截点的输出色阶和输入色阶,这也解释了为什么只有在颜色加深等模式即出现了镒出色阶两者不同的原因。

TOP

引用:
原帖由 hoodlum1980 于 2006-6-18 02:46 发表


这个,你多虑了。透明度的公式是ka+(1-k)b是毫无疑问的。
至于你这个帖子里困惑,其实这早就有结论了,只是你没弄清计算的过程。
计算的步骤是这样的,
第一步,计算合成的结果图层f(a,b)。采用线性减淡的 ...
透明度的公式有笔误。







.

TOP

引用:
原帖由 马甲兄 于 2006-6-18 02:58 发表


对,我忘记了一个高光(暗调)缢出的条件了,大于255以255计算,实际上也确定了两个斜率,有机会你研究研究背景层不透明度不为100%的计算方式
最近我有很重的编码任务,也没什么时间玩photoshop了,所以这个论坛我都很久没来看了。

这个我就不太明白了。按我的理解吧,只要输出图像,至少背景图层是100%不透明度的。比如bmp格式的图像吧,(别的格式我不太清除。),一旦输出成一个图像了,在内存,在硬盘文件上,都是每个象素存着RGB三个值,在这里就没有什么透明度的概念了。在ps里面你能看到几个不同图层不同透明度混合成的图像,就好比一个颜料桶,从这个图层里面倒20%,从另一个图层倒进去80%,这就是看到的结果颜色了。但是输出成bmp以后,就是单单的一副图片,在数据角度上看,那就不再有图层的概念,当然也没透明度概念了。所以输出图像时,感觉逻辑上至少把一个象素填满成100%,当然了,它只是一个数,就算你应用了一个透明度,但是因为缺乏另一个源导致实际没填满100%,在结果上不会出问题,只是你得结果得上边界值被缩小了而已,也就是说,这样得结果肯定导致图像变暗。因为你给它得亮度打折扣了。所以我想逻辑上应该保证至少最下面得有一个100%不透明得图层。当然了,如果你输出透明图像,实际上透明得部分是用一个特定颜色填充掉得,在绘制到屏幕时,这个特定颜色被指定为透明色,这样输出到屏幕时,透明色填充得部分不会影响屏幕原来得颜色,这样图像就透明了。在很多程序界面上得特殊形状得界面或者图案,实际上都是这样做得。

TOP

引用:
原贴由sunshijiu发表:



QUOTE:
原帖由 hoodlum1980 于 2006-6-18 02:46 发表


这个,你
啊?错了吗,没吧。发现,论坛最近多了新功能啊。

TOP

引用:
原帖由 hoodlum1980 于 2006-6-18 03:43 发表


最近我有很重的编码任务,也没什么时间玩photoshop了,所以这个论坛我都很久没来看了。

这个我就不太明白了。按我的理解吧,只要输出图像,至少背景图层是100%不透明度的。比如bmp格式的图像吧,(别的格 ...
呵呵,我明白你的意思,不要说是BMP格式,只要输出了,不管是输出在纸上还是输出在屏幕上,结果图象都不存在不透明这个概念,最后的背景(纸张颜色或者屏幕底色都是100%的不透明度)。所以这个的实用价值太小,只是作为一个附带产品可以研究研究,目的不是为了得到结果,而是看看能不能得到PS算法里的一些更有意思的东西。
     你还不睡看球吗?哈哈,买意大利赢还是买米国赢

TOP

对混合模式的探讨,本贴或许是最成功的.
本贴在后面的过程中,或许是因为数学遗忘的缘故,会让很多人理解起来颇感吃力.这也会使很多人对理论探讨方面望而却步,不能起到共鸣的效果.只有少数人能和LZ产生共鸣的话,那么就会失去贴子的通俗性,也不会变成LZ所期望的能产生百空争鸣的带来理论突破的愿景.
所以建议LZ能用更通俗易懂逻辑严密的语句系统完整地把整个过程再详述一遍,当然这会造成时间的花费,不过能让更多人保存起来将是对LZ最大的奖赏.

TOP

引用:
原帖由 hoodlum1980 于 2006-6-18 03:47 发表

啊?错了吗,没吧。发现,论坛最近多了新功能啊。
你的:“透明度的公式是ka+(1-k)b是毫无疑问的” 笔误了!

应该是:kr=ka+(1-ka)kb






.

TOP

这是我在前面链接得帖子里面看到得一个回复,不知道是不是这个人自己写的,我给他翻译解释一下。把我的话放在引号里面。

Bepro 发表于 2003-12-10 17:34
[Overlay]
Formula:
f(a,b) = 2ab (for a < &frac12
1 - 2 * (1 - a) * (1 - b) (else)

“这里的a,b都是double型的,即位于[0,1)之间,在ps中我们看到的数据一般是[0,255]区间的INT8表示的,除以128,在这里对应的就是除以0.5,不过考虑到效率,通常是避免使用浮点除法的,因为浮点除法的计算速度是最慢的,一般都会转换为浮点乘法,在这里写成乘以2。”


Disadvantage:
There is a separate formula for bright and for dark base colors, so there is a discontinuance for a = ½ (diagram 1 can be sparated into two parts).

“这个算法得缺点:
在加亮,变暗基色时,是分别用两个公式计算得。(分段函数),所以在a=0.5(即128)处有一个不连续点。(即,在两段曲线得连接点处不可导。)”


Code:
if a < 128 then
result := (a*b) SHR 7

“SHR 是汇编中的逻辑右移指令,即c++中的">>"操作符。
SHR 7指向右移动7位,即相当于除以2的7次方,即相当于a*b/128.”

else
result := 255 - ((255-a) * (255-b) SHR 7);

[ 本帖最后由 hoodlum1980 于 2006-6-18 11:56 编辑 ]

TOP

引用:
原帖由 南阳卧龙 于 2006-6-18 10:11 发表
对混合模式的探讨,本贴或许是最成功的.
本贴在后面的过程中,或许是因为数学遗忘的缘故,会让很多人理解起来颇感吃力.这也会使很多人对理论探讨方面望而却步,不能起到共鸣的效果.只有少数人能和LZ产生共鸣的话,那么 ...
这个恐怕就很难办到了,说实在的,这帖里的数学最多是高中知识,关于高数的运用也仅有一个导数而已,如果真是非用高数解决不可的问题那我是根本没办法的,毕竟我干的不是数学专业也不是编程专业,仅是以前在中学的时候对这门学科有点兴趣记忆尚存而已.
    这帖为什么把曲线图片给出来,就是为了易懂,在变暗和变亮模式组中,用色阶的算发可以直接一步性的得出结论,在叠加组模式中,采用坐标平移和缩放的思维也可以得出结论,都是很直观的,除了那个柔光以外.在不透明度和填充不透明度的做法上,也可以运用那个图自己推导出结论来,如果需要,有时间我把这两个公式的推导过程补充上去.
    数学遗忘了,又怎能用严密的语言来描述这个问题?这本身就是一个矛盾,如果真要用编程那样的严密逻辑语言来叙述问题的话,那看懂的人就更少了.学PS理论本声不是一件坏事,但得有度,否则就是本末倒置了,在一般做图的时候,谁会考虑公式,至少我不会,最多考虑一下其亮调,中间调和暗调和几个特殊点的大致走向罢了,如真要搞到图形学编程那样一个严密高度.....我相信这些对真正搞图形图象学的人来说,仅是基础或者说是入门知识.我们在学习过程中,最重要的不是结果也不是方法,而是思维方式.
    很不好意思对你说了这么多,望理解.关于RGB模式来说,综合前人所发的一些帖子,基本上能得出大部分的运算原理了,还剩下如下几个:转灰度的运算法则,可大致认为是线性变化,但在某个很小的区间内是非线性的,这个曲线很怪异,暂时还没有什么结果.饱和度在调节工具里的定义,主要针对与色相饱和度和可选颜色滑块以及层模式中的的运算方法,其明度曲线类似于强光,这个倒很容易.背景层不为100%时混合模式的运算,这个本身意义很小,不过我有一个感觉,对其可以更一步了解到不透明度和灰度之间的关系,这才是其根本意义所在.PS里,至少在RGB里的一切东西都是基于灰度的.大致就是这么多了.

TOP

谢谢楼主的置评.
本贴看来只能象前面几位回贴之人所说:只能慢慢品味了.本身对理论性的东东,必须一边动手跟做,一边仔细思考才能融会贯通.因此楼主的推断过程,将会决定别人能否真正理解透彻,真正学有所长.

TOP

发新话题