基础光照上篇主要讲的是unity中的光照模型及其原理,还有几种光照类型(自发光、环境光、漫反射、高光反射),后面几篇文章就开始在unity中实现这几种光照类型,本篇在unity实现自发光、环境光。
一、unity中的环境光和自发光
在标准光照模型中,环境光和自发光的计算是最简单的。
环境光可以在Window->Rendering->Lighting Settings->Ambient Source/Ambient Color/Ambient Intensity中控制。在shader中,我们只需要通过unity内置变量UNITY_LIGHTMODEL_AMBIENT就可以得到环境光的颜色和强度信息。
而大多物体是没有自发光特性的,如果要计算自发光非常简单,只需要在片元着色器输出最后的颜色之前,把材质的自发光emission计算好添加到输出颜色即可。
拓展:
这里如果要让物体全部区域都自发光,直接添加自发光颜色即可。如果要在某些特定区域去自发光,比如一个玩家模型,头上有一颗宝石,只让宝石拥有自发光,下图是没有自发光效果的原图: