【Unity】开启MSAA后模型出现网格黑线的问题

问题:角色的模型,在开启MSAA后,某些视角下会出现模型网格黑线的问题。

经过很多尝试后,最终的问题锁定在Shader中Pow函数的计算上。

Pow函数的效率低下,每一遍的运算都会丢失精度,这会导致一些边界值,比如一个向量点击运算接近0或者1的数值,在计算过程中由于精度丢失比较严重出现数值越界问题。

曲线解决方式是将运算的参数+/-上一个较小的浮点数值,在一定程度上抵消运算过程中的精度丢失。

至于为什么这个问题在开启MSAA后才会出现,需要研究一下MSAA的具体实现方式。

时间: 2024-08-19 14:05:33

【Unity】开启MSAA后模型出现网格黑线的问题的相关文章

Unity3D修改模型的网格数据

[狗刨学习网] 模型导入unity后,可以使用unity的Inspector面板对模型在某个坐标轴上进行平移.旋转和缩放操作(如图1).  图 1 Inspector面板提供功能是所见即所得的,调整后立刻可以看到效果,相当的方便.但是这些功能还不能完全满足游戏开发的要求,比如为了减轻美工的工作量一些游戏对场景中的模型标准作出了一些规定,使这些模块化的小模型能按照一定的规律拼接成丰富多样的大模型.拼接过程往往要对模型的local coordinates进行调整才能最终形成一个"无缝"的大

Unity 3d导入3dMax模型 产生若干问题

Unity 3d导入3dMax模型 会产生若干问题,按照官方 的说明,将max 模型导成fbx文件 导入untiy似乎也不能解决 1.x轴向偏转3dmax模型导入后自动有一个x轴270度的偏转,巧合的是,在unity中旋转模型的时候,你会发现y轴参照方向永远朝上,而x和z轴则以模型本身的 局部坐标 为准,这样当模型沿x轴旋转270度之后,z轴正好与y轴重合,这样你试图用程序 控制方向的时候就会发现旋转y和旋转z效果 相同,这显然不是你期望的结果.解决这个问题的方法是,将.max文件导出为.3ds

Unity Shader 屏幕后效果——Bloom外发光

Bloom的原理很简单,主要是提取渲染图像中的亮部区域,并对亮部区域进行模糊处理,再与原始图像混合而成. 一般对亮部进行模糊处理的部分采用高斯模糊,关于高斯模糊,详见之前的另一篇博客: https://www.cnblogs.com/koshio0219/p/11152534.html 计算方法: 总共需要用到4个Pass,它们的顺序如下: Pass 1:得到纹理的亮度值(灰度值),由此计算出亮部区域,传递给一个临时的新纹理,这里叫_Bloom Pass 2,3:单独对_Bloom进行高斯模糊(

IIS开启伪静态后html静态页面无法访问的解决方法

IIS开启伪静态后,发现原本存在的html静态页面无法访问了,显示的404错误.网上查了下,是因为实现伪静态就是使用 URLRewriter 来映射后缀,会把asp等动态页面映射成html,但是原来存在的html静态页面也被定义的规则映射到其它页面了,所以找不到页面而无法访问. 有一个很简单的方法就是将html页面的后缀名改成htm,或者是把映射的规则改成映射为htm,总之就是把我们的伪静态页面和真正的静态页面分别用html和htm区分开来,但这只是治标不治本的方法. 最好的方法就是修改伪静态规

unity Android 打包后读取 xml 文件

问题:    前天在做东西的过程中发现了一个让人很纠结的问题,为什么Unity 程序在PC上测试一点都没问题但是打包发布到Android后却无法读取XML文件. 通过查找自资料发现打包发不到安卓后的路径和PC上测试时的路径发生了变化,因此读取就出bug了. 那么解决方法很简单: 1,建立一个新工程 2,添加两个GUItext组件一个用于显示测试平台另一个用于显示读取到的XML数据, 如下: 3,该贴代码了 //-------------------------------------------

Tomcat 开启HTTPS 后爆发SSL相关漏洞解决方法

最近用绿盟扫描系统进行全网系统扫描,有几台设备被扫出了SSL相关漏洞,在此做一个简短的笔记. 本次涉及漏洞 1.漏洞名称:SSL 3.0 POODLE攻击信息泄露漏洞(CVE-2014-3566)[原理扫描] 2.SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808)[原理扫描] 知识普及1:SSL协议要点 SSL(Secure Sockets Layer 安全套接层)是一种基于Web应用的安全通信协议,最早由Netscape(网景)公司提出.SSL介于TCP协议

Unity 触屏缩放模型

现在的手机都是触屏控制的,那么在游戏中我们想通过手指在屏幕上滑动捕获相应的动作呢?Unity官网API中提供了Input类和Touch类,在该类里提供了许多接口.相信只要我们稍微看下,就可以自己应用了!下面以模型的旋转与缩放为例,学习下是如何实现多点触控的! 1,打开Unity建一个空的项目工程. 2,以系统提供的模型为例,此处只做逻辑测试. 3,新建控制类脚本ScaleAndRotate.cs using UnityEngine; using System.Collections; using

Vue-loader 开启压缩后的一些坑

在使用vue-loader 配合webpack 对.vue文件进行加载的时候,如果开启了代码压缩会出来下面几种问题,做个记录. 丢失td结束标记,导致页面的布局错乱 input的属性type为text 时会被删了 <input ... checked="{check('id')}" />这个表达式会被压成 <input ... checked /> 丢失td结束标记 <table> <tr> <td>1</td>

【Unity】第12章 导航网格和寻路

开发环境:Win10.Unity5.3.4.C#.VS2015 创建日期:2016-05-09 一.简介 NavMesh(导航网格)是3D游戏世界中用于实现"动态"物体自动寻路的一种技术,它将游戏场景中复杂的结构组织关系简化为带有一定信息的网格,在这些网格的基础上,再通过一系列相应的计算,实现自动寻路最终找到目标. Unity可以根据编辑的场景,自动生成用于导航的网格.导航时,只需要给被导航的物体挂载导航组件,该物体便会自行根据导航的目标点来寻找最合适的路线,并沿着该路线行进到目标点.