¼¼ÇÇ¾Æ ¼ÎÀÌ´õ

¼¼ÇÇ¾Æ ÅæÀÇ ´À³¦À» ³ªÅ¸³»´Â ¼ÎÀÌ´õ¸¦ ¸¸µç´Ù.

¼¼ÇÇ¾Æ ÅæÀ̶õ?

»çÁøÀ» Çö»óÇÏ´Â ±â¹ý Áß¿¡ ¾à°£ ºÓ±×½º¸§ÇÏ°Ô °¥»ö ºûÀÌ ¶è´Ù.

¾ÕÀåÀÇ Èæ¹é ó¸®ÀåÀ» Âü°íÇؼ­ ·»´õ¸ùÅ° ÆÄÀÏ  ColorConversion2.rfx ÆÄÀÏÀ» ¼öÁ¤ ÇÒ °ÍÀÌ´Ù.

GrayScale Æнº¿¡¼­ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öÆ°À» ´­·¯ Copy¸¦ ¼±ÅÃÇÑ´Ù.
ColorConversion Æнº¿¡¼­ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öÆ°À» ´­·¯ Paste¸¦ ¼±ÅÃÇÑ´Ù.
Æнº À̸§Àº Sepia·Î ¹Ù²Û´Ù. 

GrayScaleÀº µðÁîºí ½ÃŲ´Ù.

GrayScale Æнº¿¡¼­ ¹Ù²ï ºÎºÐÀº Çȼ¿ ¼ÎÀÌ´õ¸¸ ¼öÁ¤ µÇ¾ú´Ù.

struct PS_INPUT
{
   float2 uv : TEXCOORD0;
};

sampler2D SceneSampler;

float4 ps_main( PS_INPUT input) : COLOR
{   
   float4 tex = tex2D( SceneSampler, input.uv);
   
   float4 sepia;
   
   sepia.a = tex.a;
   sepia.r = dot( tex.rgb, float3( 0.393f, 0.769f, 0.189f));
   sepia.g = dot( tex.rgb, float3( 0.349f, 0.686f, 0.168f));
   sepia.b = dot( tex.rgb, float3( 0.272f, 0.534f, 0.131f));
   
   return sepia;
}

¸¶ÀÌÅ©·Î½º¼ÒÇÁÆ®°¡ ±ÇÇÏ´Â °ø½ÄÀº ´ÙÀ½°ú °°´Ù.

R = R * 0.393 + G * 769 + B * 0.189
G = R * 0.349 + G * 686 + B * 0.168
B = R * 0.272 + G * 534 + B * 0.131

°ø½ÄÀ» ÄÚµå·Î Ç¥ÇöÇÏ¸é ´ÙÀ½°ú °°´Ù.

sepia.r = tex.r * 0.393 + tex.g * 769 + tex.b * 0.189
sepia.g = tex.r * 0.349 + tex.g * 686 + tex.b * 0.168
sepia.b = tex.r * 0.272 + tex.g * 534 + tex.b * 0.131

³»ÀûÀ» »ç¿ëÇÏ¿© Ç¥ÇöÇÏ¸é ´ÙÀ½°ú °°´Ù.

sepia.r = dot( tex.rgb, float3( 0.393f, 0.769f, 0.189f )); 
sepia.g = dot( tex.rgb, float3( 0.349f, 0.686f, 0.168f ));   
sepia.b = dot( tex.rgb, float3( 0.272f, 0.534f, 0.131f ));

´Ù¿î·Îµå : (¼¼ÇǾÆ)ColorConversion3.rfx