美文网首页unity3D技术分享
2020-08-28unity3d 重叠面 图层抖动的解决方案,

2020-08-28unity3d 重叠面 图层抖动的解决方案,

作者: Nmao | 来源:发表于2020-08-28 16:25 被阅读0次

    1、其实unity相机的属性中Clippping Planes near属性 和Far属性 ,使Near尽量的增加,就可以 减少面于面的闪烁抖动的稳定。其实这是openGL的经典问题,由于面之间的距离太近导致的渲染的顺序,才引起的闪烁。

    2、 image.png
    可以修改对应shader的着色器解决
    v2f vert (appdata v)
    {
          v2f o;
          o.vertex = UnityObjectToClipPos(v.vertex);
          o.uv = TRANSFORM_TEX(v.uv, _MainTex);
          
          // 加这两行
          float3 n = normalize(UNITY_MATRIX_V[2].xyz); // 当前摄像机方向向量
          o.vertex.xyz = o.vertex.xyz + n * _Distance;
          
          UNITY_TRANSFER_FOG(o,o.vertex);
          return o;
      }
    
    

    _Distance 控制距离(0.0002), 原因是两个面片离的太近了 ,把其中一个面片用shader偏移一段距离就好了,就不会打架了。

    相关文章

      网友评论

        本文标题:2020-08-28unity3d 重叠面 图层抖动的解决方案,

        本文链接:https://www.haomeiwen.com/subject/ogblsktx.html