折腾薄雾特效的血泪史
这回搞《薄雾/迷雾》的更新,主要就是被那个雾气特效给彻底套牢了。我最初没想搞这么复杂,就是想简单跑一个远景淡出的效果,结果越陷越深。
刚开始我按照网上搜来的教程,直接套用了最基本的线性深度雾。跑起来一看,完全就是一坨糊糊,跟想象中的那种山涧里飘着、光线能穿透的“薄雾”完全不是一回事儿。那感觉,就像是直接给屏幕蒙了一层灰。
我当时就炸毛了,觉得这不行,必须得有层次感。我开始研究那种所谓的“立体感”的雾气效果。光是看文档我就看了两天,脑袋都大了。然后开始动手:
- 先是抠出来了现有的后处理管线(Post Processing Stack)。
- 然后尝试去修改几何体着色器,想在计算深度时把雾气的密度也算进去。
- 结果跑出来,性能直接拉胯到个位数,帧率掉了百分之八十。
- 我当时气得想砸电脑,赶紧又回退重做,尝试用简单的分层叠加方式来模拟体积感。
就这么来来回回,我光是调整雾气的颜色、密度和衰减速度,整整耗了一个星期。硬是把各种参数调到了一种玄学的平衡点上——既能让玩家觉得有那么点意思,又不至于把他们电脑烧坏。所以这回的“更新日志”,大部分篇幅写的就是这个雾气是怎么被我折腾出来的,说白了就是我的个人泄愤记录。
为什么我非要在这破雾气上死磕?
你们可能觉得我疯了,一个独立游戏制作者,哪有空花这么长时间去抠一个边缘特效?我为啥要在这个细节上钻牛角尖?
实话跟你们说,我当时是真不想面对现实生活里的烂事儿。就在我开始写这个雾效的前两天,我老婆的舅舅,那个平时说话就特别冲的老家伙,突然跑到我家,非说我上次给他修电脑收多了钱。他对着我喷了足足半小时,嗓门大得楼下都能听见。
当时我就觉得胸口憋着一口气,但碍于亲戚面子,我不能直接跟他对骂。他一走,我直接瘫在椅子上,感觉魂都被抽走了。
为了找个地方藏起来,我一头扎进了开发环境里。只有在电脑面前,我才能掌控一切。现实里我拿那个老头没办法,但是在这个游戏世界里,我可以掌控每一缕光线,每一片雾气。我必须把那个雾做得完美,做得比现实中的任何东西都听话,以此来证明我没有完全失控。
这个雾气,就是我那个星期唯一的清净地。我把所有的怨气和焦躁,都揉进了那些复杂的代码和参数里。所以你们在游戏里看到的这份“薄雾”,是我用来躲避那个老家伙的私人防空洞。要不是这破事,这更新早就发了,我也不会写这么长一篇废话连篇的介绍,真是造孽。