avatar

Hika

A blog focus on GameDev

  • 首页
  • 分类
  • 标签
  • 归档
  • 关于
首页 真机适配问题记录(二)
文章

真机适配问题记录(二)

发表于 2021/03/05
作者 lynx 2 分钟阅读

几乎每个版本,都有各种奇怪的引擎适配问题出现,手机还不能像PC那样给玩家装环境,什么时候手机系统和驱动标准能统一一下啊!🤣

华为手机大量像素无法渲染

Screenshot_20200929_172745_com.ztgame.daobatuURP

屏幕截图

机型:大部分华为手机,并且系统在Android9.0以下

表现:部分像素无法渲染出来,而且无法渲染的像素一直在动,不稳定。

原因:华为手机的OpenGL渲染驱动Bug,在华为Android9.0使用MSAA 4x以上并且启动HDR RT的情况下会导致问题,9.0以上的系统已解决。

解决方案:

  1. MSAA切换到4x以下
  2. 升级Android系统
  3. 切换到Vulkan

目前使用方案1解决。

华为机器下进入草原卡死

image2021-4-21_10-57-56

表现:GPU渲染错误,系统卡死,无法操作手机只能重启。

复现机器:mate20,honorv20,Android9.0

复现工程:

ShaderBug.rar :场景中有问题的模型和材质是石头,此时阴影距离为0,MainLightShadowCasterPass不会执行,_MainLightShadowmapTexture没有赋值

ShaderHuaweiBug.rar :最小复现场景,只有一个Shader,Shader在FS只调用了SampleCmpLevelZero,阴影距离为0,项目配置为线性空间,API为OpenGLES3,其他都是默认配置。

起因:TA替换了新的Pbr材质,该Pbr材质基于Unity BRDF1,因此阴影部分也是使用SAMPLE_TEXTURE2D_SHADOW/SampleCmpLevelZero采样深度/Shadowmap纹理。

原因:见ShaderHuaweiBug工程,华为机器下,使用SampleCmpLevelZero采样非深度纹理/未赋值深度纹理都会卡死,其他机器(测试小米9)正常。Gamma空间正常(Gamma使用OpenGLES2)。阴影距离大于1正常 。

都是由于MainLightShadowCasterPass没有执行,_MainLightShadowmapTexture没有赋值,使用SampleCmpLevelZero采样未赋值的深度纹理会在OpenGLES3下会卡死。

解决方案:_MainLightShadowmapTexture赋值的时候再采样,否则不进行阴影采样:

image2021-4-21_11-22-2

image2021-4-21_11-23-7

游戏, 引擎
本文由作者按照 CC BY 4.0 进行授权
分享

热门标签

游戏 动画 渲染 物理 网络
推荐博客
  •  iquilezles
  •  timlly cnblog
  •  catlikecoding
  •  therealmjp
  •  realtime-rendering-blog

文章内容

相关文章

2021/04/01

真机适配问题记录(三)

有些问题过去久远了,相关的bug单都找不到了,但是实在让人印象深刻,还是要记录一下滴~~ 在iOS中,雾在场景会闪烁 表现:在教堂场景中,打开雾效会闪烁。场景贴图跟雾有种Z-Fighting一样的表现。 原因:iOS中,PBR_Scene_DetailNormal.shader(实际代码在Scene_PBR.hlsl)的雾效的一段计算(ComputeFogFactor函数),在fr...

2022/02/15

UE4无法解析的外部符号的几种情况

1、模块缺少依赖 常见问题,再Build.CS添加上模块依赖即可,见 https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/BuildTools/UnrealBuildTool/ModuleFiles/ 2、使用没有被导出的类的情况 如图,继承UAnimGraphNode_SequencePlayer类 在子类调用...

2021/02/25

真机适配问题记录(一)

开发大量含有自定义天气、植被后处理等AAA材质的时候,难以避免有大量真机的GPU适配问题,在此记录一下一些棘手的问题,以供日后自己查阅,或者也能帮助到正在看此文章的您~ 草的花屏问题 出现机型:vivo X20A、魅族16TH、小米Mix2,都是高通骁龙机器 特征:草的颜色无法正常表现,各种颜色都有。 原因:在部分骁龙芯片中,同一个Shader的uniform不能超过32个。而草...

真机适配问题记录(一)

真机适配问题记录(三)

© 2023 lynx. 保留部分权利。

本站采用 Jekyll 主题 Chirpy

热门标签

游戏 动画 渲染 物理 网络

发现新版本的内容。