Shader
noligz
这个作者很懒,什么都没留下…
展开
-
解决UV流动时间长了以后会卡顿的问题
对于支持uv流动的shader,在手机上流动的时间长了以后,可能会出现卡顿的情况。可能的原因之一是,uvOffset值过大,又定义为half或者fixed,导致uvOffset的小数部分精度不够。解决办法很简单,计算uvOffset时用float,然后截取小数部分,再加到结果中。实例代码如下: float2 scaledUV = texcoord * tiling; float2 u原创 2016-04-14 21:10:50 · 1651 阅读 · 0 评论 -
高效地模糊
后处理经常需要对图片进行模糊操作,例如Bloom,景深等,这里介绍几个高效的计算模糊的要点。1. 降采样即先把图片缩小到较低分辨率再进行模糊,然后放大到原来的分辨率。由于模糊的计算在pixel shader里耗时较多,减小分辨率有助于提高效率,而且把图片先缩小再放大,经过线性过滤之后也有模糊的效果。2. 二维卷积变成一维卷积对于高斯模糊而言,由于高斯函数的数学性质,可以优化成两...原创 2018-12-05 22:41:44 · 255 阅读 · 0 评论 -
基于网格的无限大战争迷雾实现方案
战争迷雾常见的实现方案是使用一张贴图存储地图上每个格子有无迷雾,然后对这样贴图进行模糊后作为mask,可以实现边缘柔和渐变的迷雾效果。如果地图大小是固定的,那么使用采用固定的一张或多张贴图的方案,覆盖整个地图。但是如果地图是无限大的,那么随着摄像机的移动,这些贴图必然要比较频繁地更新,而每次更新都需要重新进行模糊,根据实际情况性能不一定好。这里给出一个基于网格的无限大战争迷雾实现方案。...原创 2018-12-05 23:48:45 · 1197 阅读 · 0 评论