1、1.遮罩要改变全局光照,最简单的想法就是改变所有对象的颜色。最简单的方法就是在场景前添加一个环境色遮罩。你想要什么颜色的环境光?将遮罩更改为相应的颜色。
2、但显然这个效果不是很真实(比如颜色是浮动的)。主要原因是不合理。当我们在其他物体上叠加一张半透明的图片时,颜色是这样融合的:颜色=固有颜色*(1-alpha)+照明颜色* alpha但是我们知道,一个物体能够显示颜色,是因为它在光源中反射特定波长的光。真实照明颜色应按如下方式计算:颜色=固有颜色*照明颜色*照明强度这个乘法公式的效果如下:
3、半透明融合:随着“光照”变强(alpha变大),物体的颜色会向光照色偏移,甚至会染黑物体。但也不是没有可取之处。如果“照明色惯墀眚篪”是黑色,此时可以认为是阴影,那么融合公式就会退化为:颜色=固有颜色* (1-alpha)这时,它在形式上与“正确”的光照公式是一致的。也就是说,如果太阳只是明暗变化而不是颜色变化,也可以用这种方法来模拟。同理,模拟阴影也很好。事实上,我们已经这样做了很多年。这种方法的另一个优点是实现成本非常低——基本上没有场景变化,也没有额外的代码添加。当然,你可能觉得跑步的成本比较高,但是...我不在乎……...2.直接更改对象的颜色回到最初的例子。如果简单的对所有对象应用相同的光照参数,效果还是不太好。
4、这样做的原理是不同的物体在其表面有不同的物理特性,其照明性能也不同。这里本来应该有一些比较复杂的物理公式,但是简化成了颜色倍增。如果乘法使用同样的颜色,就相当于默认所有物体都是用同样的材料做的,效果肯定不会很好。尤其是天空、云(和水面,虽然本例中没有)中出现的颜色原理,远不是地面物体的漫反射,所以需要单独指定颜色。散射和反射率不同的物体应分开处理。3.在场景中加入“照明”我之前看过一些教程教你如何在2D游戏中模拟光的效果。使用的方法类似于alpha融合,达到的效果类似于这样:
5、效果出乎意料,不错。但是我们知道这种方法绝对不是真正的光照。事实上,这些闪亮的物体不能照亮任何其他物体。那么这种好的感觉是什么呢?答案是雾!上图中,路灯和灯塔周围明亮的部分不是它们发出的光,而是它们发出的光所照亮的雾。雾的颜色是光散射的结果,可以近似认为是半透明的物体。半透明的物体可以和阿尔法融合。这种给人以照明感的物体可以放置在场景中,增加气氛。4.时变照明现在我们知道了如何在特定的光照下显示物体的颜色,我们可以试着在一天内显示场景的变化。(这里我能想到的只有BDFF,脑海里回响着BGM:光、影、级)第一步:我们建造一个高楼林立的城市场景
6、第二步:在高楼上随意加窗,增添乐趣第三步:添加其他细节
7、1获取每个时刻的状态首先,游戏制作的一个实际经验是,游戏状态最好直接获取,不依赖于上下文。比如,有可能我们每次开始一个游戏,都是早上开始,然后游戏里每天的时间都是固定的。这时候我们其实可以写一个定长动画来改变物体的颜色,看起来很方便,但是:如果明智的计划改变进入游戏的计划并从上次保存的时间继续,如果玩家进入房间,然后离开房间,他需要从刚才的时间继续如果你需要支持快进甚至倒带这个时候,就算了。我们需要的是能随机得到当前状态的逻辑,每个物体在当前时刻都能得到自己的颜色。2指定一天中的颜色
8、实际上,这个场景包括6+1个建筑层,3个雾层,天空,太阳和月亮猾诮沓靥(包括复杂的光晕和泛光灯),每个层都可以分配自己的颜色。这使得场景颜色的调整非常自由。有两种指定颜色的方案:指定任何挠亚桃垓颜色照明下的场景颜色,然后指定我们在一天的每个时间使用什么颜色的照明直接指定一天中不同时间光照影响下的场景颜色方案一很重,但是很有用。一旦我们指定了各种光照条件下的场景颜色,包括蓝色、红色和灰色,我们就可以模拟各种事件,比如阴天、日食或世界末日(天知道那时的光会是什么颜色)。但是你可以想象这个颜色查找表会是一个r * g * b(然后*场景中的图层)的多维表,即使场景不是为每种rgb颜色绘制的,工作量还是很大的。如果我成功了,我可能会把它卖了换钱。选项2限制性很强,但速度很快。事实上,我为场景画了一系列的时间点效果,像这样:
9、指定特定时间点的剑钕饿粪场景颜色后,就可以在程序中实现特定时间点的场景。接下来,我们只需要填写关键点之间的颜色变化过程。3插值菀蒯踔观我用过简单的线性插值。当然,有一种更平滑的方法可以在多个点之间连续变化。也可以试试。这里我想说的是,这个插值逻辑可以顺便用来做其他的事情——比如不同时间打开高层窗户的比例。4天空梯度在天空中使用渐变颜色可以立即丰富场景。渐变颜色也可以通过指定关键点的颜色并对其进行插值来获得。5雾和泛光灯,以及其他使场景变得迷人的东西如前所述,场景中至少有三层雾来独立控制颜色。此外,太阳和月亮还带来了几层泛光灯。这些都是可以指定用于插值的颜色。还有一个我很喜欢的效果是,到了晚上,高楼大厦的窗户会变得五颜六色,太妖娆了!记住,每个窗户后面都是勤劳的群居动物。你可能会注意到一些群居动物通宵工作5.摘要大概就这些时间了。其实原理很简单,主要是工作量比较大。最好给美术指定颜色,然后给程序赋予颜色。我们约定下次用调色板来谈全局照明,然后就可以领略古人的智慧了。