• 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 镜头污迹的强度

  • 相关阅读:
    【模型压缩】模型剪枝模块
    linux下C程序查看内存剩余大小
    UE4 第一人称角色模板 添加生命值和调试伤害
    AVL 树
    MySQL 表分区简介
    实现upt下客户端用tftp文件传输协议编写客户端发送下载文件
    Jupyter 介绍
    Matlab/Simulink Coder: 代码生成中的数据处理类型控制
    基于MATLAB的语音信号处理系统的设计
    从零开始:制作出色的产品原型图的详细教程
  • 原文地址:https://blog.csdn.net/a0_67/article/details/128163312