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

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

被折叠的 条评论
为什么被折叠?



