이상한 유니티 쉐이더버그?

v2f vert(appdata_full v)
{

o.pos = mul(UNITY_MATRIX_MVP,v.vertex);
o.uv = v.texcoord;
float3 normal = mul(_Object2World,v.normal.xyz);
float3 tangent = mul(_Object2World,v.tangent.xyz);
float3 binormal = cross(normal,tangent);
float3x3 tangentspace = (float3x3) 0;

tangentspace[0] = binormal;
tangentspace[1] = -tangent;
tangentspace[2] = normal;

o.lightDir = mul(tangentspace,_WorldSpaceLightPos0.xyz);
return o
}

float4 frag(v2f i ):COLOR
{
float3 normal = UnpackNormal(tex2D(_normalTex,i.uv));
return dot(i.lightDir,normal);
}

하면 pc에선 정상으로 나오지만 안드로이드 빌드시 까맣게 나온다.
테스트 해보니 행렬의 항에 대입한 값이 문제가 생긴거 같은데

float3x3 tangentspace = float3x3(binormal,-tangent,normal);
로 생성자로 만드니까 해결 되었다. 

기묘한 버그인듯. 


원더러. PL 1

테스트


1 2 3 4 5 6 7 8 9 10 다음



메모장

Junhyuck Park
(PN/pakdragon,pakk)
MALE E-mail:pakdragon57@gmail.com