본문으로 바로가기

Unity Surface LightDir

category Technical Report/Unity Shader 2019. 2. 23. 00:37
반응형



Surface Shader에서 라이트 벡터를 확인하는 방법은 surface에서는 lightDir로 정의되어 있다고 하지만


픽셀 셰이더에서



o.Albedo = lightDir;



이렇게 하면 당연히 에러를 뿜는다. surface에서 라이트 벡터를 컬러로 확인하려면



o.Emission = _WorldSpaceLightPos0;



이렇게 하던가



   half4 LightingUnlit(SurfaceOutput s, half3 lightDir, half atten)[각주:1]

{

    half3 le = lightDir;
    half4 c;

    c.rgb = s.Albedo * le;
    c.a = s.Alpha;

    return c;
}

 

o.Albedo = fixed3(1,1,1);



낮에 설명하다 나도 헷갈려서....ㅋ








  1. noambient로 ambient color를 막아줘야 한다. [본문으로]
반응형