2

テクスチャと AO を持つオブジェクトを作成しました。それらは Maya の異なる UV セット (レイヤ テクスチャを使用) にあり、Maya ではマッシュは問題ないように見えます。

Unity3D で同じ効果を得るにはどうすればよいですか?

ユニティに2つ目のUVセットを使用させることができません。

4

1 に答える 1

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"
    }
于 2013-10-04T01:33:40.497 に答える