发布网友 发布时间:2022-04-23 01:18
共2个回答
热心网友 时间:2022-04-22 11:43
three.js的源码尝试看过,热心网友 时间:2022-04-22 13:01
1.Uber Shader,这是比较常见的做法,就是把所有的光照计算合并成一个大的shader,最后点光源,平行光源,聚光灯全部在这个shader里处理,缺点是一个pass里要处理的内容非常多,而且一旦光照条件发生变化(比如添加了新的光源或者某个光源被剔除),则需要重新编译该shader,当然一般而言游戏引擎里shader都会预编译缓存的,这是three.js和babylonJS等引擎的常见做法,鉴于Uniform数量有硬件*等,Uber Shader一般也会潜在地*最大光源数量