DirectX Graphics ·¹ÆÛ·±½º ¼ÎÀÌ´õ ·¹ÆÛ·±½º Á¤Á¡ ¼ÎÀÌ´õ 3_0 Á¤Á¡ ÅØ½ºÃ³ [¸ñÂ÷¿¶÷] [ÁÖ¼Òº¹»ç] [½½·Ôºñ¿ì±â]
|
| Microsoft DirectX 9.0 |
ÀÌ ¼ÎÀÌ´õ ¸ðµ¨Àº,texldl ¸¦ »ç¿ëÇÑ Á¤Á¡ ¼ÎÀÌ´õ¿¡ ÀÇÇÑ ÅØ½ºÃ³ ·è ¾÷À» Áö¿ø ÇÑ´Ù. Á¤Á¡ ¿£Áø¿¡´Â, 4 °³ÀÇ ÅØ½ºÃ³ »ùÇ÷¯ ½ºÅ×ÀÌÁö°¡ Æ÷ÇÔµÇ¾î ±× À̸§Àº D3DVERTEXTEXTURESAMPLER, D3DVERTEXTEXTURESAMPLER+1, D3DVERTEXTEXTURESAMPLER+2, ¹× D3DVERTEXTEXTURESAMPLER+3 ÀÌ´Ù. À̰͵éÀº, Çȼ¿ ¿£ÁøÀÇ µð½ºÇ÷¹À̽º¸ÕÆ® ¸Ê »ùÇ÷¯³ª ÅØ½ºÃ³ »ùÇ÷¯¿Í´Â ´Ù¸£´Ù.
À̰͵é 4 °³ÀÇ ½ºÅ×ÀÌÁö·Î ¼³Á¤µÈ ÅØ½ºÃ³´Â, Á¤Á¡ ¿£ÁøÀ» »ç¿ëÇØ »ùÇøµ ÇÒ ¼ö ÀÖ¾î ½ºÅ×ÀÌÁö´Â IDirect3D9::CheckDeviceFormat ¸¦ »ç¿ëÇØ ÇÁ·Î±×·¡¹Ö ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ½ºÅ×ÀÌÁö¿¡ ÅØ½ºÃ³¸¦ ¼³Á¤ÇÏ·Á¸é , ½ºÅ×ÀÌÁö À妽º D3DVERTEXTEXTURESAMPLER ~ D3DVERTEXTEXTURESAMPLER+3 °ú ÇÔ²²,IDirect3DDevice9::SetTexture ¸¦ »ç¿ëÇÑ´Ù. »õ·Î¿î ·¹Áö½ºÅͷμ »ùÇ÷¯ ·¹Áö½ºÅͰ¡ Á¤Á¡ ¼ÎÀÌ´õ¿¡ µµÀԵǾú´Ù. ÀÌ ·¹Áö½ºÅÍ´Â, ps_2_0 ¿Í °°ÀÌ, Á¤Á¡ ÅØ½ºÃ³ »ùÇ÷¯¸¦ ³ªÅ¸³½´Ù. ÀÌ ·¹Áö½ºÅÍ´Â, »ç¿ëÀü¿¡ ¼ÎÀÌ´õ·Î Á¤ÀÇÇÒ Çʿ䰡 ÀÖ´Ù.
¾ÖÇø®ÄÉÀ̼ÇÀº D3DUSAGE_QUERY_VERTEXTEXTURE ¿Í ÇÔ²² IDirect3D9::CheckDeviceFormat ¸¦ È£ÃâÇØ, Æ÷¸ËÀÌ Á¤Á¡ ÅØ½ºÃ³·Î¼ Áö¿ø µÇ°í ÀÖ´ÂÁö¸¦ ¹®ÀÇÇÒ ¼ö°¡ ÀÖ´Ù.
ÀÌ ±â´ÉÀº, ´ÙÀ½ÀÇ Á¡À» Á¦¿ÜÇØ, Çȼ¿ ÅØ½ºÃ³¿Í °°´Ù.
´ÙÀ½°ú °°Àº Á¦ÇÑÀÌ ÀÖ´Ù.
»ùÇøµ ½ºÅ×ÀÌÁö ·¹Áö½ºÅÍ´Â, ÅØ½ºÃ³ ·Îµå¹®À¸·Î »ç¿ëÇÏ´Â »ùÇøµ À¯´ÏÆ®¸¦ ÁöÁ¤ÇÑ´Ù. »ùÇøµ À¯´ÏÆ®´Â ÅØ½ºÃ³ »ùÇøµ ½ºÅ×ÀÌÁö¿¡ ´ëÀÀÇØ,IDirect3DDevice9::SetSamplerState ·Î ÁöÁ¤µÇ´Â »ùÇøµ °íÀ¯ÀÇ ½ºÅ×ÀÌÆ®¸¦ ĸ½¶ÈÇÑ´Ù.
°¢°¢ÀÇ »ùÇ÷¯´Â, ´ëÀÀÇÏ´Â »ùÇ÷¯¿¡ IDirect3DDevice9::SetTexture ¸¦ »ç¿ëÇØ ¼³Á¤µÈ ´ÜÀÏÀÇ ÅØ½ºÃ³ Ç¥¸éÀ» ÀÏÀÇ·Î ÁöÁ¤ÇÑ´Ù. ´Ù¸¸, °°Àº ÅØ½ºÃ³ Ç¥¸éÀ» º¹¼öÀÇ »ùÇ÷¯·Î ¼³Á¤ÇÏ´Â °ÍÀº °¡´ÉÇÏ´Ù.
ÅØ½ºÃ³´Â, µå·ÎÀ×(Drawing)½Ã¿¡´Â ·»´õ¸µ Ÿ°Ù ¹× ÅØ½ºÃ³ ½ºÅ×ÀÌÁö¿¡ µ¿½Ã¿¡ ¼³Á¤ÇÒ ¼ö ¾ø´Ù.
vs_3_0 ¿¡¼´Â 4 °³ÀÇ »ùÇ÷¯¸¦ Áö¿ø ÇϹǷÎ, 1 °³ÀÇ ¼ÎÀÌ´õ ÆÐ½º·Î, ÃÖ´ë 4 °³ÀÇ ÅØ½ºÃ³ Ç¥¸éÀ» Àо ¼ö°¡ ÀÖ´Ù. »ùÇ÷¯ ·¹Áö½ºÅÍ´Â, ÅØ½ºÃ³ ·Îµå¹® texldl ÀÇ Àμö·Î¼ÀÇ º¸°í Ç¥½ÃµÈ´Ù.
vs_3_0 ¿¡¼´Â, »ùÇ÷¯¸¦ »ç¿ëÇÏ´Â °æ¿ì, ps_2_0 ¿Í °°ÀÌ dcl_textureType ¸¦ »ç¿ëÇØ, ¼ÎÀÌ´õ ÇÁ·Î±×·¥ÀÇ ÃÖÃÊ·Î »ùÇ÷¯¸¦ ¼±¾ðÇÒ Çʿ䰡 ÀÖ´Ù.
ÀÌ ±â´ÉÀº, ¼ÒÇÁÆ®¿þ¾î Á¤Á¡ 󸮷ΠÁö¿ø µÈ´Ù. Áö¿ø µÇ´Â ÇÊÅÍÀÇ Á¾·ù¸¦ Á¶»çÇÏ·Á¸é ,IDirect3DDevice9::GetDeviceCaps ¸¦ È£ÃâÇØ,D3DCAPS9 ÀÇ VertexTextureFilterCaps ¸â¹ö¸¦ Á¶»çÇÑ´Ù. °ø°³ ³¡³ ¸ðµç ÅØ½ºÃ³ Æ÷¸ËÀº, ¼ÒÇÁÆ®¿þ¾î Á¤Á¡ 󸮷ΠÁ¤Á¡ ÅØ½ºÃ³·Î¼ Áö¿ø µÈ´Ù.
¼ÒÇÁÆ®¿þ¾î Á¤Á¡ ó¸® ¸ðµå·Î ƯÁ¤ÀÇ ÅØ½ºÃ³ Æ÷¸ËÀÌ Áö¿ø µÇ°í ÀÖ´ÂÁö¸¦ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¶»çÇÏ·Á¸é ,IDirect3D9::CheckDeviceFormat ¸¦ È£ÃâÇØ, »ç¿ë ¼³Á¤À¸·Î¼ (D3DUSAGE_QUERY_VERTEXTEXTURE | D3DUSAGE_SOFTWAREPROCESSING)¸¦ ÁöÁ¤ÇÑ´Ù. ¸ðµç Æ÷¸ËÀº ¼ÒÇÁÆ®¿þ¾î Á¤Á¡ 󸮷ΠÁö¿ø µÈ´Ù. ¼ÒÇÁÆ®¿þ¾î Á¤Á¡ 󸮿¡´Â POOL_SCRATCH °¡ ÇÊ¿äÇÏ´Ù.
// New define
#define D3DVERTEXTEXTURESAMPLER0 (D3DDMAPSAMPLER+1)
#define D3DVERTEXTEXTURESAMPLER1 (D3DDMAPSAMPLER+2)
#define D3DVERTEXTEXTURESAMPLER2 (D3DDMAPSAMPLER+3)
#define D3DVERTEXTEXTURESAMPLER3 (D3DDMAPSAMPLER+4)
// New usage
#define D3DUSAGE_QUERY_VERTEXTEXTURE (0x00100000L)
// New caps field in D3DCAPS9
DWORD VertexTextureFilterCaps;