µðÅ×ÀÏ ¸ÅÇÎ(Detail Mapping)

 °üÂûÀÚ¿¡¼­ °¡±îÀÌ Àִ ǥ¸é¿¡ µðÅ×ÀÏ ¼öÁØÀ» ÷°¡Çϱâ À§Çؼ­ ¸ÖƼ ÅؽºÃĸ¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, º®µ¹ º®ÀÌ ÀÖÀ» ¶§ ÀÌ º®µ¹º®À» °¡±îÀÌ º¸¸é º®µ¹ º®ÀÌ °ÅÄ¥ °Ô º¸À̵µ·Ï Çϱ⸦ ¿øÇÒ °ÍÀÌ´Ù. ÀÌ¿Í °°Àº È¿°ú¸¦ ¾ò±â À§Çؼ­, ¹üÇÁ ¸ÅÇÎÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â »ç½Ç¿¡ ÀÏ´Ü ½Å°æÀ» ¾²Áö ¸»¾Æ¶ó. µðÅ×ÀÏ ¸Ê°ú ¹üÇÁ ¸ÅÇÎÀº °°Àº ¸ñÀûÀ» °¡Áø´Ù.

µðÅ×ÀÏ ¸ÅÇÎÀÌ µé¾î°¡°Ô µÇ¸é Å« ÅؽºÃĸ¦ »ç¿ëÇÑ °Í°ú °°Àº È¿°ú¸¦ ³¾ ¼ö ÀÖ´Ù.
´ÙÀÌ·ºÆ® Input¿¡ ´ëÇؼ­´Â ÀÚ¼¼ÇÏ°Ô ¼³¸íÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.
Å°º¸µå »ç¿ë¹æ¹ý¸¸ ¼³¸í ÇÏ°Ú´Ù.

È­»ìÇ¥ Up Key: º®µ¹ ¿ÀºêÁ§Æ®¸¦ È®´ëÇÑ´Ù.
È­»ìÇ¥ Down Key: º®µ¹ ¿ÀºêÁ§Æ®¸¦ Ãà¼ÒÇÑ´Ù.
½ºÆäÀ̽º Key: µðÅ×ÀÏ ¸ÅÇÎÀ» On/Off Åä±ÛÇÑ´Ù.

                           

1) ¹öÅؽº ±¸Á¶Ã¼ ¹× ŸÀÔ ¼±¾ð

µðÅ×ÀÏ ¸ÊÀÌ ÇÊ¿äÇϱ⠶§¹®¿¡ 2°³ÀÇ ÅؽºÃÄ°¡ ÇÊ¿äÇÏ´Ù.

Çϳª´Â º£À̽º ¸ÊÀÌ°í , ¶Ç ´Ù¸¥ Çϳª´Â µðÅ×ÀÏ ¸ÊÀÌ´Ù.
g_z´Â Ä«¸Þ¶óÀÇ À§Ä¡ zÃà¿¡¼­ÀÇ °ªÀÌ´Ù.
g_bDetailÀº µðÅ×ÀÏ ¸ÅÇÎÀ» On/Off °ªÀ» ³ªÅ¸³½´Ù.
g_bSpace´Â ½ºÆäÀ̽ºÅ°¸¦ ´­·¶À» ¶§ ¿¬¼ÓÀ¸·Î ´­·ÁÁöÁö ¾Êµµ·Ï ÇÑ´Ù.

2) ¹öÅؽº ¹öÆÛÀÇ ÃʱâÈ­.

ÅؽºÃÄ¿¡ ´ëÇÑ ÇÊÅ͸µ ¹æ¹ýÀÌ´Ù. 8.x°ú 9.xÀÌ Â÷ÀÌ°¡ ÀÖ´Ù.

        //8.X¿¡¼­ »ç¿ëµÇ´Â ¿É¼ÇÀ¸·Î ¿¹Á¦¿¡¼­ »ç¿ëÇÏ°í ÀÖ´Â ¿É¼ÇÀÌ´Ù.

        g_pd3dDevice->SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR);        
        g_pd3dDevice->SetTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_LINEAR);
        g_pd3dDevice->SetTextureStageState(1, D3DTSS_MAGFILTER, D3DTEXF_LINEAR);
        g_pd3dDevice->SetTextureStageState(1, D3DTSS_MINFILTER, D3DTEXF_LINEAR);
        g_pd3dDevice->SetTextureStageState(0, D3DTSS_MIPFILTER, D3DTEXF_LINEAR);
        g_pd3dDevice->SetTextureStageState(1, D3DTSS_MIPFILTER, D3DTEXF_LINEAR);

        //9.X¿¡¼­ »ç¿ëµÇ´Â ¿É¼ÇÀÌ´Ù.

        g_pd3dDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);   
        g_pd3dDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
        g_pd3dDevice->SetSamplerState(1, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
        g_pd3dDevice->SetSamplerState(1, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
        g_pd3dDevice->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR);
        g_pd3dDevice->SetSamplerState(1, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR);

ÅؽºÃÄÀÇ ÇÊÅÍ¿¡ ´ëÇÑ ¼³Á¤À» ÇÑ´Ù.

MYVERTEXÀÇ ±¸Á¶Ã¼ Çʵå du, dv°ªÀ» º¸¸é 10.0fÀÌ µé¾î°£´Ù. º£À̽º ÅؽºÃ¼¿¡ µðÅ×ÀÏ ÅؽºÃÄ°¡ 10¹ø ¹Ýº¹µÈ´Ù.

3) ·»µå¸µ

 

D3DTA_TEXTURE: Direct3D´Â ÀÔ·ÂÀ¸·Î ÅؽºÃĸ¦ »ç¿ëÇÑ´Ù. Áï Direct3D´Â ÀÔ·ÂÀ¸·Î(SetTextureÈ£ÃâÇÔÀ¸·Î½á) ÁöÁ¤ÇÑ ÅؽºÃÄÀÇ Àû´çÇÑ Åؼ¿ÀÇ »ö»óÀ» »ç¿ëÇÑ´Ù.

D3DTOP_SELECTARG1: ÅؽºÃÄ ½ºÅ×ÀÌÁöÀÇ Ã¹ ¹ø° ÀÔ·ÂÀ» º¯°æÇÏÁö ¾Ê°í Ãâ·ÂÀ¸·Î »ç¿ëÇÑ´Ù´Â °ÍÀ» ¾Ë·ÁÁØ´Ù.

D3DTA_CURRENT: Direct3D´Â ÀÔ·ÂÀ¸·Î Àü ´Ü°è ÅؽºÃÄ ½ºÅ×ÀÌÁöÀÇ Ãâ·ÂÀ» »ç¿ëÇÑ´Ù.

D3DTOP_MODULATE2X ¿¬»êÀ» ÇÏ¸é µÎ Åؼ¿°ªÀ» °öÇÑ °á°ú¿¡ 2¸¦ ´õ °öÇϱ⠶§¹®¿¡ ´õ ¹à¾ÆÁø´Ù.

4) ¼Ò¸ê

g_pDetailMapÀ» ÇØÁ¦ÇÑ´Ù.

Ãâó: [Æß]Çߴµ¥ ¾ç½Éµµ ¾øÀÌ Àڱ⠱ÛÀξç Ãâóµµ ¹àÈ÷Áö ¾Ê´Â´Ù°í Çù¹Ú ´çÇÒ±îºÁ Áö±Ý ºÎÅÍ¶óµµ Ãâó¸¦ ¸í½ÃÇÏ°Ú´Ù.   

¼Ò½º http://monster3d.freeweb.hu/Tutorial/tutorial7.htm
Special EFFECTS Game Programming With DirectX(¹Î ÇÁ·¹½º)