¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³
Á¾·¡ÀÇ ÅØ½ºÃ³´Â ´ÜÀÏ ¿ä¼ÒÀÇ ÅØ½ºÃ³¿¡ ´ëÇØ °í·ÁÇß´Ù. ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³¸¦ »ç¿ëÇÏ¸é ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î Çȼ¿ ¼ÎÀÌ´õ·ÎºÎÅÍ ÅØ½ºÃ³ÀÇ º¹¼öÀÇ ¿ä¼Ò¸¦ µ¿½Ã¿¡ ½á³¾ ¼ö°¡ ÀÖ´Ù. ÀÌ °á°ú, ´ÙÀ½ÀÇ ·»´õ¸µ ÆÐ½º·Î´Â, º¹¼öÀÇ ¿ä¼Ò¸¦ ´ÜÀÏ ¿ä¼ÒÀÇ ÅØ½ºÃ³·Î¼ Áï Çȼ¿ ¼ÎÀÌ´õ¿¡ÀÇ ÀÔ·ÂÀ¸·Î¼ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ Ãß°¡ ¿ä¼Ò´Â Áß°£ °á°úÀÇ ÀϽÃÀûÀÎ ÀúÀ忪À̶ó°í »ý°¢ÇÒ ¼ö°¡ ÀÖ¾î ¾ÖÇø®ÄÉÀ̼ÇÀº ÈÄÀÇ ÆÐ½º·Î À̰ÍÀ» »ç¿ëÇÑ´Ù. ÀÌ ±â´ÉÀ» °ø°³ÇÑ Á¦ 1 ¼¼´ëÀÇ Çϵå¿þ¾î¿¡´Â, ´ÙÀ½°ú °°Àº Á¦ÇÑÀÌ ÀÖ¾ú´Ù.
- ¸ðµç ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ Ç¥¸éÀ» ÀÚµ¿ÀûÀ¸·Î ÇÒ´çÇÒ ¼ö ÀÖ´Ù. ÀÌ Á¦ÇÑÀº, ÀÌ Ç¥¸éÀ» ÀÎÅ͸®ºê µÈ º¹¼öÀÇ RGBA ä³ÎÀ» °¡Áö´Â »õ·Î¿î ŸÀÔÀÇ Ç¥¸é Æ÷¸ËÀ¸·Î¼ Ãë±ÞÇÏ´Â °Í¿¡ ÀÇÇØ ÇØ°áÇÒ ¼ö ÀÖ´Ù.
- ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ÀÇ ¸ðµç ¿ä¼Ò°¡ °°Àº ºñÆ® ±íÀ̰¡ µÇ´Â °æ¿ì°¡ ÀÖ´Ù. ÀÌ Á¦ÇÑÀº, »õ·Î¿î Ç¥¸é Æ÷¸ËÀÇ À̸§À¸·Î ³ªÅ¸³½´Ù.
- ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³¸¦ 1Â÷³ª Ç¥½Ã °¡´ÉÇÏ°Ô ÇÒ ¼ö ¾ø´Ù. Áï, ¿ÀÇÁ ½ºÅ©¸° Àü¿ëÀÌ´Ù. ÀÌ Á¦ÇÑÀº, Ç¥¸é Æ÷¸ËÀÇ ¿°Å·Î ³ªÅ¸³½´Ù.
- µð´õ ¸µ, ¾ËÆÄ Å×½ºÆ®, Æ÷±×(¾È°³:fog), ºí·»µå, ·¡½ºÅÍ Ã³¸®, ¸¶½ºÅ·Àº Çã°¡µÇÁö ¾Ê´Ù. Z Å×½ºÆ® ¹× ½ºÅÙ½Ç Å×½ºÆ® À̿ܿ¡, Çȼ¿ ¼ÎÀÌ´õ ÈÄÀÇ Ã³¸®´Â ÇàÇØÁöÁö ¾Ê´Â´Ù.
- ¹Ó¸ÊÀº »ç¿ëÇÒ ¼ö ¾ø´Ù. ¹ÓüÀÇ »ý¼ºÀº ½ÇÆÐÇÑ´Ù.
- °°Àº ¿ä¼Ò¸¦ µ¿½Ã¿¡ ÅØ½ºÃ³ ¹× ·»´õ¸µ Ÿ°ÙÀ¸·Î¼ ¼³Á¤ÇÒ ¼ö ¾ø´Ù. ´Ù¸¸, °°Àº ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ Ç¥¸éÀÌ ´Ù¸¥ ¿ä¼Ò¸¦ µ¿½Ã¿¡ ÅØ½ºÃ³ ¹× ·»´õ¸µ Ÿ°ÙÀ¸·Î ÇÒ ¼ö ÀÖ´Ù.
- anti-aliasing´Â Áö¿ø Çϰí ÀÖÁö ¾Ê´Ù.
- ÅØ½ºÃ³·Î¼ »ç¿ëÇϰí ÀÖ´Â ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ Ç¥¸éÀº, ÇÊÅ͸µ ÇÒ ¼ö ¾ø´Ù. ÀÌ Á¦ÇÑÀº,IDirect3D9::CheckDeviceFormat ¸¦ »ç¿ëÇØ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
- ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ Ç¥¸éÀ» Àá±Û ¼ö ¾ø´Ù.
- º¸ÅëÀÇ ÅØ½ºÃ³¿Í °°ÀÌ °¢ ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ Ç¥¸éÀ» ´Ù¾çÇÑ ½ºÅ×ÀÌÁö¿¡ ÇÒ´çÇÏ´Â °Í¿¡ ÀÇÇØ, º¹¼öÀÇ ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ Ç¥¸éÀ» µ¿½Ã¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
- ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ Ç¥¸éÀº, ´Ù¸¥ ÅØ½ºÃ³ Æ÷¸Ë°ú °°°Ô, read½ÃÀÇ °¨¸¶ 2.2 ·ÎºÎÅÍ °¨¸¶ 1.0 ¿¡ÀÇ º¯È¯À» Áö¿ø Çϰí ÀÖ´Ù.
- 󸮿¡ µû¶ó¼´Â, Ãâ·Â ¾²±â ¸¶½ºÅ© (D3DRS_COLORWRITEENABLE)¸¦ Àû¿ëÇÏÁö ¾Ê´Â °æ¿ì°¡ ÀÖ´Ù. À̰ÍÀ» Àû¿ëÇÒ ¼ö Àִ ó¸®Àº, °³º°ÀÇ »ö¾²±â ¸¶½ºÅ©¸¦ °¡Áö°í ÀÖ´Ù. À̰ÍÀº, »õ·Î¿î ´É·Â ºñÆ®·Î ³ªÅ¸³½´Ù. »ç¿ë °¡´ÉÇÑ °³º°ÀÇ »ö¾²±â ¸¶½ºÅ©ÀÇ ¼ö´Â, ÀåÄ¡·Î »ç¿ë °¡´ÉÇÑ ¿ä¼ÒÀÇ ÃÖ´ë¼ö·Î µ¿ÀÏÇÏ´Ù.
- IDirect3DDevice9::Clear ´Â, ·»´õ¸µ Ÿ°ÙÀ¸·Î¼ ¼³Á¤ÇÏ´Â °Í¿¡ ÀÇÇØ, ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ÀÇ ¸ðµç ¿ä¼Ò¸¦ Ŭ¸®¾î ÇÑ´Ù.
´ÙÀ½¿¡, ±× »ç¿ë¹ý¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.
- ¾ÖÇø®ÄÉÀ̼ÇÀº, ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ Æ÷¸ËÀÌ »ç¿ë °¡´ÉÇѰ¡ ¾î¶²°¡¸¦ Á¶»çÇØ, ÀÌ ±â´ÉÀÌ Áö¿ø µÇ°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù.
- ¾ÖÇø®ÄÉÀ̼ÇÀº,IDirect3DDevice9::CreateTexture ¸¦ È£ÃâÇØ ÀÌ·¯ÇÑ Ç¥¸éÀ» »ý¼º ÇÑ´Ù.
- ¾ÖÇø®ÄÉÀ̼ÇÀº,IDirect3DDevice9::SetRenderTarget È£ÃâÀ» »ç¿ëÇØ, Ç¥¸éÀ» ·»´õ¸µ Ÿ°ÙÀ¸·Î¼ ¼³Á¤ÇÑ´Ù. Çȼ¿ ¼ÎÀÌ´õ´Â,mov ¸í·ÉÀ» »ç¿ëÇØ Ç¥¸é¿¡ Ãâ·ÂÇÑ´Ù.
- IDirect3DDevice9::SetTexture ¸¦ È£ÃâÇØ, ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ Ç¥¸éÀ» ƯÁ¤ÀÇ ½ºÅ×ÀÌÁö·Î ¼³Á¤ÇÑ´Ù. ´Ù¸¥ ÅØ½ºÃ³¿Í °°ÀÌ, °°Àº Ç¥¸éÀ» º¹¼öÀÇ ½ºÅ×ÀÌÁö¿¡ µ¿½Ã¿¡ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.
- IDirect3DDevice9::SetSamplerState ¸¦ È£ÃâÇØ, »ùÇ÷¯°¡ »ùÇøµ ÇÏ´Â ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ Ç¥¸éÀÇ ÀûÀýÇÑ ¿ä¼Ò ¹øÈ£¸¦ D3DSAMP_ELEMENTINDEX ·Î ¼³Á¤ÇÑ´Ù. ÀÌ ½ºÅ×ÀÌÆ®ÀÇ µðÆúÆ®°ªÀÌ 0 ÀÇ °æ¿ì, ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³´Â ±â´ÉÇÏÁö ¾Ê´Â´Ù. ÀÌ ½ºÅ×ÀÌÆ®¸¦ ºÎÀûÀýÇÑ ¼öÄ¡·Î ¼³Á¤ Çϸé, ºÎÁ¤ÀÇ µ¿ÀÛÀÌ »ý±ä´Ù. ¿¹¸¦ µé¾î, ¸ÖƼ ¿¤¸®¸ÕÆ® ÅØ½ºÃ³ÀÇ ÆøÀÌ ¿ä¼Ò 2 °³ÀÏ ¶§, 4 ¹øÂ°ÀÇ ¿ä¼Ò·ÎºÎÅÍÀÇ »ùÇøµÀ» »ùÇ÷¯¿¡ ¿ä±¸ÇÑ °Í °°Àº °æ¿ìÀÌ´Ù.
API ÀÇ º¯°æ
ÀÌ ±â´ÉÀÇ Áö¿øÀ» À§Çؼ(¶§¹®¿¡), ´ÙÀ½°ú °°Àº ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º (API)ÀÇ º¯°æÀÌ Á¦¾ÈµÇ°í ÀÖ´Ù. ¿©±â¿¡ ³ªÅ¸³»´Â °Í °°Àº »õ·Î¿î Ç¥¸é Æ÷¸ËÀº, Æ÷¸ËÀÇ ÀÎÅ͸®ºê µÈ ¼ºÁúÀ» Ç¥ÇöÇϰí ÀÖ´Ù.
»õ·Î¿î ÀÎÅ͸®ºê µÈ Ç¥¸é Æ÷¸Ë:
D3DFMT_MULTI2_ARGB8 = MAKEFOURCC('M', 'E', 'T', '1'),
¾ò¾î¿Â´Ù ¿ä¼Ò¸¦ ³ªÅ¸³»´Â »õ·Î¿î »ùÇ÷¯ ½ºÅ×ÀÌÆ®:
D3DSAMP_ELEMENTINDEX
»õ·Î¿î ·»´õ¸µ ½ºÅ×ÀÌÆ®:
D3DRS_COLORWRITEENABLE1
D3DRS_COLORWRITEENABLE2
D3DRS_COLORWRITEENABLE3
D3DRS_COLORWRITEENABLE ´Â ·»´õ¸µ Ÿ°Ù (¶Ç´Â ¿ä¼Ò) Á¦·Î¿¡ Àû¿ëµÈ´Ù.
»õ·Î¿î Çϵå¿þ¾î ´É·Â:
D3DPMISCCAPS_INDEPENDENTWRITEMASKS // True if they can support it