|
|
DirectX Graphics DirectX Graphics ÀÇ »õ ±â´É [¸ñÂ÷¿¶÷] [ÁÖ¼Òº¹»ç]
|
| Microsoft DirectX 9.0 |
¿©±â¿¡¼´Â, Microsoft® DirectX 9.0® ¿¡ ÀÖ¾î¼ÀÇ DirectX ±×·¡ÇȽºÀÇ »õ ±â´É¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. DirectX ÀüüÀÇ »õ ±â´É¿¡ ´ëÇØ¼´Â, ¡¸DirectX 9.0 ÀÇ »õ ±â´É¡¹À» ÂüÁ¶ÇÒ°Í.
ÁÖÁ¦¸¦ ã¾Æ³»±â ½±°Ô, ÇÁ·Î±×·¡¹Ö °¡À̵带 ´ÙÀ½°ú °°ÀÌ ³ª´©¾ú´Ù.
DirectX 9.0 Çü½ÄÀÇ Á¤Á¡ ¼±¾ð¿¡ ´ëÇÑ »õ·Î¿î ÆäÀÌÁö°¡ Ãß°¡µÇ¾ú´Ù. ¡¸Á¤Á¡ ¼±¾ð¡¹À» ÂüÁ¶ÇÒ°Í.
ÅØ½ºÃ³ÀÇ ¼½¼Ç - ¹Ó¸ÊÀÇ ÀÚµ¿ »ý¼ºÀÌ Ãß°¡µÇ¾ú´Ù. ¡¸¹Ó¸ÊÀÇ ÀÚµ¿ »ý¼º¡¹À» ÂüÁ¶ÇÒ°Í.
ÇöÀçÀÇ Á¤Á¡ ¼ÎÀÌ´õ¿Í Çȼ¿ ¼ÎÀÌ´õ´Â, ÇÚµé·Î ÂüÁ¶ÇÏ´Â °ÍÀº ¾Æ´Ï°í, °³Ã¼ÀÌ´Ù. Á¤Á¡ ¼ÎÀÌ´õ¿Í Á¤Á¡ ¼±¾ðÀÇ ºÐ¸®¿¡ ´ëÇØ ÀÚ¼¼ÇÏ°Ô ¼³¸íÇÏ´Â, »õ·Î¿î ÁÖÁ¦µµ Ãß°¡µÇ°í ÀÖ´Ù. ±¸¼º ¿ä¼Ò °³Ã¼ ¸ðµ¨ (COM) ÀÎÅÍÆäÀ̽ºÀÇ ¡¸IDirect3DVertexShader9 ¡¹ ¹× ¡¸IDirect3DPixelShader9 ¡¹¸¦ ÂüÁ¶ÇÒ°Í.
ÇöÀçÀÇ ¼ÎÀÌ´õ¿Í Á¤Á¡ ½ºÆ®¸² ¼±¾ðÀº, »ý¼º½Ã¿¡ ¼·Î ¹ÙÀÎµå µÇÁö ¾Ê´Â´Ù. ÇöÀçÀÇ Á¤Á¡ ½ºÆ®¸² ¼±¾ðÀº D3DVERTEXELEMENT9 ¿ä¼ÒÀÇ ¹è¿·Î¼ Ç¥ÇöÇÑ´Ù. ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â, ¡¸Á¤Á¡ ¼±¾ðÀÇ ¸ÊÇΡ¹ ¹× ¡¸IDirect3DDevice9::SetFVF ¡¹¸¦ ÂüÁ¶ÇÒ°Í.
¹öÀü 2 ÀÇ Á¤Á¡ ¼ÎÀÌ´õ (vs_2_0)¿¡´Â, Á¦ÇѺÎÀÇ flow control (loop ...endloop ,if ...else ...endif , ¼ºê ·çƾ)ÀÌ Ãß°¡µÇ°í ÀÖ´Ù. ±× ¿ÜÀÇ ±â´É¿¡´Â, ·¹Áö½ºÅÍÀÇ Áõ°¡, Á¤¼ö ¼³Á¤ ¸Þ¼µå (IDirect3DDevice9::SetVertexShaderConstantB ,IDirect3DDevice9::SetVertexShaderConstantF , ¹× IDirect3DDevice9::SetVertexShaderConstantI ), »õ·Î¿î ¸ÅÅ©·Î ¸í·É (°ÅµìÁ¦°ö, ¿ÜÀû, ºÎÈ£, Àý´ëÄ¡, ¶óÀÎÇü º¸°£)µîÀÌ ÀÖ´Ù. ¡¸Á¤Á¡ ¼ÎÀÌ´õ 2_0 ¡¹¸¦ ÂüÁ¶ÇÒ°Í.
Çȼ¿ ¼ÎÀÌ´õ ¹öÀü 2 (ps_2_0)¿¡¼´Â, ÅØ½ºÃ³ ·¹Áö½ºÅÍ¿¡ °¡¼¼ÇØ »ùÇ÷¯ ·¹Áö½ºÅͰ¡ »ý¼º µÇ¾úÀ¸¹Ç·Î, ÅØ½ºÃ³ µ¥ÀÌÅÍ¿Í ÅØ½ºÃ³ »ùÇøµÀÌ ºÐ¸®µÇ¾ú´Ù. ¸í·É¼ö¿Í ·¹Áö½ºÅͼö°¡ Áõ°¡Çß´Ù. float ÀÇ µ¥ÀÌÅÍÇüÀÌ Ãß°¡µÇ¾ú´Ù. ÅØ½ºÃ³ ÁÖ¼Ò ¸í·É°ú »ê¼ú ¸í·ÉÀ» È¥ÀçÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. Á¤ºÎ ¹ÝÀüÀ» Á¦¿ÜÇÑ ¸ðµç ¼ö½ÄÀÚ°¡ »èÁ¦µÇ¾ú´Ù. »õ·Î¿î ¸ÅÅ©·Î ¹× ¸í·É¿¡´Â, Á¤Çö°ú ÄÚ»çÀÎ, Á¤±ÔÈ, ¿ÜÀû, °ÅµìÁ¦°ö, ¼±Çü º¸°£, Åõ¿µ ÅØ½ºÃ³ ·Îµå, ¹ÙÀ̾ »ó¼¼ ·¹º§ (LOD) ÅØ½ºÃ³ ·ÎµåµîÀÌ ÀÖ´Ù. ¡¸Çȼ¿ ¼ÎÀÌ´õ 2_0 ¡¹¸¦ ÂüÁ¶ÇÒ°Í.
Çϵå¿þ¾î Áö¿øÀ» ÀÌ¿ëÇÏÁö ¾Ê¾Æµµ ¼ÎÀÌ´õ¸¦ È¿À²ÀûÀ¸·Î °³¹ßÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ), ¼ÒÇÁÆ®¿þ¾î ¼ÎÀÌ´õ°¡ ó¸® µÇ¾ú´Ù. Ãß°¡µÈ ¼ÒÇÁÆ®¿þ¾î ¹öÀüÀº, vs_2_sw, vs_3_sw, ps_2_sw, ps_3_sw ÀÌ´Ù.
È®Àå ¼ÎÀÌ´õ ¹öÀüÀº, ±âÁ¸ÀÇ ¼ÎÀÌ´õ ¹öÀüÀ» Æ÷ÇÔÇØ, Çϵå¿þ¾î¿¡ ÀÇÇØ ƯÁ¤ÀÇ ´É·ÂÀÌ ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì´Â ±â´ÉÀÌ È®ÀåµÈ´Ù. È®Àå ±â´É¿¡´Â, µ¿Àû flow control, Á¤Àû flow controlÀÇ ³×½ºÆ®, ±×¶óµ¥ÀÌ¼Ç ¸í·É, ÀÓÀÇÀÇ ±³Ã¼µîÀÌ ÀÖ´Ù. ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â, ¡¸Á¤Á¡ ¼ÎÀÌ´õ 2_0 È®À塹 ¹× ¡¸Çȼ¿ ¼ÎÀÌ´õ 2_0 È®À塹À» ÂüÁ¶ÇÒ°Í.
¹öÀü 3 ÀÇ ¼ÎÀÌ´õ´Â, È®Àå ¼ÎÀÌ´õ ¹öÀüÀÇ ±â´ÉÀÌ ÇÑÃþ ´õ °ÈÇØ, ´É·ÂÀ» ¼³Á¤ÇÒ Çʿ䰡 ¾ø¾îÁ³´Ù. ¶Ç, Á¤Á¡ ¼ÎÀÌ´õ´Â, Á¤Á¡ ÅØ½ºÃ³ ó¸®ÀÇ Áö¿øÀÌ Ãß°¡µÇ¾î ·»´õ¸µ È£ÃâÁßÀÇ Á¤Á¡ ¼ÎÀÌ´õ ·¹Áö½ºÅÍÀÇ ¼³Á¤ ºóµµ¸¦ Á¦¾îÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â, ¡¸Á¤Á¡ ¼ÎÀÌ´õ 3_0 ¡¹ ¹× ¡¸Çȼ¿ ¼ÎÀÌ´õ 3_0 ¡¹¸¦ ÂüÁ¶ÇÒ°Í.
·¹ÆÛ·±½º¿¡´Â ´ÙÀ½°ú °°Àº »õ·Î¿î ÆäÀÌÁö°¡ ¸¹ÀÌ Ãß°¡µÇ¾ú´Ù.
ÀÌÆåÆ® ÇÁ·¹ÀÓ¿öÅ©(framework). »õ·Î¿î ÀÎÅÍÆäÀ̽º ID3DXEffectCompiler ¸¦ »ç¿ëÇÏ¸é »ç¿ëÀÚ´Â ÇÔ¼ö ¶Ç´Â Á¤Á¡ ¼ÎÀÌ´õ·ÎºÎÅÍ ÀÌÆåÆ®¸¦ ÄÄÆÄÀÏ ÇÒ ¼ö ÀÖ´Ù. »óÀ§ ·¹º§ ¼ÎÀÌ´õ ¾ð¾î¸¦ »ç¿ëÇØ ÇÔ¼ö¸¦ ±â¼úÇÒ ¼ö ÀÖ´Ù.
±× ¿ÜÀÇ »õ ±â´É¿¡´Â, ´ÙÀ½ÀÇ °ÍÀÌ ÀÖ´Ù.