移动端烘焙光照优化全攻略---把阳光装进罐头

移动端烘焙光照优化全攻略---把阳光装进罐头 从一部发烫的手机说起你做了一个画面精美的手游。场景是一座中世纪城堡。阳光从彩色玻璃窗透进来,在石板地面上投下斑斓的光影。走廊里的火把在墙壁上映出跳动的暖光。城堡外的庭院里,树荫下有柔和的环境光遮蔽。在PC上跑,60帧,稳如老狗。然后你打包到手机上。12帧。手机烫得能煎鸡蛋。你打开Profiler一看,GPU占用率99%。大部分时间花在了光照计算上。实时光照。每一帧,GPU都要对场景里的每一个像素计算光照。光源有多远?光线的方向是什么?表面的法线朝哪?有没有被遮挡?有没有间接光?PC的GPU有几千个核心,算力是手机GPU的几十倍。PC算得动的东西,手机算不动。但玩家不管。玩家只知道画面卡了,手机烫了。一星差评。怎么办?把光照提前算好。存起来。运行时直接查表。这就是烘焙。一、什么是烘焙光照?想象你是一个画家。你面前有一座城堡的模型。你要画出阳光照在城堡上的效果。方案A:实时绘画。每一秒钟画一幅新画。太阳移动了一点,你重新画。云飘过来了,你重新画。有人开了一扇门,光线变了,你重新画。每秒画60幅。你累死了。方案B:拍一张照片。在最好的光线条件下,拍一张照片。把照片贴在模型