Unity
文章平均质量分 56
noligz
这个作者很懒,什么都没留下…
展开
-
解决UV流动时间长了以后会卡顿的问题
对于支持uv流动的shader,在手机上流动的时间长了以后,可能会出现卡顿的情况。可能的原因之一是,uvOffset值过大,又定义为half或者fixed,导致uvOffset的小数部分精度不够。解决办法很简单,计算uvOffset时用float,然后截取小数部分,再加到结果中。实例代码如下: float2 scaledUV = texcoord * tiling; float2 u原创 2016-04-14 21:10:50 · 1651 阅读 · 0 评论 -
Unity中自动摆放LightProbe
在Unity引擎中,Light Probe是模拟复杂光照的一种高效的方式。要使用Light Probe,就需要在每个场景中都摆放若干Light Probe,然而一个游戏项目里面场景的数量可能会很多,每个场景要摆放的Light Probe的数量也会很多,如果都是人工摆放,那将会十分费时费力。而且,LightProbe摆放的位置会影响到最终的效果,靠人力去找到合适的位置去摆放也比较困难。本文在此提供一原创 2017-02-07 21:06:44 · 5342 阅读 · 0 评论 -
利用分段式深度解决特效重复叠加的问题
问题表现 很多特效都会用叠加的渲染方式,如果面片出现重叠,那么这个特效就可能会叠加两次或以上。下面以贪吃蛇的蛇身体上的加速特效为例进行说明。图1 重复叠加现象示意图 上图中放射状的黄色尖刺就是重复叠加特效的结果。原因 直接原因是:1, 有面片重叠2, 使用叠加方式渲染3, 关闭ZTest在蛇身体的例子中,面片重叠的原因是蛇原创 2017-02-08 17:18:15 · 731 阅读 · 0 评论 -
光顺短拖尾效果
Unity自带拖尾组件的缺陷 Unity自带的组件TrailRenderer可以用来做拖尾效果,是通过在物体移动的轨迹上构建mesh来实现的。但是当移动轨迹不是一个光滑曲线,而出现一个较大转角的折线的时候,就会出现问题,例如下图这样有45°转角的移动轨迹。 图1 有45°转角的移动轨迹 问题的表现如下图所示。图2 Unity自带拖尾组件的缺陷原创 2017-02-13 15:24:12 · 2616 阅读 · 0 评论 -
基于网格的无限大战争迷雾实现方案
战争迷雾常见的实现方案是使用一张贴图存储地图上每个格子有无迷雾,然后对这样贴图进行模糊后作为mask,可以实现边缘柔和渐变的迷雾效果。如果地图大小是固定的,那么使用采用固定的一张或多张贴图的方案,覆盖整个地图。但是如果地图是无限大的,那么随着摄像机的移动,这些贴图必然要比较频繁地更新,而每次更新都需要重新进行模糊,根据实际情况性能不一定好。这里给出一个基于网格的无限大战争迷雾实现方案。...原创 2018-12-05 23:48:45 · 1197 阅读 · 0 评论 -
高效地模糊
后处理经常需要对图片进行模糊操作,例如Bloom,景深等,这里介绍几个高效的计算模糊的要点。1. 降采样即先把图片缩小到较低分辨率再进行模糊,然后放大到原来的分辨率。由于模糊的计算在pixel shader里耗时较多,减小分辨率有助于提高效率,而且把图片先缩小再放大,经过线性过滤之后也有模糊的效果。2. 二维卷积变成一维卷积对于高斯模糊而言,由于高斯函数的数学性质,可以优化成两...原创 2018-12-05 22:41:44 · 255 阅读 · 0 评论