谈颜色空间
作者:网友整理颜色空间v1.3.0 215.38M / 简体中文
点击下载纳什空间免费安卓版(工作社交app) v2.4.0 手机最新版 55.95M / 简体中文
点击下载音泡空间最新版(社交交友) v2.5.30 免费版 41.61M / 简体中文
点击下载【一】造成这种现象教材有一定责任,但也不能全怪教材。通常教材在讲到 RGB 颜色的阶段,匠术的内容还比较浅显,而 RGB 颜色空间在这时除了讲三基色以外,还没有什么很具体的内容适合继续深入,再要讲下去就是基色通道,但讲解通道还不是时候。于是教材就采取了“偷奸耍滑”的办法,趁着读者对于颜色空间还没有完整的概念,带着你不知不觉中偷偷转向,把 RGB 空间“类比”到 HSB 颜色空间,转来讲述颜色的色相、饱和度和亮度属性。
从教学意义上可以说这个偷换概念的做法是成功的,有效的,在学习的初期用糊弄的办法避开难点,但也让你不知道受到了糊弄,以为一切顺理成章而且严谨周密(其实我们的小学课本、中学课本也都是这么编的)。这是“教学技巧”,无可厚非。但是如果教材能够在完成自己这一阶段后,把真相如实的告诉你,说清楚什么地方避重就轻的采取了愚民政策,并且指出存在问题那就更好了。如果能再对这些问题回过头来加以重新认识和讲述,那真是比好还好,功德圆满了。可惜好事难以成双,或许这种教学方法成了套路,传统教学培养的后代作者本身在这些地方也比较薄弱,所以就习惯性的回避这些难点。此外越难的东西感兴趣的读者越少,也是原因之一。
不过当我们学过了基础理论之后,就有了条件把以前被糊弄的地方搞清楚。当初是不得已,但现在有了适当的基础,如果愿意是不难做到的。那就言归正传从颜色空间说起。
【二】颜色通常用三个相对独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间。而颜色可以由不同的角度,用三个一组的不同属性加以描述,就产生了不同的颜色空间。但被描述的颜色对象本身是客观的,不同颜色空间只是从不同的角度去衡量同一个对象。
颜色空间按照基本结构可以分两大类,基色颜色空间和色、亮分离颜色空间。前者的典型是 RGB,还包括 CMY、CMYK、CIE XYZ 等。后者包括 YCC/YUV、Lab、以及一批“色相类颜色空间”。CIE XYZ 是定义一切颜色空间的基准,很奇妙的是,它即属于基色颜色空间,也属于色、亮分离颜色空间,是贯穿两者的枢纽。我们主要要讨论的是色、亮分离颜色空间中的子类型“色相类颜色空间”,它是把颜色分成一个表亮属性,和两个表色属性,其中有一个表色属性是色相。而色相以外的两个属性可以选用不同的变量来定义,而色相的概念不变,因此就构成一族共同使用色相属性,另加表亮属性和表色属性各一个组成的颜色空间。它们是颜色空间中的一个家族。暂且统称为 HSB 颜色空间(但后面要详细划分)。
因为不同颜色空间描述的相同的客观对象,所以它们之间必然存在数量的相互转换关系,但是需要十分明确,RGB 和 HSV 空间,虽然在教材中狐狸糊涂的把他们纠缠在一起,但它们实质上是概念完全不同的颜色空间,它们的共同点是比较常用,也比较容易直观理解,但这是表面的联系。
只有以 R、G、B 为变量的直角坐标空间才称为 RGB 颜色空间,在 RGB 空间中,三个独立属性变量性质对等,相互加减运算有意义,任何涉及色相、饱和度等等为基本颜色属性的,还有跟“色轮”一类概念直接关联的、用角度表示颜色的等等,都是 HSB 颜色空间,绝没有混淆的余地。在 HSB 颜色空间中,三个颜色属性性质不同,你不可能把色相和饱和度加在一起,就好比时间不能与面积相加,恐龙不能与蚂蚁杂交。
我们还记得传统教材是通过色轮上几个基色和二级色与色轮角度位置的对应关系在两个颜色空间之间偷换概念的,但存在对应关系与两者相等是完全不同的概念。有常识的人都知道,人民币和美圆有兑换关系,但人民币是中国人民银行发祥的,美刀是美国联邦储备银行发行的,各属各自的金融体系。能兑换并不等于人民币就是美刀。RGB 与 HSB 颜色空间与此同理。
zhangwei5009 朋友提的是个好问题,说明已经清楚的意识到 RGB 与 HSB 颜色空间实质上的区别,也明确了两者之间必然存在客观的转换规律,并思考和探询两者之间的定量转换关系。提出这样问题的学习者不太多(我记得 zhangwei5009 很早就在短消息里提过类似问题),传统 PhotoShop 教材中除了千篇一律的重复六个基色、补色点以外,很少有教材在这个问题上有明确说法。
【三】颜色空间中没一个坐标点对应一种颜色,颜色空间要求颜色与空间坐标一一对应,即不能某一个点对应多种颜色,也不应该一种颜色对应多个坐标点。不过在 PhotoShop 这样一个实用工具中,在特殊情况下存在多个坐标点对应实质上相同颜色的现象,这是因为某些颜色空间的形状十分离奇古怪,为使用方便性考虑,做了一些权宜让步,把奇异的颜色空间形状虚拟为规矩的形状。这是一种程序设计技巧,因为这里主要偏重颜色理论讨论,这种应用技巧搁置不谈(但我们点明有此一说,而不是假装它不存在)。
关于颜色空间的宏观概念暂且打住,还是具体来看主要讨论的“色相类颜色空间”。前面已经概述过,色相类颜色空间由色相属性、另一个表色属性(通常称为“饱和度”即颜色纯度)和一个表亮属性构成,基本上它的三个属性是通过 RGB 空间的属性,即三个基色色阶值来定义的。色相的定义总是恒定,而另两个属性则有多种定义方式。
也就是说,把颜色这样一个综合概念拆分成色相和非色相两部分独立属性,这是固定的步骤,再把非色相属性拆分成另外两个独立属性,——有各种各样的拆分方式,因此构成一个家族,每种方式都是这个家族中的一个成员。那么具体到 PhotoShop 中的 HSB 颜色模式,使用是色相和哪两种属性呢,如果问题能这么问,那就谢天谢地了。PhotoShop 中对于饱和度属性与表亮属性的使用,与“色相类颜色空间”家族的庞杂关系同样混乱不堪,涉及 PhotoShop 中表示饱和度的有三种(或者说“两种半”)不同的“饱和度”属性,而表亮属性则有至少有六种,其中一部分相互结合并与色相属性组合,——据我目前所知——构成了至少三种实质上不同的“HSB 模式”也就是“HSB 颜色空间”。
具体说,取色器和“信息”调板上的“HSB”属于理论上“色相类颜色空间”中称为“HSB/HSV”的颜色空间;
“色相/饱和度”命令中的,是另外一种通常称为“HSL/HLS”的颜色空间,它的饱和度与“亮”属性的定义与上面差别颇大;“色相”、“饱和度”等图层混合模式中涉及的,又是另一种“色相类颜色空间”,这种组合没有通用名字,可能是 Adobe 系列软件自行定义和专用的颜色空间。
因为“HSB”这个名称已经给了第一种专用,为区别期间,以后统称“色相类颜色空间”我们改用“HS*”来表示。理论上的 HS* 颜色空间还有更多种变化,比较大的差别产生在表亮属性的定义,这不仅是 PhotoShop 中令人头疼的概念,也是整个颜色理论中乱如一团麻的概念。不仅六种以上的“亮”概念没有固定的术语将它们严格区分,而且它们表示发亮的数值也相互出入很大,例如两种颜色在某种“亮度”意义下认为亮度相等,而换一种“亮度”概念来看,他们的亮度可能相差九倍。
四】所以表面看 PhotoShop 的颜色概念精密和谐,实际上,在 PhotoShop 内部它们比迷宫还乱。但是 Adobe 根本就不希望你知道这些,同时也没有提供适合精确描述这些空间特性的基本概念。
我们说“PhotoShop 是根据精密的光学理论设计的”,这话没错,这些东西也不是 PhotoShop 搞怪而是“精密的光学理论”就是如此,它的确有精密的部分,但我们也不要隐瞒它糟糕的、令人无所适从的部分。那么是科学有问题么?科学家是糊涂蛋、睁眼瞎么?也不是。关键的原因是颜色这种东西太紧密的涉及到人的主观感觉,如果不是为了将就我们的感官和心理,那么光的强度用能流密度表示,颜色用光谱成分表示,这种客观的光学理论完美无缺。就是因为要适应人类视觉这种特性古怪、翻覆无常、莫名其妙的感光设备,并且以人为本为人服务,颜色理论才搞得一塌糊涂。
人类心理对于颜色感知的主观影响不说了,就说眼睛这种感光器官,它有非常非常宽广的感光范围,可感受的光能强度跨越十四个数量级以上,远远大于任何人造的感光设备,但是在不同的亮度范围,感受的敏感度却相差悬殊,而且它由两个部分衔接起来的(明视视觉和暗视视觉),由两种不同感光细胞分别负责(视网膜上的锥状细胞和杆状细胞),两种细胞的特性相差很大,同时人眼对于颜色的感知相对迟钝得多,它不能分辨三色混合与太阳光全光谱混色的区别,所以我们才能用三基色的混合来冒充自然光谱,不然的话(如果我们的眼睛足够“精密”和“敏锐”),无论是彩色印刷,彩色摄影,彩色电视和显示器……一切现有的人造彩色图象,就都不是这么简单了,就会比现在困难很多,成本也会高昂得多。
所以有一个戏谑的说法,三基色技术是人类是借用自身的“缺陷”自己占自己便宜。
【五】权当是枯燥话题之前的一点娱乐,下面的东西就慢慢的晦涩了。上文说到,PhotoShop 中涉及的 HS* 类颜色空间实际上有三种,其实细心的使用者可能早已感到了。例如前几天举的一个最简单不过的例子来批驳 PhotoShop 手册中关于“色相”,“饱和度”一类混合模式的定义,PhotoShop 中自相矛盾的根源,就是因为所谓“色相”,“饱和度”的概念在不同工具和命令中是彼此不同的,此“饱和度”非彼“饱和度”,正如清人对属所云,“蔺相如司马相如,名相如实不相如”。
还有“色相/饱和度”命令中,我们单独调整“饱和度”或“明度”滑标同时查看信息调板,S 和 B 属性的变化规律完全不是按照正常概念所预期的那样变化,以至于对于最普通的“色相/饱和度”命令我们很长时间都难以找到它的确切规律。这些还只是表面现象,理论的分析能彻底找到它们在基本概念上到底差别在什么地方。
幸好我们主要关心的概念是色相,在各种不同的 HS* 空间中,色相的概念是不变的,而“色相/饱和度”命令加上“信息”调板,恰好是分析色相与 RGB 颜色空间属性的最好工具。在实际观察分析前需要指出一个分析 HS* 颜色空间概念的关键点,在我们熟悉的 RGB 颜色空间中,颜色决定于三个通道的色阶值组合,我们关心的是三个通道色阶值的实际数值或绝对数值,红多少绿多少蓝多少,但是,在探索 HS* 空间基本颜色属性时,分析它们与 RGB 属性之间的关系时,要把注意的重点放到 RGB 颜色色阶的相对数值上,也就是 R、G、B 三者谁大、谁中、谁小,这是理解 HS* 空间属性与 RGB 关系的顶尖机密。
只要把脑筋换到大中小关系上,那么色相与 RGB 之间的对应关系不攻自破。我们首先简要复习一下中学中的排列组合,三个数值按照大中小顺序排列,可能的结果有六种,就不一一列举了。而颜色的色相属性恰恰是由这六种排列决定的,R、G、B 三者中最大的那个决定色相的主要基调,中间的和最小的决定实际颜色与主要基调的偏离程度,中间的和最小的两个对于色相有相互“抵消”作用,即两者相等时对色相的影响正好抵消,色相就等于主要色调的色相。
我们说的“主要色调”,就是色轮上间隔 60°分布的红黄绿青蓝品——基色和其补色。60°,一种六种基色和补色,还有大中小关系的六种可能,这些六六大顺的组合是碰巧得来的吗,其实不是,实际上色相概念本来就是照着这种规律来定义的,种瓜得瓜,求仁得仁,一点也不奇怪(我知道你还是感觉有点奇妙)。
【六】我们用一个试验来强化上述概念。
任意取相同色相的颜色,一种可以,几种也可以。这里取 45°,一个一般值。打开“色相/饱和度”命令面板,慢慢将色相加大,同时密切监视“信息”调板上 RGB 颜色值的变化,可以看到 RGB 值居中的绿色阶值在缓缓增大,而最大、最小的红、蓝保持不变。我们知道当该颜色的色相转到 60°,也就是“色相”滑标调整到 15°时,颜色将变成纯黄色,这不希奇,我们要看的在这个关键点上,RGB 颜色将发生的奇妙转折。
当色相逼近 60°时,居中的绿色色阶值也达到了原来最大的红色的相等值,然后色相超过 60°。达到最大值的绿色不再增加,并开始坐庄不动,把原来在这个位置的红踢了出去,无家可归和红开始向下堕落……
色相继续轮转到将近 120°,逐步减小的红达到了最小值蓝的色阶值,不出所料,红色抢占了蓝的老窝,蓝滚蛋,开始外出流浪。它不能再减小,那么就上升吧……
色相又增加 60°,增大的蓝色阶值达到了原颜色色阶值的最大值(绿色占据的位置),不再增加,而绿色,此刻再次轮到了绿色上路,但是与开始不同,现在绿要步红的后尘开始减小……
再转下去我们要换到另外一侧,因为色相 360°周期重复,加 180°等于减 180°。
如此步步轮换,以色相轮转 60°为一个阶段,直到色相转过 360°完成一个循环。
【七】现在总结色相轮转的规律了,颜色以 HSV 颜色空间的属性值变化,保持饱和度与“亮值”恒定,色相发生轮转。我们要观察的是在 HSV 空间颜色属性上述变化中,对应 RGB 颜色空间的属性,即三个基色通道色阶值的变化规律,也就是两个颜色空间颜色属性的映射规律。
假定颜色初始状态下三个基色通道色阶值分为大、中、小,重要的是色阶值最大的基色通道的色阶最大值,以及色阶值最小的基色通道的色阶最小值,而初始状态下哪个通道色阶值取最大,哪个通道色阶值取最小并不太重要。
色相轮转以 60°为一个状态阶段,在同一个阶段中基色通道的色阶值变化趋势不变,而过渡到下一阶段则变化趋势发生改变,状态阶段的交界是色相 0°、 60°、 120°、 180°、 240°和 300°的色相点,在这几个色相值关键点,基色通道色阶值的变化趋势发生转折。
在色相轮转的一个阶段中,三基色通道色阶值有一个保持最大值不变、一个保持最小值不变,只有色阶值居中的那个通道的色阶值随色相轮转增大或减小,直到色相值轮转到下一个关键点,居中变化的基色通道的色阶值达到最大值或最小值,这时通道色阶值的变换趋势转折,色阶值变到此最大或最小值的通道把变化交给原来取此值的那个通道,原来色阶值在这个值的基色通道的色阶值开始向另一方向变化,基色通道色阶值的变化进入下一阶段,而到达此色阶值的那个基色通道的色阶值保持此最大或最小值不变。
基色通道变化趋势的转折点也就是色相轮转的色相关键点,关键点对应的颜色是纯色,而纯色对应三个基色通道的色阶值有两个相等,同为最大或最小值,而另一通道取另一个色阶值。
色相轮转一周,基色通道的接力变化完成一个循环。
从“色相”概念的定义看,这些有意思的现象是很自然的。“色相”是用 RGB 基色通道色阶值定义的,色相的概念本来就是这么定义的。六个阶段状态的轮转,就是“色相”属性定义的分段函数。
【八】前面“自占便宜”的话是早先的一句“凤氏名言”,而关于 PhotoShop 中色相变化与 RGB 颜色属性的关系,只要记住这一句:
色相轮转是 RGB 颜色的接力赛跑。
这是基色通道的变化接力,色阶值变化的通道当色阶值变到最大或最小值时,就把变化的接力棒交给色阶值“等在那里的通道”,自己的色阶值保持这个最大或最小值。色相轮转的任何状态下,只有一个基色通道的色阶值在变化,而色相关键点就是接力站。如果在色相轮转的同时监视动态直方图,更可以清楚的看到 RGB 色阶轮番交替的顺次变化。
RGB 颜色色阶值中有一个中间值,中间值是哪个,是变大还是变小,组合起来也是六种可能,每种发生在色相 60°单位变化的一个阶段。我们打算与“六”打六次交道,数着,这是第四个。
下面看色相轮转的几个特殊位置。色相转动 120°,三个基色通道的取值步进轮换;
色相转动 240°,三个基色通道的色阶值再次步进轮换;
色相转动 180°,原颜色的三个基色通道中,色阶值原为最大和最小者色阶值交换,原色阶值居中的仍然居中,但数值关系怎么变化呢,自己考虑也试验看看。
【九】开宗明义的主旨还没有忘吧,我们要探索的是 HS* 与 RGB 颜色空间的关系。一系列试验中我们观察的是 RGB 颜色的色阶值变化,但是并没有把它们的变化放到 RGB 颜色空间中来寻找进一步规律。这正是下面要做的事。
我们关心的不仅是现象、不仅是 PhotoShop“色相/饱和度”命令中的“色相”变量调整,以及与 RGB 颜色空间属性变量——基色通道色阶值的对应规律。这些都是具体的、枝节的东西。我们真正想得到的,是关于颜色空间的基本规律,即两个颜色空间的属性变量映射关系,也就是从最基础的层次将 RGB 和 HS* 颜色空间联系起来,找到它们基本变量之间的映射关系。
因此下面我们要从完全抽象的角度来看两个颜色空间,涉及的多是立体几何了。RGB 颜色空间是一个以 R、G、B 被变量的直角坐标,三个坐标轴对应 0-255 所保卫的立方体就是 RGB 颜色空间的全部范围。将前面试验中基色通道色阶值的变化规律抽象到 RGB 颜色空间,就得到 HS* 空间的色相属性轮转过程中,RGB 空间属性值在 RGB 空间的运动轨迹。下图所示,三通道色阶值的轨迹沿一个立方体的几条边运动,这个立方体位于整个 RGB 空间立方体(色立体)内部,它的主对角线“骑”在色立体的主对角线上,内部立方体的边长正好就是前面试验颜色 RGB 三值中最大与最小的差。
【十】上图不需要额外的证明,它就是前面试验中 HS* 空间的纯色相属性轮转一周所观察到的 RGB 值的六段变化规律在 RGB 空间中描画出来,是同一个事实的另一种描述方式。也就是 HS* 空间色相属性周期变化时,颜色在 RGB 空间的变化轨迹。
注意 RGB 颜色空间立方体,以及颜色空间内部的立方体具有同样的几何特性,它是八个顶点,十二条边和六个面构成的正六面体,十二条边中有六条不接触主对角线,上面的轨迹就是这六条边连成的一条不共面扭曲折线,我们把 RGB 颜色空间颜色点沿折线运动所对应的色相变化标在上面。这是一种 RGB 与 HS* 空间属性的映射关系。内部立方体的八个顶点分别是三基色、三补色加上黑、白,内部立方体各边对应的 RGB 值关系标在图上。在每条边上,三个基色通道色阶值的相对大小关系相同,各边之间则不同,对应三个通道色阶值排序的六种组合。在每个顶点,折线的走向发生转折,也就是通道色阶值的变化趋势发生转折——即三个基色通道中色阶值随色相轮转而变的通道在不同边之间发生了“接力”交换,因此颜色在 RGB 颜色空间中的变化方向发生转折。
这个折线在 RGB 空间转换 HS* 中作用十分重要,其它的重要属性几乎都可以以它为基础推证出来,这里不做具体证明,想要最严格的证明只要用立体解析几何就可以,是实际上立方体中的对称关系十分丰富,概念一目了然,很多证明都不必要了。
下图中左上是另一个重要空间关系,称为“等色相面”,它与前面折线的性质刚好相反,折线是只有色相变,HS* 其他属性不变,等色相面是其他属性都变,只有色相不变的颜色变化在 RGB 空间的变化轨迹。它是一个平面,看图就不用语言描述了。实际上这是等色相与反色相共同拥有的平面。
图中右下称为“等去色面”,“色相/饱和度”中命令“饱和度”属性变化的结果,映射到 RGB 空间就是颜色在这组平面上运动。它是六个三角形拼成的不共面曲折面。有了基本属性的轨迹映射关系,HS* 颜色空间属性变量与 RGB 空间属性变量的映射就基本完整了。
上述这些关系通过立体直观都是十分明显的空间点、线、面关系,我相形对属于“艺术细胞”的朋友想象起来会比我容易得多,准确得多,因此图在就不需多解释了。因这完全属于形象思维的范畴,我是不擅长的。还有前面一直没有提一句关于 HSB(姑且将 HSB 作为各种 HS* 的代表)颜色空间的形状,这好象也不用说了,基础教科书在转向讲解 HSB 颜色空间时都说过。
【十一】上面“四方联”中还有两个标记“等色性体”的图,是结合日前红火的那个调整灰暗颜色帖子,其中涉及一些方法与 RGB 颜色空间属性的概念有关。这个概念称为“等色性体”,也就是 RGB 空间中 r、g、b 属性满足一定大中小顺序关系的局部空间,因为大中小关系是六种所以肯定等色性体有六个。看图。果真是六个,每个“吃”住扭曲折线的一条边。
每个等色性体是一个不规则四面体,例如第一个等色性体占据的顶点是黑、红、黄、白,其中颜色是明暗不等的红橙黄,最亮可以到白最暗到黑。直观的很还是不需多解释。自己可以试把各个等色性体分别画出来。六个等色性体是形状完全相同的空间立体,六个正好精确的拼成立方体。
还有一个图是调色帖中改进算法对应的色相范围(在 RGB 空间中映射为 R、G、B 颜色条件)。我们说过它的条件是 R > G > b 与 2*R > G > R > B 的合集,在 RGB 颜色空间中就是第一个等色性体与第二个等色性体前一半的拼合。两者都是 RGB 空间的四面体,本来八个面,一对重合抵消,一对共面合成一个,剩下的是不规则五面体(四棱锥)。自己想象一下,四个这样相同形状的四棱锥正好纹丝不差的拼满整个立方体。
那么大家一定要问,那么到底 RGB 与 HSB 属性变量转换的数学公式是什么。因为在上面的分析中我们看到,几乎所有的属性映射都市分段的,那么可想而知,RGB 与 HSB 的转换公式也不可能是一个简单的单一函数,它是分段描述,分条件计算的。实际上它与其说一个公式更适合用一小段程序的形式描述,基本上不是计算而是逻辑判断。我感觉用图示更能表示清楚——事实上前面几张土中已经可以概括出两个颜色空间属性坐标的转换关系了。
同样的功能函数可以写成很多等价的形式,用类 Js cript 语句写可以写成下面样子。这是 HSB -> RGB 的转换函数,是早期从类 C 格式转写的(比较简洁的形式),关键就是最后一个长语句,前面的都是铺垫。这个函数基本上可以直接在网页中调用。
function hsv2rgb(h, s, v) {
if (s == 0) {
if (h == null) return [v, v, v];
else return null;
}
else {
if (h == 360) h = 0;
h /= 60;
var i= Math.floor(h);
var f= h - i;
var p= v * (1 - s);
var q= v * (1 - (s*f));
var t= v * (1 - (s * (1-f)));
return [[v,t,p], [q,v,p], [p,v,t], [p,q,v], [t,p,v], [v,p,q]][i];
}
}
【十二】从开始对 HS* 与 RGB 颜色空间的问题发生疑问和兴趣,到得到基本清晰的理解,我断断续续用了两年时间。中间不断被其他问题涉及到而想起,前后有不下十篇笔记,至少十多万字篇幅讨论相关内容,在正确与错误、理解与不理解之间颠倒反复。困难的是没有相关资料,没有人讨论,甚至没有用来描述现象和规律的概念,基本是一个盲区。理论的资料不少但是纯粹抽象的理论(网上流传的理论内容也有大量讹误,难讲是正确部分多还是错误部分多),不会有人结合到 PhotoShop 具体使用中的复杂变化,而 PhotoShop 的资料又不涉及正规理论。
想把 Adobe 藏起来的东西挖掘出来,还真是够刺激。
上面内容是笔记主要部分,与大家探讨切磋,欢迎质疑、批评、指正。因为颜色空间理论的基础地位,这个问题涉及的范围极其广泛,无论在哪个方向上稍加深入,不是一本书也是半本书,而且恐怕会把 PhotoShop 中所有主要内容的问题全勾连进来。为把一个问题说清楚,不能不人为划定一个界限,到此止步不再深入。写这篇东西也一样,不是教程而是讨论,但是我相信对于擅长形象思维的艺类朋友来说,这次不会说想不通了吧。
加载全部内容