真机适配问题记录(三)
有些问题过去久远了,相关的bug单都找不到了,但是实在让人印象深刻,还是要记录一下滴~~
在iOS中,雾在场景会闪烁
表现:在教堂场景中,打开雾效会闪烁。场景贴图跟雾有种Z-Fighting一样的表现。
原因:iOS中,PBR_Scene_DetailNormal.shader(实际代码在Scene_PBR.hlsl)的雾效的一段计算(ComputeFogFactor函数),在fragment shader中会有浮点数精度问题。
解决方案:把ComputeFogFactor的计算移到vertex shader。
模拟器下后处理显示全黑
表现:如图
原因:URP的bug,只在模拟器上才会出现。URP的pass在某些情况(具体未知),在模拟器上,CopyTexture会无法复制纹理。
解决方案:使用Blit代替
模拟器场景的lightmap显示花屏不正常
表现如图:lightmap混合过的贴图会显示花屏
原因:模拟器(上面是夜神)对于支持ASTC并且包含HDR字节位的贴图支持有bug
解决方案: 1、把lightmap贴图改成没有HDR字节位的纹理格式(ASTC HDR 6x6改成ASTC 6x6),但是场景会有差异。版署版本就是临时使用这种方法 2、模拟器关闭ASTC纹理支持选项:
部分真机出现的短暂花屏/黑屏问题
表现:切换/打开某界面(场景)时,出现短暂的的花屏/黑屏
原因:切换真机的时候,有可能启用了UIBase的延迟打开,同时UIBase也会在全屏界面的时候把CullingMask设置为仅UI,导致有些人会把主摄像机关闭,而打开自己的摄像机又有延迟了,会出现有几帧出现没有摄像机渲染的情况,Editor正常真机才会出现。
解决方案:处理逻辑代码,不要出现没有渲染帧的情况。
本文由作者按照 CC BY 4.0 进行授权