入职四个月客户端逻辑开发,感觉越来越迷茫,似乎来的时候是什么样子现在还是这样,就是在特定框架下进行重复性的填充。想做一些和图形相关的,似乎这些需求都是主城大大和引擎大神两位包揽了。像现在这样真的有机会转向图程/技术向TA么?
发发牢骚。别喷我哈(我还是个萌新)。
昼夜颜色更替:
根据当前时间段,对相应颜色进行插值即可。如果需要精度更好的话,可以调好颜色后生成一张查找表。
太阳/月亮的绘制:根据光线位置和uv计算distance,调整半径大小即可。月亮需要多绘制一个进行裁剪
云的处理:这里噪声我直接拿了现成的图,重点是UV的映射。原文中实现通过uv.xz/uv.y来映射到一个平面上。为了让云看起来立体一些,我计算了一个公式:
float2 skyuv = i.uv.xz / (sqrt(_A1 + (_B1 - _A1) * i.uv.y * i.uv.y * _SkyHeight1 * _SkyHeight1));
A1,B1是椭圆公式的两个参数,通过SkyHeight来调整云的高度。但是这里不可避免的会在地平线处会有拉伸,因此我做了一个淡出的效果,把拉伸严重的云clip掉。同时叠加了一个更高的云层,修改缩放和亮度增加层次感。
对光影和UV映射没查到比较好的办法,希望懂得大神指导下。。
最后放个视频吧。知乎视频www.zhihu.com