首页 > 解决方案 > Unity中2D网格的闪烁

问题描述

我正在使用 Unity 创建一个简单的驾驶模拟器。道路和道路标记由一组点定义。为了在场景中显示它们,我正在创建二维网格并将它们定位在地形上。当相机沿着街道移动时,网格看起来很好。但是当从远处或侧面看它们时,它们开始剧烈闪烁。尤其是在接近弯曲的道路时,它看起来很可怕。在闪烁消失之前,相机必须非常靠近。从远处看,这条路甚至根本看不见。

闪烁的道路

起初,我认为网格彼此相交或与地形相交,但事实并非如此。我什至在地形、道路和道路标记之间添加了一些空间。然后我想,在场景中添加一些抗锯齿会减少这个问题。但即使是 MSAA 8x 也根本无法解决闪烁问题。我认为问题是由我的道路和道路标记的“平整度”引起的。由于它们仅是 2D 且相机仅高于地形 1.5 个单位,因此视角可能太平,无法在不闪烁的情况下看到道路。有什么简单的技巧可以减少这种影响吗?

标签: unity3dgraphics3dgeometrymesh

解决方案


我一直在处理一个相机角度非常接近地面的项目的类似问题。我的建议是在您的纹理和项目上启用各向异性过滤:

https://docs.unity3d.com/ScriptReference/AnisotropicFiltering.html

要启用纹理过滤:

您也可以从 Edit->Project Settings->Quality->Project Quality Settings->Anisotropic Textures->Per Texture 中启用它

要设置 Aniso 级别:

资产->选择您的纹理,然后在检查器视图中->过滤器模式-> Aniso Level


推荐阅读