cocos引擎目前已经支持3d功能,之前在3d教程中介绍了cocos2d-x的3d功能中的光照,但是只是粗略的介绍了四种光源,因为光照的重要性和复杂性,这个系列文章会分两篇介绍光照,本篇介绍光照的基础-ADS模型,下一篇详细介绍几种光源。
ADS模型是光照的基本模型,包括Ambient(环境光),Diffuse(漫反射)和Specular(点光源)三种光照在物体上的效果是这样的:
三种光照共同影响物体,模拟出一般的光照效果,被称作ADS模型,也叫Phong模型。
环境光是一个来自远处的光源,它会让物体显示一些颜色,全局照明的原理非常简单,它用光的颜色乘以一个很小的常量ambient因子,然后乘以物体颜色,最后得到环境光照射物体之后的颜色。
在cocos2d-x中,在Mesh类(网格,3d模型渲染的最小单元)中以uniform的方式向着色器传递光照的参数,处理环境光的时候,是直接传递环境光颜色,但是在创建环境光的时候要设置一个强度值,在传递前,会用光强乘以颜色再传,在应用程序中处理好计算可以减少着色器的计算量,是个提高效率的好方法。