URP Shader FrameBuffer Fetch Mali Crash

本文讨论了在Unity中使用自定义Shader时遇到的MaliGPU不支持FrameBufferFetch导致的崩溃问题,以及模型LightmapUV的保存方式和切换模型后的光照贴图对齐问题。此外,还提到了动画上下半身融合时的抖动问题,以及AnimatorControllerPlayable.PrepareFrame函数的调用情况。社区专家提供了关于如何避免Shader问题、优化LightmapUV和理解动画混合策略的建议。

1)URP Shader FrameBuffer Fetch Mali Crash
​2)Unity模型Lightmap UV相关的疑问
3)动画上下半身融合问题
4)AnimatorControllerPlayable.PrepareFrame函数在什么情况下调用


这是第338篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

Shader

Q:使用FrameBuffer Fetch华为Mali设备编译Shader直接闪退,但是如果把纹理采样去掉就正常了,有遇到过这种问题的嘛?
Unity 2021.3.23
Custom SRP
Device : HUAWEI P40 --- Mali-G76
设备本身支持GL_EXT_shader_framebuffer_fetch。

Shader "unlit/test"
{
    Properties
    {
        _Color ("Main Color", Color) = (1,1,1,1)
        [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
    }
    SubShader
    {
        Tags
        {
            "Queue"="Transparent"
            "IgnoreProjector"="True"
            "RenderType"="Transparent"
            "PreviewType"="Plane"
            "CanUseSpriteAtlas"="True"
        }

        Pass
        {
            Name "ForwardLit"
            Tags {"LightMode" = "UniversalForward"}

            HLSLPROGRAM

            #define ENABLE_FRAMEBUFFER_FETCH 1

            #pragma vertex Vertex
            #pragma fragment Fragment

            #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"

            struct Attributes
            {
                float4 positionOS   : POSITION;
                float4 color        : COLOR;
                float2 texcoord     : TEXCOORD0;
                UNITY_VERTEX_INPUT_INSTANCE_ID
            };

            struct Varyings
            {
                float4 positionCS    : SV_POSITION;
                float4 texcoord      : TEXCOORD0;
                half4 color            : TEXCOORD2;
                UNITY_VERTEX_OUTPUT_STEREO
            };

            TEXTURE2D(_MainTex); SAMPLER(sampler_MainTex);

            CBUFFER_START(UnityPerMaterial)
            half4 _Color;
            CBUFFER_END      

    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值