텍스쳐와 AO가있는 오브젝트를 만들었습니다. 그것들은 Maya (Layered Texture)의 다른 UV 세트에 있으며 마야에서는 매시가 괜찮아 보입니다.유니티 3D 다중 UV 세트
Unity3D에서 어떻게 동일한 효과를 얻을 수 있습니까?
두 번째 UV 세트를 사용할 수 없습니다.
텍스쳐와 AO가있는 오브젝트를 만들었습니다. 그것들은 Maya (Layered Texture)의 다른 UV 세트에 있으며 마야에서는 매시가 괜찮아 보입니다.유니티 3D 다중 UV 세트
Unity3D에서 어떻게 동일한 효과를 얻을 수 있습니까?
두 번째 UV 세트를 사용할 수 없습니다.
이렇게하는 셰이더를 작성해야합니다. 아주 최소한의 예가 있지만 specular 등의 것들을 좀 더 정교하게 설정할 필요가 있습니다.
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"
}
감사합니다. :) – eblue
더 많은 정보를 필요로하는 사람들을 위해 메쉬에서 2 번째 UV 세트를 사용하고 intencity를 제어하기 위해 슬라이더를 추가했습니다 (floow2 uv_AoTex 변경 : TEXCOORD1; -> float2 uv2_AoTex : TEXCOORD1; half4 ao = tex2D (_AoTex, IN.uv_AoTex.xy);) -> half4 ao = tex2D (_AoTex, IN.uv2_AoTex.xy);) – eblue
방금 내가 알파 채널을 읽는 것으로 나타났습니다. 그것은 "#pragma surface surf Lambert alpha"이지만 전체 메쉬는 반투명합니다. 링크는 다음과 같습니다 (http://imageshack.us/a/img849/6179/dml8.jpg). 권리에는 Ao가 없습니다. – eblue
Light2D를 제외한 다른 어떤 것에도 Unity2의 내장 쉐이더는 UV2를 사용하지 않습니다. 자신 만의 셰이더를 작성해야합니다. – Jessy
Unity Asset Store에는 많은 셰이더가 있습니다. 이미 AO에 UV2를 사용하는 것이 가능합니다. 약간의 비용이 들지만, 셰이더 프로그래밍을 배우는 데 투자하는 것보다 비용이 적게 듭니다. (이것은 버텍스 AO 지원 https://www.assetstore.unity3d.com/#/content/8880을 언급합니다. 당신이 원하는 것을 확인하기 위해 연락 할 수 있습니다.) – Calvin