edit–projectsetting—–quality—-anti alissing(把这个值跳到4X)
Unity中模型发生闪烁原因通常情况下是因为其中两个面距离太近了。
这里有两个解决方法
1.增加导致闪烁的两个面的距离
2.增加摄像机最近裁切面的值(个人习惯用1的倍数)
为什么两个面靠的近,有时候会闪烁,有时候又不会乃?
模型闪烁根本原因是Unity中模型的点信息是双精度的,GPU处理模型过程中需要将三维点坐标转化为屏幕坐标,进而投射到屏幕上(所以说你被视觉欺骗啦)。当摄像机显示范围过大,最近裁切面太小(Unity默认值是0.3)或者模型偏移过大时,模型点的定位会不准,导致相邻很近的两个面发生相互交错的情况(试想那些点就像跳蚤,你不动它也不动,你若动,它就跳来跳去),进而导致闪烁。解决方法就是对应导致这问题的三种原因进行改进。
拓展信息
由于市面上绝大多数建模软件及引擎所用的坐标是双精度的,所以在Maya或者Max中,如果模型位置偏移很大(通常是工程类模型),就很容易发生模型看起来在抖动的情况,甚至导入到Unity后发生看不到模型的情况,这时候可以通过修改摄像机裁切面参数或者将模型中心点居中来缓解这个问题,但目前最适合的解决方案是给模型做偏移,让模型符合Unity等引擎的制作规范。但如果你用的是Skyline……土豪(不管是你是土豪还是抱了土豪大腿)~刚把碟!