效果分析
万国觉醒实现了白天、黑夜的时候建筑具有不同效果。我们来分析一下都有哪些效果。
- 在夜晚的时候整体叠加了一个颜色实现了夜晚的颜色效果
- 某些建筑有一些特别的位置可能需要叠加不同的颜色
- 窗户位置有单独的灯光效果、颜色实现
- 先来看一下效果图:
夜晚颜色叠加
我们先来实现一下简单的夜晚颜色叠加,其实只是简单的颜色叠加就是我们前面的示例shader的效果。这里我们用Shader Graph实现一下。
我们来修改一下NightColor的颜色,叠加一个浅蓝色。
Shader Graph的使用比较简单
- 新建两个属性一个Texture2D用来使用建筑主贴图、Color属性用来叠加晚上的效果。
- Sample Texture 2D 节点就是从主贴图中获取颜色值。
- Multiply 是用来做两个输入的相乘、对于颜色的叠加我们一般都是采用乘来做。
实现对建筑的局部控制
我们现在来做一下如何控制建筑的局部颜色变化,这里要引入一张控制贴图,这个也是我们做很多效果的常用方法。
图片在存储的时候是通过RGBA四个通道来存储的,而每个通道的值都是0-1之间的值,相当于每张贴图都给我提供了4个0-1的数组,那么我们就可以利用单个通道来控制是否显示,以及它的强弱。比如0就是不控制。
我这里之间使用了万国觉醒的贴图。我们在Unity中查看控制贴图可以看到