新的统一版本中的CG标准功能(2018.3)

时间:2019-05-21 03:23:07

标签: unity3d shader

我找不到tex2D(sampler2D tex , float2 sz , float2 dsdx , float2 dsdy) Unity3D中的此功能(2018.3) 在哪里可以找到它?

我阅读了Unity3D手册,但找不到它。 我在nvidia的有关CG API的网站上找到了此功能

这里是链接 https://developer.download.nvidia.cn/CgTutorial/cg_tutorial_appendix_e.html

Api告诉我该函数是cg标准函数,但是在“ UnityCG.cginc”和“ UnityStandardCore.cginc”中找不到,并且内置函数中不存在。

    Pass
    {


        CGPROGRAM

        #pragma target 3.0

        #pragma vertex vert
        #pragma fragment frag            

        #define UNITY_SHADER_NO_UPGRADE 1

        #include "UnityCG.cginc"
        //#include "UnityStandardCore.cginc"


        struct v2f
        {
            float4 position : POSITION; 
            float2 uv : TEXCOORD0;

        };

        sampler2D _MainTex;
        float4 _MainTex_ST;


        float _Scale;
        //sampler2D unity_Lightmap;
        //float4 unity_LightmapST;


        v2f vert(appdata_full v)            
        {
            v2f o;

            o.position = mul(UNITY_MATRIX_MVP,v.vertex);



            o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);




            return o;
        }

        fixed4 frag(v2f IN) : COLOR
        {

            float scale = 0.01;

            fixed4 col = tex2D(_MainTex,IN.uv,float(scale,scale),float(scale,scale));

            return col;
        }


        ENDCG
    }

1 个答案:

答案 0 :(得分:0)

问题解决了! 谢谢 参数是错误的。 tex2D(_MainTex,IN.uv,float(scale,scale),float(scale,scale)) 它是float2,不是float