Microsoft DirectX 9.0

¾ËÆÄ ½ÇÇè ½ºÅ×ÀÌÆ®


C++ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­´Â, ¾ËÆÄ ½ÇÇèÀ» »ç¿ëÇØ, ¾ðÁ¦ Çȼ¿À» ·»´õ¸µ Ÿ°Ù Ç¥¸é¿¡ ±âÀÔÇÏ´ÂÁö¸¦ Á¦¾îÇÑ´Ù. D3DRENDERSTATETYPE ¿­°ÅÇü ·»´õ¸µ ½ºÅ×ÀÌÆ®¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î, ¾ÖÇø®ÄÉÀ̼ǿ¡¼­´Â, ¾ËÆÄ Å×½ºÆ® ÇÔ¼ö¿¡ ±Ù°ÅÇØ °¢ Çȼ¿À» Å×½ºÆ®ÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ) ÇöÀçÀÇ Microsoft® Direct3D® ÀåÄ¡¸¦ ¼³Á¤ÇÑ´Ù. Å×½ºÆ®°¡ ¼º°øÇϸé Çȼ¿ÀÌ Ç¥¸é¿¡ ½áÁø´Ù. Å×½ºÆ®°¡ ½ÇÆÐ Çϸé, Direct3D ´Â Çȼ¿À» ¹«½ÃÇÑ´Ù. ¾ËÆÄ Å×½ºÆ® ÇÔ¼ö´Â,D3DRS_ALPHAFUNC ·»´õ¸µ ½ºÅ×ÀÌÆ®·Î ¼±ÅÃÇÑ´Ù. D3DRS_ALPHAREF ·»´õ¸µ ½ºÅ×ÀÌÆ®¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î, ¾ÖÇø®ÄÉÀ̼ǿ¡¼­´Â, ºñ±³ÇÏ´Â ¸ðµç Çȼ¿¿¡ ÂüÁ¶ ¾ËÆÄ°ªÀ» ¼³Á¤ÇÑ´Ù.

¾ËÆÄ ½ÇÇèÀº, º¸Åë, Åõ¸íÇÏ°Ô °¡±î¿î °³Ã¼¸¦ ·¡½ºÅÍÈ­ÇÒ ¶§ÀÇ ÆÛÆ÷¸Õ½º¸¦ °³¼±Çϱâ À§Çؼ­ »ç¿ëÇÑ´Ù. ·¡½ºÅÍÈ­ÇÏ´Â Ä÷¯ µ¥ÀÌÅͰ¡ ÁöÁ¤ÀÇ Çȼ¿ (D3DPCMPCAPS_GREATEREQUAL)º¸´Ù ºÒÅõ¸íÇÏ°Ô °¡±î¿î °æ¿ì, Çȼ¿ÀÌ ½áÁø´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì´Â, ·¡½ºÅͶóÀÌÀú´Â Çȼ¿À» ¹«½ÃÇØ, 2 »öÀÇ ºí·»µå¿¡ ÇÊ¿äÇÑ Ã³¸®¸¦ »ý·« ÇÑ´Ù. ´ÙÀ½ »ùÇà ÄÚµå´Â, ÁöÁ¤µÈ ºñ±³ ÇÔ¼ö°¡ Áö¿ø µÇ°í ÀÖ´ÂÁö¸¦ Á¶»çÇϰí ÀÖ´Ù. Áö¿ø µÇ°í ÀÖ´Â °æ¿ì´Â, ·»´õ¸µÀÇ ÆÛÆ÷¸Õ½º °³¼±¿¡ ÇÊ¿äÇÑ ºñ±³ ÇÔ¼öÀÇ ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤ÇÑ´Ù.

// This code example assumes that pCaps is a
// D3DCAPS9 structure that was filled with a 
// previous call to IDirect3D9::GetDeviceCaps.

if (pCaps.AlphaCmpCaps & D3DPCMPCAPS_GREATEREQUAL)
{
    dev->SetRenderState(D3DRS_ALPHAREF, (DWORD) 0x00000001);
    dev->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE); 
    dev->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);
}

// If the comparison is not supported, render anyway.  
// The only drawback is no performance gain.

¸ðµç Çϵå¿þ¾î°¡ ¾ËÆÄ ½ÇÇè ±â´ÉÀ» Áö¿ø Çϰí ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. ÀåÄ¡ ±â´ÉÀ» Á¶»çÇÏ·Á¸é ,IDirect3D9::GetDeviceCaps ¸Þ¼­µå¸¦ È£ÃâÇÑ´Ù. ÀåÄ¡ ±â´ÉÀ» ÃëµæÇÑ ÈÄ, »ç¿ëÇÏ´Â ºñ±³ ÇÔ¼öÀÇ °ü·ÃÇÏ´Â D3DCAPS9 ±¸Á¶Ã¼ÀÇ AlphaCmpCaps ¸â¹ö¸¦ Á¶»çÇÑ´Ù. AlphaCmpCaps ¸â¹ö°¡ D3DPCMPCAPS_ALWAYS ´É·Â¸¸, ¶Ç´Â D3DPCMPCAPS_NEVER ´É·Â¸¸À» Æ÷ÇÔÇϰí ÀÖ´Â °æ¿ì, µå¶óÀ̹ö´Â ¾ËÆÄ Å×½ºÆ®¸¦ Áö¿ø Çϰí ÀÖÁö ¾Ê´Ù.



© 2002 Microsoft Corporation. All rights reserved.
¡èTOP