检测UNITY_MATRIX_MV使用

问题描述 投票:0回答:1

我把从互联网广告牌着色器,但我有说这个警告信息“在“自定义/广告牌着色器警告:。UNITY_MATRIX_MV的使用检测要变换顶点进入视野的空间,可以考虑使用UnityObjectToViewPos有更好的表现”

我不知道如何正确使用新功能的代码。这里是着色器:

Shader "Custom/Billboard"
{
    Properties{
       _MainTex("Texture Image", 2D) = "white" {}
       _ScaleX("Scale X", Float) = 1.0
       _ScaleY("Scale Y", Float) = 1.0
    }
        SubShader{
           Tags{"Queue" = "Transparent" "RenderType" = "Transparent" }
           Pass{
           CGPROGRAM
           #include "UnityCG.cginc"
           #pragma vertex vert  
           #pragma fragment frag

           uniform sampler2D _MainTex;
           uniform float _ScaleX;
           uniform float _ScaleY;

           struct vertexInput {
              float4 vertex : POSITION;
              float4 tex : TEXCOORD0;
           };

           struct vertexOutput {
              float4 pos : POSITION;
              float4 tex : TEXCOORD0;
           };

           vertexOutput vert(vertexInput input)
           {
              vertexOutput output;

              output.pos = mul(UNITY_MATRIX_P,
                 mul(UNITY_MATRIX_MV, float4(0,0,0,1))
                 + float4(input.vertex.xyz, 0));

              output.tex = input.tex;

              return output;
           }

           float4 frag(vertexOutput input) : COLOR
           {
              return tex2D(_MainTex, float2(input.tex.xy));
           }

           ENDCG
        }
       }
}
unity3d shader
1个回答
0
投票

你真的不需要做任何事情。如果你想,虽然改变它,如果没有别的只是为了警告消失,可以更换此:

mul(UNITY_MATRIX_MV, float4(0,0,0,1))

有了这个:

UnityObjectToViewPos((float3)0)
© www.soinside.com 2019 - 2024. All rights reserved.