正在工作于一个非对称多人游戏,玩家角色是鱼,需要一些水下气氛,于是自己编写了一个光束效应着色器(caustics shader),而不是使用纹理。
这个着色器基于两个Voronoi图层F1和F2,应用了3次域变形(domain warp)到UV坐标上,变形顺序非常重要,如果你在Voronoi之后变形,会导致整个图案向前移,而细胞形状保持不变,变形UV坐标之前会导致细胞自身弯曲,失去典型的Y字型结构。
亮点是两个图层都同意一个收敛点(F1a × F1b,使用pow4衰减),血管是F2-F1边界的掩膜,使用方向性拉伸噪声来破坏其整体结构,形成不规则的闭合网格,另外还有一个大范围的慢移动外套来在不同区域改变亮度。
这个着色器作为一个加性四边形(Blend One One,排序顺序=-5)运行,位于地板贴图之上,鱼精灵之下,有一个独立的全屏幕模糊效果RendererFeature来暗化边缘,光束效应也使用同样的公式来在边缘淡化,形成溶解效果。
目前还不完全满意,仍然可以在某些地方捕捉到Voronoi拓扑结构,特别是在线条收敛处,很想知道有没有人使用过不同的风格化2D光束效应方法,或有没有什么好的建议可以尝试下一步。
评论 (0)