• PC辉光效果一切正常,安卓辉光却没效果、显示异常(爆闪、黑屏等)


    一:安卓端辉光不显示问题

    问题描述:项目中使用unity的PostProcessing package实现辉光的功能,在pc上辉光效果一切正常,但是打出apk在真机测试时,辉光基本没效果。
    解决思路:PostProcessing Bloom效果需要有HDR支持才能正确显示。项目切到安卓平台时,Unity的Graphics使用的是默认设置,是不支持HDR的:
    在这里插入图片描述
    此时需要手动勾选HDR,并将HDR模式设置成FP16
    在这里插入图片描述
    上图中HDR Mode支持的纹理格式:
    FP16:ARGBHalf,每个通道16bit,带Alpha通道。
    R11G11B10:一个像素32bit,R11bit,G11bit,B10bit,不带Alpha通道。

    上图中Tier1、Tier2、Tier3分别对应着低中高三档手机(手机显示配置的档次),根据自己项目需求去设置对应的tier就可以;

    而在pc端一切正常是因为pc配置高,默认hdr就都是全勾选的。

    然后打包测试,问题解决,真机也可以有正确的辉光了。

    二:安卓端辉光显示异常(爆闪、黑屏等)

    问题描述:使用PostProcessing的bloom,在安卓端有些材质显示正常,有些材质辉光显示不正常,具体表现为:配置低的手机显示会闪黑色方块、辉光效果曝的很严重,配置高一些的手机不会闪黑色方块,辉光只会曝的很严重。这些问题在pc端就都没有,一切正常。
    解决思路:检查出问题的材质,看看shader是否在安卓端出现了非法值(NaN),因为PC的显卡配置够高,实际上都是 float 格式,没有低精度的 half 格式,安卓配置低,可能会出现上述情况。
    当项目中该过shader后,在安卓端显示一切都正常了。

    三:总结

    翻阅了相关资料,当使用bloom时,开发项目需注意:
    1、写shader时需注意安卓端可能出现NaN的情况;
    2、在配置场景辉光时,需注意场景中HDR材质的使用,及bloom参数的设置;
    在这里插入图片描述

    Intensity 柔光效果的强度
    Threshold 设置一个阈值,高于阈值的亮度可以产生柔光。我一般设置为1(根据项目走)
    Soft Knee 在阈值上下做渐变调整
    Clamp 控制产生画面柔光的像素数量,我一般设置为2(根据项目走)
    Diffusion 设置面纱效果的扩散(Scatter),独立于屏幕分辨率
    Anamorphic Ratio 模拟一种镜头变形效果,设置柔光的扩散方向
    [-1,0]代表在垂直方向扩展,[0,1]代表在水平方向扩散
    Color 柔光滤镜的色调
    Fast Mode 通过降低柔光的质量来提高性能
    Texture 在镜头上添加脏斑和污迹的贴图(自己玩一下就知道什么效果了)
    Intensity 镜头污迹的强度

  • 相关阅读:
    ElasticSearch8 8.3.0 安装 + kibana8.3.0 linux系统安装详细流程
    基于JAVA学生信息管理和新生报到系统(Springboot框架) 开题报告
    LeSS敏捷框架高效生产力实践
    利用python为你集成三方apk里的lib时自动生成Android.bp
    RK3568开发板评测篇(二):开发环境搭建
    【随想】闲聊、沟通和谈判
    网络入侵检测 Network Intrusion Detection System (NIDS)
    Intel@cpu产品参数和命名@单核睿频和全核睿频
    作用域,基本数据类型(常量const),转义字符,单引号与双引号,运算符
    【vSphere 8 自签名证书】企业 CA 签名证书替换 vSphere Machine SSL 证书Ⅰ—— 生成 CSR
  • 原文地址:https://blog.csdn.net/a0_67/article/details/128163312