DirectX Graphics ÇÁ·Î±×·¡¹Ö °¡ÀÌµå °íµµÀÇ ÁÖÁ¦ Çȼ¿ ÆÄÀÌÇÁ¶óÀÎ ½ºÅÙ½Ç ¹öÆÛ Å×Å©´Ð   [¸ñÂ÷¿­¶÷] [ÁÖ¼Òº¹»ç] [½½·Ôºñ¿ì±â]
½ºÅÙ½Ç ¹öÆÛ Å×Å©´Ð
 
Microsoft DirectX 9.0

½ºÅÙ½Ç ¹öÆÛ Å×Å©´Ð


½ºÅÙ½Ç ¹öÆÛ¸¦ »ç¿ëÇϸé, ¾ÖÇø®ÄÉÀ̼ÇÀº È­¸éÀÇ Çȼ¿À» ¸¶½ºÅ© ÇÒ ¼ö ÀÖ´Ù. ÀÌ ¸¶½ºÅ©´Â, Çȼ¿À» µå·ÎÀ×(Drawing) ÇÒÁö ¾î¶³Áö¸¦ Á¦¾îÇÑ´Ù. ¿©±â¿¡¼­´Â, ºó¹øÇÏ°Ô »ç¿ëµÇ´Â ´ÙÀ½ÀÇ ÀÌÆåÆ®¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.

½ºÅÙ½Ç ¹öÆÛ´Â, ·»´õ¸µ Ÿ°Ù Ç¥¸éÀÇ Çȼ¿ ´ÜÀ§ÀÇ µå·ÎÀ×(Drawing)¸¦ À¯È¿ ¶Ç´Â ¹«È¿·Î ÇÑ´Ù. ÀÌ ¹öÆÛÀÇ °¡Àå ±âº»ÀûÀÎ ·¹º§¿¡¼­´Â, ¾ÖÇø®ÄÉÀ̼ÇÀÌ ·»´õ¸µ ÇÑ È­¸éÀÇ ºÎºÐÀ» ¸¶½ºÅ©·Î °¡¸®´Â °ÍÀÌ °¡´ÉÇÏ°Ô µÇ¾î, ±× È­¸éÀÌ Ç¥½ÃµÇÁö ¾Ê´Â´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀº µðÁ¹ºê, µ¥Ä®, ¾Æ¿ô ¶óÀÌ´×µîÀÇ Æ¯¼ö È¿°ú¸¦ À§Çؼ­(¶§¹®¿¡) ½ºÅÙ½Ç ¹öÆÛ¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ¸¹´Ù.

½ºÅÙ½Ç ¹öÆÛ Á¤º¸´Â, z ¹öÆÛ µ¥ÀÌÅÍ¿¡ ÆÄ¹¯È÷°í ÀÖ´Ù. IDirect3D9::CheckDeviceFormat ¸Þ¼­µå¸¦ »ç¿ëÇØ, Çϵå¿þ¾î°¡ ½ºÅÙ½Ç ¹öÆÛ¸¦ Áö¿ø Çϰí ÀÖÀ»Áö ¾î¶³Áö¸¦ Á¶»çÇÒ ¼ö°¡ ÀÖ´Ù. ´ÙÀ½ Äڵ忡 ¿¹¸¦ ³ªÅ¸³½´Ù.

// Reject devices that cannot perform 8-bit stencil buffering.  
// The following example assumes that pCaps is a valid pointer 
// to an initialized D3DCAPS9 structure.  

if( FAILED( m_pD3D->CheckDeviceFormat( pCaps->AdapterOrdinal,
                                       pCaps->DeviceType,  
                                       Format,  
                                       D3DUSAGE_DEPTHSTENCIL, 
                                       D3DRTYPE_SURFACE,
                                       D3DFMT_D24S8 ) ) )
        return E_FAIL;

IDirect3D9::CheckDeviceFormat ´Â, ÇØ´çÇÏ´Â ÀåÄ¡ÀÇ ´É·Â¿¡ ±Ù°ÅÇØ, »ý¼º ÇÏ´Â ÀåÄ¡¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ÀÌ °æ¿ì, 8 ºñÆ®ÀÇ ½ºÅÙ½Ç ¹öÆÛ¸¦ Áö¿ø ÇÏÁö ¾Ê´Â ÀåÄ¡´Â °ÅºÎµÈ´Ù. À̰ÍÀº IDirect3D9::CheckDeviceFormat ·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÇ 1 °³¿¡ Áö³ªÁö ¾Ê´Â´Ù. ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â, ¡¸Çϵå¿þ¾î Áö¿øÀÇ ÆÇÁ¤¡¹À» ÂüÁ¶ÇÒ°Í.

½ºÅÙ½Ç ¹öÆÛÀÇ µ¿ÀÛ

Microsoft® Direct3D® ´Â, ½ºÅÙ½Ç ¹öÆÛÀÇ ³»¿ëÀ» Çȼ¿ ´ÜÀ§·Î Á¶»çÇÑ´Ù. ½ºÅÙ½Ç ¹öÆÛÀÇ ´ëÀÀÇÏ´Â °ª, ½ºÅÙ½Ç ÂüÁ¶°ª, ½ºÅÙ½Ç ¸¶½ºÅ©°ªÀ» »ç¿ëÇØ, Ÿ°Ù Ç¥¸éÀÇ °¢ Çȼ¿¿¡ ´ëÇÑ Å×½ºÆ®¸¦ ½Ç½ÃÇÑ´Ù. Å×½ºÆ®¿¡ ÆÐ½º Çϸé, Direct3D ´Â ¾×¼ÇÀ» ½ÇÇàÇÑ´Ù. ÀÌ Å×½ºÆ®´Â ´ÙÀ½ÀÇ ½ºÅÜ¿¡¼­ ½ÇÇàµÈ´Ù.

  1. ½ºÅÙ½Ç ÂüÁ¶°ª°ú ½ºÅÙ½Ç ¸¶½ºÅ©ÀÇ ºñÆ®Àû (AND) ¿¬»êÀ» ½ÇÇàÇÑ´Ù.
  2. ÇöÀç Çȼ¿¿¡ ´ëÇÑ ½ºÅÙ½Ç ¹öÆÛ°ª°ú ½ºÅÙ½Ç ¸¶½ºÅ©ÀÇ ºñÆ®Àû (AND) ¿¬»êÀ» ½ÇÇàÇÑ´Ù.
  3. ºñ±³ ÇÔ¼ö¸¦ »ç¿ëÇØ, ½ºÅÜ 1 À¸·Î ½ºÅÜ 2 ÀÇ °á°ú¸¦ ºñ±³ÇÑ´Ù.

ÀÌ·¯ÇÑ ½ºÅÜÀ» ´ÙÀ½ÀÇ ¿¹·Î °¡¸®Å²´Ù.

(StencilRef & StencilMask) CompFunc (StencilBufferValue & StencilMask)

¿©±â¼­,StencilBufferValue ´Â, ÇöÀç Çȼ¿¿¡ ´ëÇÑ ½ºÅÙ½Ç ¹öÆÛÀÇ ³»¿ëÀÌ´Ù. ÀÌ Äڵ忡¼­´Â, ampersand(&) (&) ±âÈ£´Â ºñÆ®Àû (AND) ¿¬»êÀ» ³ªÅ¸³»°í ÀÖ´Ù. StencilMask ´Â ½ºÅÙ½Ç ¸¶½ºÅ©,StencilRef ´Â ½ºÅÙ½Ç ÂüÁ¶°ªÀ» ³ªÅ¸³»°í ÀÖ´Ù. CompFunc ´Â ºñ±³ ÇÔ¼öÀÌ´Ù.

ÀÌ ½ºÅÙ½Ç Å×½ºÆ®¿¡ ÆÐ½º Çϸé, ÇöÀç Çȼ¿Àº Ÿ°Ù Ç¥¸é¿¡ ±âÀÔÇØÁöÁö¸¸, ½ÇÆÐÇßÀ» °æ¿ì´Â ¹«½ÃµÈ´Ù. µðÆúÆ®ÀÇ ºñ±³ 󸮿¡¼­´Â, °¢ ºñÆ® ¿¬»êÀÇ °á°ú¿¡ °ü°è¾øÀÌ, Çȼ¿ÀÌ ½áÁø´Ù (D3DCMP_ALWAYS). ÀÌ µ¿ÀÛÀ» º¯°æÇÏ·Á¸é , ¸ñÀûÀÇ ºñ±³ ÇÔ¼ö¸¦ ÁöÁ¤ÇÏ´Â D3DCMPFUNC ¿­°ÅÇüÀÇ ¸â¹ö¸¦ °Ç³×ÁÖ¾î,D3DRS_STENCILFUNC ·»´õ¸µ ½ºÅ×ÀÌÆ®ÀÇ °ªÀ» º¯°æÇÑ´Ù.

¾ÖÇø®ÄÉÀ̼ǿ¡¼­´Â, ½ºÅÙ½Ç ¹öÆÛÀÇ Ã³¸®¸¦ Ä¿½ºÅ͸¶ÀÌÁî ÇÒ ¼ö ÀÖ´Ù. ¾ÖÇø®ÄÉÀ̼ǿ¡¼­´Â, ºñ±³ ÇÔ¼ö, ½ºÅÙ½Ç ¸¶½ºÅ©, ½ºÅÙ½Ç ÂüÁ¶°ªÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¶Ç, ½ºÅÙ½Ç Å×½ºÆ®¿¡ ÆÐ½ºÇßÀ» °æ¿ì ¶Ç´Â ½ÇÆÐÇßÀ» °æ¿ì¿¡ ½ÇÇàÇÏ´Â Direct3D ÀÇ Ã³¸®¸¦ Á¦¾îÇÒ ¼öµµ ÀÖ´Ù. ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â, ¡¸½ºÅÙ½Ç ¹öÆÛ ½ºÅ×ÀÌÆ®¡¹¸¦ ÂüÁ¶ÇÒ°Í.



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