Unity 3D多个UV套装

时间:2013-10-02 12:05:33

标签: import unity3d maya

我创建了一个具有纹理和AO的对象,它们位于maya中的不同UV集(带有分层纹理),而maya中的mash看起来没问题。

我如何在Unity3D中实现相同的效果?

我无法统一使用第二套UV。

1 个答案:

答案 0 :(得分:4)

您需要编写一个执行此操作的着色器。这是一个非常小的例子,但你可能需要对镜面反射等进行更精细的设置。

    Shader "Custom/twotex" {
        Properties {
            _MainTex ("Base (RGB)", 2D) = "white" {}
            _AoTex ("AO (RGB)", 2D) = "white" {}

        }
        SubShader {
            Tags { "RenderType"="Opaque" }
            LOD 200

            CGPROGRAM
            #pragma surface surf Lambert

            sampler2D _MainTex;
            sampler2D _AoTex;


            struct Input {
                float2 uv_MainTex : TEXCOORD0;
                float2 uv_AoTex :   TEXCOORD1;
            };

            void surf (Input IN, inout SurfaceOutput o) {
                half4 c = tex2D (_MainTex, IN.uv_MainTex.xy);
                half4 ao = tex2D (_AoTex, IN.uv_AoTex.xy);
                o.Albedo = c.rgb * ao.rgb;
                o.Alpha = c.a;
            }
            ENDCG
        } 
        FallBack "Diffuse"
    }