돼지 저금통 MYPI

돼지 저금통
접속 : 2148   Lv. 36

Category

Profile

Counter

  • 오늘 : 2081 명
  • 전체 : 2585645 명
  • Mypi Ver. 0.3.1 β
[일반] 쉐이더 코딩 아시는분 계신가요 (2) 2019/06/26 PM 12:07

img/19/06/26/16b91be441d4e2df2.png

 

또 다른 다이렉트 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);

 

이런식으로 해도 오류 뿜어내고 안되는데 왜 그럴까

 

뭐라고 적어야 하죠?

 

 

 

신고

 

왕사기    친구신청

float4와 float3을 dot 연산해서일까요?

잉그람    친구신청

FinalColor.rgb = dot(FinalColor.rgb , GrayScale);
요렇게 해보시면 어떨까요.
FinalColor 는 float4 형이고, GrayScale 은 float3 형이라 형 불일치가 발생해서 에러가 나는 것 같네요.
X