在计划在Unity中着色精灵时,白色是开始的最佳基础颜色吗?


10

我正在研究Unity中的游戏原型,该游戏将由实心方形子画面/图块组成。我认为我可以为游戏中的每个图块代表具有不同颜色的不同类型的对象。

我认为我可以导入一个单一的正方形精灵,并在Unity中对其进行适当的着色,而不是导入许多不同颜色的正方形。

我在Photoshop中调整色相和饱和度的经验表明,白色不是容易更改的颜色,因为白色的东西通常保持白色。我在Unity中进行的测试表明,尽管我会根据我的Photoshop经验,可以将精灵的“颜色”更改为除白色以外的任何其他颜色,并且精灵似乎被适当地着色。

由于在Unity中进行更改时,白色对象似乎确实具有适当的颜色阴影,因此我的直觉告诉我这是最好的基础颜色,这意味着我可以导入单个白色方形精灵并简单地调整颜色以表示不同的对象和对象状态。

白色精灵实际上是最开始的最佳彩色精灵吗?为什么这样的事情在Unity中起作用而不是在Photoshop中调整色相和饱和度?

在此处输入图片说明


首先,定义“最佳”。
Krythic

Answers:


13

白色是实现真实表现的最佳基础色。同时保持子画面灰度可以为团队等进行一些简单的颜色调整。

Unity将Multiply混合模式应用于精灵纹理和颜色。

Unity的颜色类型范围从0到1(含0和1)。

Color.White等于(1, 1, 1, 1)

知道1时间就是一切。

如果将灰度texture与Sprite Renderer Color字段混合,则每个像素都是其自身。更改此字段将简单地将每个统一的灰度值乘以颜色的每个分量。

给精灵着色


您可以在喜欢的图像编辑器(例如Photoshop或GIMP)中使用“乘以混合”模式。

Photoshop设定


4

Sprites-Additive.shader -GitHub上的Gist

统一颜色具有4种浮点值,是许多颜色格式RGBA的典型值,分别对应于红色,绿色,蓝色和Alpha透明度通道的各个百分比颜色值。

同样如上所述,Unity应用的默认“色调”是一个乘法着色器,Photoshop将该效果称为“乘法”,并且该过程实际上是将精灵像素中的颜色值与所选的颜色值相乘。

问题是,乘法颜色数学着色器总是会产生相同的色相(如果您将“乘以白色”)或将颜色乘以较深的颜色。我遇到了一个情况,在锻造类型的情况下,我想要完全相反的效果。加热的金属不应乘以黄色以产生较深的色调:

黄色的乘法着色器

相反,我将Unity的默认乘法着色器重写为可加式着色器。结果更符合我的期望:

附加着色器

如果有人感兴趣,我将为重写的Sprites-Additive.shader提供要点。

这是有关颜色术语和模式的很好参考:http : //www.northlite.net/ps/blend.htm


没有足够声誉的用户可以发表评论,表示有兴趣看到此效果的着色器代码。您还可以共享吗?
DMGregory

1
嘿,我现在没有即时可用的软件,但是我将对其进行挖掘并尽快获得链接。如果可能的话,今晚。

2
我将其收回,我发现它相对容易,并将其添加到我的GitHub上的Gist中。加法和乘法着色器之间的一个主要区别是透明度。在附加着色器中,我设置了10%的透明度截止值,以保持具有较低alpha值的像素的相对alpha。由于该数学运算的性质,您不必担心乘法着色器上的这种情况。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.