또 다른 다이렉트 X 예제를 공부중인데
float4 PS( VS_OUTPU\T In ) : COLOR
{
float3 L = In.L;
float3 N = In.N;
float3 V = In.V;
float2 uv = In.T;
float NdotL = saturate( dot( N, L ) );
float3 R = normalize(2 * NdotL * N - L);
float RdotV = saturate( dot( R, V ) );
float4 fvBaseColor = tex2D( baseMap, uv );
float4 Ambient = 0.2f;
float4 Diffuse = fvBaseColor * NdotL;
float4 Specular = pow( RdotV, fSpecularPower );
float4 FinalColor = Ambient + Diffuse + Specular;
float3 GrayScale = float3(0.3, 0.59, 0.11);
FinalColor.rgb = FinalColor.rgb; //★ 이곳의 코드를 수정
return FinalColor;
}
저걸 흑백으로 바꿔라 인데...
좀 찾아 보니 흑백으로 바꾸는 쉐이더 코드는 대부분
c1 = color RGB
c2 = (0.3,0.59,0.11)
grayscale = dot(c1,c2)
이런식이던데
FinalColor.rgb = dot(FinalColor , GrayScale);
이런식으로 해도 오류 뿜어내고 안되는데 왜 그럴까
뭐라고 적어야 하죠?