ÇöÀç PC¿ë 3D °ÔÀÓ¿ë Ç¥ÁØ ±×·¡ÇÈ API·Î ÀÚ¸®Àâ°í ÀÖ´Â MicrosoftÀÇ Direct3D´Â 1992³â ¼³¸³µÈ
RenderMorphics¶ó´Â ȸ»ç°¡ °³¹ßÇÑ 3D ±×·¡ÇÈ APIÀÎ Reality LabÀ» ½ÃÀÛÀ¸·Î ¹ßÀüµÈ 3D °ÔÀÓ¿ë ±×·¡ÇÈ APIÀÌ´Ù.
Microsoft´Â RenderMorphics¸¦ 1995³â¿¡ ÀμöÇÑµÚ Windows95ºÎÅÍ DirectX¶ó´Â À̸§À¸·Î Àû¿ë½ÃÄÑ¿ÔÀ¸¸ç DirectXÀÇ ÇѺκÐÀÌ µÇ¾î ÇöÀç±îÁö °è¼Ó ¹ßÀü½ÃÄÑ¿À°í ÀÖ´Ù.
±×·³ API, Áï Application programming interface ¶ó´Â °ÍÀº ¹«¾ùÀϱî?.. À̸§¿¡¼ ½±°Ô ¾Ë¼ö ÀÖµíÀÌ API¶ó´Â °ÍÀº ÇÁ·Î±×·¥°ú Çϵå¿þ¾îÀÇ Áß°£¿¡ À§Ä¡ÇÑ ´Ü°è·Î½á ÇÁ·Î±×·¥ÀÌ ¿øÇÏ´Â ÀÛ¾÷À» Çϵå¿þ¾î¿¡¼ ¾Ë¾ÆµéÀ»¼ö ÀÖ´Â ÄÚµå·Î º¯È¯ÇÏ¿© Çϵå¿þ¾î¸¦ Á¦¾îÇÏ´Â ±â´ÉÀ» Á¦°øÇÑ´Ù.
3D ±×·¡ÇÈ¿ë API°¡ Æ÷ÇÔµÈ DirectXµµ °ÔÀÓÀÌ ¿øÇÏ´Â ±×·¡ÇÈÀÛ¾÷À» ±×·¡ÇÈ ÇÁ·Î¼¼¼°¡ ó¸®ÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁÖ´Â ±â´ÉÀ» ÇÑ´Ù.
±×·¡ÇÈ ÀÛ¾÷Àº CPU°¡ ¾Æ´Ñ GPU·Î
Áö±Ý±îÁöÀÇ DirectX´Â CPU¸¦ ÅëÇØ Ã³¸®ÇÏ´ø ºÎºÐÀ» ±×·¡ÇÈ ÇÁ·Î¼¼¼¸¦ ÅëÇØ Ã³¸®ÇÒ ¼ö ÀÖµµ·Ï ¹ßÀü½ÃÄÑ¿Ô´Ù.
Ãʱ⿡ CPU°¡ ºÎ´ãÇß´ø Geometry ´Ü°è Áß ¼º´É°ú Á÷°áµÈ T&L(Transform&Lighting) ÀÛ¾÷À» ±×·¡ÇÈ ÇÁ·Î¼¼¼¿¡ Æ÷ÇÔµÈ T&L ¿£ÁøÀÌ Ã³¸®ÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°øÇÏ¿´À¸¸ç Programmable Shader¸¦ Áö¿øÇÏ¿© °íÁ¤ ±â´ÉÀÇ ±×·¡ÇÈ ÇÁ·Î¼¼¼·Î´Â ÇÑ°è°¡ ÀÖ´ø 3D ±×·¡ÇÈ È¿°ú¿Í ¼º´ÉÀ» °è¼Ó °³¼±½ÃÄÑ¿Ô´Ù.
ƯÈ÷ Programmable ShaderÀÇ °æ¿ì CPU¿¡ ÀÇÁ¸ÇÏÁö ¾Ê°í ±×·¡ÇÈ ÇÁ·Î¼¼¼¸¸ÀÇ ¿¬»ê ±â´ÉÀ» ÅëÇØ ´Ù¾çÇÑ ±×·¡ÇÈ È¿°ú¸¦ Á¦°øÇÒ ¼ö ÀÖ¾î CPU´Â °ÔÀÓ ¿£ÁøÀ̳ª Ai, ¹°¸® ¿£ÁøµîÀ» ó¸®ÇÏ¸é µÇ´Â °ÍÀ¸·Î È«º¸µÇ¾î ¿ÔÁö¸¸ Áö±Ý±îÁöÀÇ DirectX ±¸Á¶´Â ¿ÏÀüÈ÷ CPU¸¦ ¹èÁ¦ÇÏ°í ±×·¡ÇÈ Ã³¸®¸¦ ÇÒ ¼ö°¡ ¾ø´Ù.
CPU¿¡ ÀÇÁ¸ÇÒ ¼ö¹Û¿¡ ¾ø´Â DirectX
Áö±Ý±îÁö DirectX°¡ 3D ±×·¡ÇÈ¿ë API¶ó´Â°Í°ú °è¼ÓµÈ ¹ßÀüÀ¸·Î ±×·¡ÇÈ ÇÁ·Î¼¼¼ ÀÚü¸¸À¸·Î 3D ±×·¡ÇÈÀ» ¸¸µé¾î³¾¼ö ÀÖ´Ù°í ¼³¸íÇÏ¿´Áö¸¸ APIÀÇ ±â´ÉÀº CPU¸¦ ÅëÇØ Ã³¸®ÇÑ´Ù.
½±°Ô ¸»ÇØ ±×·¡ÇÈ ÇÁ·Î¼¼¼°¡ ¿òÁ÷Àϼö ÀÖµµ·Ï ¸¸µé¾îÁÖ´Â APIÀÇ ±â´ÉÀº CPU¸¦ ÅëÇØ Ã³¸®µÈ´Ù´Â °ÍÀÌ´Ù. ½ÇÁ¦ CPU°¡ ±×·¡ÇÈ ·£´õ¸µ ÀÛ¾÷¿¡ °ü¿©ÇÏÁö ¾ÊÁö¸¸ °¡Àå ±Ùº»ÀÛ¾÷À» CPU°¡ ó¸®ÇØÁÖÁö ¾ÊÀ¸¸é ±×·¡ÇÈ ÇÁ·Î¼¼¼´Â ¿òÁ÷Àϼö°¡ ¾ø°Ô µÈ´Ù. ¹°·Ð CPU°¡ ó¸®ÇØÁÖÁö ¾Ê´Â °æ¿ì´Â ¾ø°ÚÁö¸¸ ±âº»ÀûÀÎ Ai³ª ¹°¸® ¿£Áø±îÁö ½Ç½Ã°£À¸·Î ó¸®ÇؾßÇÏ´Â CPU¸¦ ÅëÇØ 3D ±×·¡ÇÈ ¿¬»êÀ» À§ÇÑ API ÀÛ¾÷±îÁö ó¸®ÇÏ°Ô µÇ±â ¶§¹®¿¡ CPU ¼º´É¿¡ µû¶ó ÇØ´ç ½Ã½ºÅÛÀÇ 3D ±×·¡ÇÈ ·£´õ¸µ ¼º´É°ú Ä÷¸®Æ¼°¡ ´Þ¶óÁö°Ô µÈ´Ù.
API ºÎºÐ¿¡ CPU ¿À¹öÇìµå°¡ ¹ß»ýÇÏ´Â °ÍÀº 3D±×·¡ÇÈ »Ó¸¸ ¾Æ´Ï¶ó ÄÄÇ»ÅÍÀÇ ´Ù¸¥ ÄÞÆ÷³ÍÆ® ºÐ¾ß(³×Æ®¿÷ ºÐ¾ß¿¡µµ CPU ¿À¹öÇìµå ¶§¹®¿¡ ÇØ´ç ³×Æ®¿÷ÀÇ Àü¼Û ´ë¿ªÆøÀ» Á¦´ë·Î È°¿ëÇÏÁö ¸øÇÏ´Â °æ¿ì°¡ ¹ß»ýµÈ´Ù)¿¡µµ Àû¿ëµÇ´Â °ÍÀÌÁö¸¸ 3D ±×·¡ÇÈ ºÐ¾ß´Â ¹®Á¦°¡ ½É°¢ÇÏ´Ù.
¾ç°ú ÁúÀÌ Á¦ÇѵǴø DirectX 9
3D ±×·¡ÇÈ¿¡¼ Çö½Ç°ú °°Àº ȯ°æÀ» ±¸ÇöÇÏ´Â ¹æ¹ýÀº Å©°Ô µÎ°¡Áö·Î »ý°¢Çغ¼¼ö ÀÖ´Ù. Çϳª´Â Çö½Ç¼¼°è¿Í µ¿ÀÏÇÑ ¹°Á¦¸¦ Ç¥ÇöÇÏ´Â °ÍÀÌ°í ¶ÇÇϳª´Â °¢°¢ÀÇ ¹°Ã¼¸¦ ÇöÁ¸ÇÏ´Â ¹°Ã¼¿Í µ¿ÀÏÇÏ°Ô Ç¥ÇöÇÏ´Â °ÍÀÌ´Ù. ÀüÀÚ°¡ ¾çÀûÀÎ ºÎºÐÀÌ°í ÈÄÀÚ°¡ ÁúÀûÀÎ ºÎºÐÀε¥ CPU ¿À¹öÇìµå¿¡ Á¿ìµÇ´Â API ¿À¹öÇìµå·Î ÀÎÇØ ¾çÀûÀÎ ºÎºÐ°ú ÁúÀûÀÎ ºÎºÐÀÌ ¸ðµÎ ¸¹Àº Á¦¾àÀÌ ÀÖ¾ú´Ù.
¾çÀûÀÎ ºÎºÐ¿¡¼ÀÇ ¹®Á¦´Â »ý¼ºÇس¾ ¿ÀºêÁ§Æ® °¹¼öÀÇ Á¦ÇÑ ºÎºÐÀÌ´Ù. ¾î¶² °ÔÀÓÀÇ È¸éÀÌ 200°³ÀÇ ¼·Î ´Ù¸¥ ¿ÀºêÁ§Æ®·Î ±¸¼ºµÇ¾ú´Ù°í °¡Á¤Çغ¸ÀÚ. ÀÌ °ÔÀÓÀ» ½ÇÇàÇÏ¸é °ÔÀÓÀº ÇϳªÀÇ È¸éÀ» ¸¸µé±â À§ÇØ 200°³ÀÇ ¿ÀºêÁ§Æ®¸¦ ·£´õ¸µÇϱâ À§ÇÑ ¸í·É°ú µ¥ÀÌÅ͸¦ ±×·¡ÇÈ ÇÁ·Î¼¼¼·Î Àü´ÞÇÏ·Á°í ÇÒ °ÍÀÌ´Ù. DirectX API´Â ÀÌ ¸í·ÉÀ» ±×·¡ÇÈ ÇÁ·Î¼¼¼·Î Àü´ÞÇϱâ À§ÇÑ ÀÛ¾÷À» ÁøÇàÇÏ°ÚÁö¸¸ ¸¸¾à CPU¿¡ ¹®Á¦°¡ ¹ß»ýÇÏ¿© 200°³ÀÇ ¿ÀºêÁ§Æ® ó¸®ÇÒ ¸í·É°ú µ¥ÀÌÅ͸¦ Àü´ÞÇÏÁö ¸øÇÑ´Ù¸é ±×·¡ÇÈ ÇÁ·Î¼¼¼´Â ¸ðµç µ¥ÀÌÅÍ°¡ µé¾î¿Ã¶§±îÁö ±â´Ù¸± ¼ö¹Û¿¡ ¾ø´Ù.
ÀÌ·± °æ¿ì ¾Æ¹«¸® °í¼º´É ±×·¡ÇÈÄ«µå¸¦ ÀåÂøÇصµ °ÔÀÓÀÇ ÇÁ·¹ÀÓÀº Áõ°¡ÇÏÁö ¸øÇÏ°Ô µÈ´Ù. °ÔÀÓ °³¹ßÀÚµéÀº ÀÌ·± ¹®Á¦°¡ ¹ß»ýÇÏÁö ¸øÇϵµ·Ï °ÔÀÓÀ» °³¹ßÇÒ ¶§ Á¦ÇÑµÈ °¹¼öÀÇ ¿ÀºêÁ§Æ®¸¸À» »ç¿ëÇØ ¿Ô´Ù.
ÁúÀûÀÎ ºÎºÐÀÇ ¹®Á¦µµ ¾çÀûÀΰͰú ºñ½ÁÇÏ´Ù. ÀϹÝÀûÀ¸·Î ÇϳªÀÇ ¿ÀºêÁ§Æ®¿¡´Â ´Ù¼öÀÇ ±×·¡ÇÈ È¿°ú°¡ Àû¿ëµÇ¾î ÀÖ´Ù. ÀÌ ´Ù¾çÇÑ È¿°úµµ °á±¹ API¸¦ ÅëÇØ Ã³¸®µÇÁö¸¸ »ó´çÈ÷ ³ôÀº »çÀÌŬÀÌ ÇÊ¿äÇÑ ºÎºÐÀ̱⠶§¹®¿¡ °á±¹ CPU ¿À¹öÇìµå ¹®Á¦·Î ÀÎÇØ Á¦ÇÑÀûÀÎ Àû¿ë¸¸ °¡´ÉÇÏ¿© ƯÁ¤ ¿ÀºêÁ§Æ®¸¸À» À§ÇÑ ±×·¡ÇÈ È¿°úº¸´Ù´Â ´Ù¼öÀÇ ¿ÀºêÁ§Æ®¿¡ ¸ðµÎ Àû¿ëµÉ ¼ö ÀÖ´Â ±×·¡ÇÈÈ¿°ú À§ÁÖ·Î Àû¿ëµÉ ¼ö¹Û¿¡ ¾ø¾ú´Ù.
ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ Microsoft´Â DirectX 10ÀÇ ±¸Á¶´Â º¯°æÇÏ°í ¸î°¡Áö ±â´ÉÀ» Ãß°¡ÇÏ¿© CPU ¿À¹öÇìµå·Î ÀÎÇÑ API ¿À¹öÇìµå¸¦ ȹ±âÀûÀ¸·Î ÁÙ¿´´Ù°í ÇÑ´Ù.
CPU ¿À¹öÇìµå¸¦ ÁÙÀÎ DirectX 10
±âÁ¸ÀÇ DirectX ±¸Á¶¿¡¼´Â ¿ÀºêÁ§Æ®¿¡ ¾î¶°ÇÑ µå·Î¿ì ÀÛ¾÷À̵çÁö ½ÇÇàµÇ±â Àü¿¡ ÇØ´ç ÀÛ¾÷¸í·É°ú µ¥ÀÌÅ͸¦ °Ë»çÇÏ´Â ÀÛ¾÷À» ½ÇÇàÇÏ°Ô µÇ¾î ÀÖ´Ù. ÀÌ·± ´Ü°è¸¦ °ÅÃÄ ±×·¡ÇÈ ÇÁ·Î¼¼¼¿¡ À߸øµÈ ¸í·ÉÀ̳ª µ¥ÀÌÅÍ°¡ Àü´ÞµÇ´Â °ÍÀ» ¸·À»¼ö ÀÖÁö¸¸ ÀÌ¹Ì Ã³¸®µÇ¾ú´ø ÀÛ¾÷ÀÌ¶óµµ ÇØ´ç ÀÛ¾÷À» ½ÇÇàÇÒ ¶§¸¶´Ù °è¼Ó °Ë»ç ÀÛ¾÷À» ó¸®ÇÏ°Ô µÇ¾î ÀÖ¾î ºÒÇÊ¿äÇÑ ÀÛ¾÷½Ã°£¸¸ ´Ã¾î³¯ »ÓÀ̾ú´Ù.
DirectX 10¿¡¼´Â ÀÌ ºÎºÐÀ» ¼öÁ¤ÇÏ¿© Çѹø °Ë»ç ÀÛ¾÷ÀÌ Ã³¸®µÈ °æ¿ì Ãß°¡ °ËÁõ ¾øÀÌ ÇØ´ç ¸®¼Ò½º¸¦ ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖ°Ô ¸¸µé¾ú´Ù.
°ÔÀÓ¿¡ »ç¿ëµÇ´Â ¿ÀºêÁ§Æ®µéÀº ´Ù¼öÀÇ ÅؽºÃĸ¦ »ç¿ëÇÑ´Ù. ÀÌ ÅؽºÃĵ鵵 µ¿ÀÏÇÑ °ÍÀÌ ¾Æ´Ñ ¼·Î ´Ù¸¥ °ÍÀ» »ç¿ëÇϱ⠶§¹®¿¡ ½ºÀ§Äª ÀÛ¾÷½Ã ³ôÀº API ¿À¹öÇìµå°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. ÀÌ·¯ÇÑ ¹®Á¦·Î ÀÎÇØ ±×·¡ÇÈ ¾ÆƼ½ºÆ®µéÀº texture atlas¶ó´Â ´Ù¼öÀÇ ÀÛÀº ÅؽºÃÄ·Î ¸¸µç ÇϳªÀÇ ÅؽºÃĸ¦ »ç¿ëÇÏ¿´Áö¸¸ DirectX 9±îÁö´Â ÃÖ´ë »ç¿ëÇÒ ¼ö ÀÖ´Â ÅؽºÃÄÀÇ Å©±â´Â 4048 x 4048·Î Á¦ÇÑµÇ¾î ¿Ô´Ù.
ÀÌ ¶§¹®¿¡ ¸ÖƼ ÅؽºÃÄ°¡ Àû¿ëµÇ´Â ¿ÀºêÁ§Æ®ÀÇ °æ¿ì °íÇØ»óµµÀÇ ³ôÀº µðÅ×ÀÏÀ» º¸¿©ÁÙ¼ö ÀÖ´Â ÅؽºÃÄ°¡ Àû¿ëµÇÁö ¸øÇßÁö¸¸ DirectX 10 ºÎÅÍ´Â texture array¶ó´Â »õ·Î¿î °³³äÀ» µµÀÔÇÏ¿© °¢°¢ÀÇ array ±¸Á¶¸¶´Ù 512°³ÀÇ ÅؽºÃĸ¦ ÀúÀåÇÒ ¼ö ÀÖÀ¸¸ç GPU°¡ Á¦¾îÇÏ´Â »õ·Î¿î ÀνºÆ®·°¼ÇÀ» ÅëÇØ ¸ÖƼ ÅؽºÃÄ »ç¿ë½Ã¿¡ CPU ¿À¹öÇìµå ºÎºÐÀ» °³¼±ÇÏ¿´´Ù.
ÀϹÝÀûÀ¸·Î 3D ȸéÀÇ ±¸¼º¿¡¼ ¿ÀºêÁ§Æ®µéÀÇ ¹èÄ¡°¡ ³¡³ª¸é ½ÃÁ¡¿¡¼ º¸ÀÌÁö ¾Ê´Â ºÎºÐÀÇ ¿ÀºêÁ§Æ®´Â Çȼ¿ ó¸® ´Ü°è¸¦ Àû¿ëÇÏÁö ¾Êµµ·Ï ÇÏ´Â ±×·¡ÇÈ ÇÁ·Î¼¼¼ Â÷¿ø¿¡¼ ÀÚµ¿À¸·Î Àû¿ëµÇ´Â culling±â´ÉÀÌ Àû¿ëµÇÁö¸¸ ±×·¡µµ Á¦°ÅµÇÁö ¾Ê°í ·£´õ¸µ µÇ´Â ºÎºÐÀÌ ¹ß»ýÇÏ°Ô µÈ´Ù. ÀÌ·± ¹®Á¦°¡ ¹ß»ýÇÏÁö ¾Ê°Ô °³¹ßÀÚµéÀº predicated draw¶ó´Â ±â¹ýÀ» »ç¿ëÇÏÁö¸¸ ±âÁ¸ ¼¼´ëÀÇ °æ¿ì GPU¿Í CPU°¡ ÇÔ²² ÀÌÀÛ¾÷À» ó¸®Çϱ⠶§¹®¿¡ CPU ¿À¹öÇìµå³ª API ¿À¹öÇìµå ¹ß»ý ¿ä¼ÒÁß¿¡ Çϳª¿´´Ù.
DirectX 10ºÎÅÍ´Â ÀÌ ±â´Éµµ GPU¸¦ ÅëÇؼ¸¸ ó¸®µÉ ¼ö ÀÖµµ·Ï ¸¸µé¾ú´Ù.
¸¶Áö¸·À¸·Î DirectX 10Àº stream outÀ̶ó´Â »õ·Î¿î ±â´ÉÀ» Áö¿øÇÑ´Ù. ±âÁ¸ ¼¼´ëÀÇ ±¸Á¶ÀÇ °æ¿ì geometry µ¥ÀÌÅÍ´Â ¹«Á¶°Ç Pixel Shader¸¦ ÅëÇؼ¸¸ ¸Þ¸ð¸® ÀúÀåÇÒ ¼ö ÀÖ¾ú´Ù. ¿Ö³ÄÇϸé Pixel Shader¸¸ÀÌ ¸Þ¸ð¸®¿¡ Á¢±ÙÇÒ ¼ö ÀÖ¾ú±â ¶§¹®Àε¥ DirectX 10Àº Vertex Shader »Ó¸¸ ¾Æ´Ï¶ó »õ·Ó°Ô Ãß°¡µÈ geometry Shader±îÁöµµ CPU °£¼·¾øÀÌ ´ÙÀÌ·ºÆ®·Î ¸Þ¸ð¸®¿¡ µ¥ÀÌÅ͸¦ ÀúÀåÇÏ°í Àоî¿Ã¼ö ÀÖ°Ô ¸¸µé¾ú´Ù.
ÀÌ·¯ÇÑ ³ë·Â°á°ú DirectX 9 ´ëºñ DirectX 10ÀÇ CPU ¿À¹öÇìµå ºñÀ²Àº À§ÀÇ ±×·¡ÇÁ ó·³ »ó´çºÎºÐ ³·¾ÆÁ³´Ù. À§ÀÇ ÀÚ·á´Â nVIDIA ÀÚ·á¿¡ ÀÇÇÑ °ÍÀÌÁö¸¸ °ÔÀÓ °³¹ßÀÚ¸¦ À§ÇÑ Çà»ç ¶§¸¶´Ù DirectX 10¿¡ ´ëÇÑ ¿©·¯ Á¤º¸¸¦ Á¦°øÇØ¿Â ATIµµ ÀÌ¿Í °°Àº Á¤º¸¸¦ ¼Ò°³ÇÑÀûÀÌ ÀÖ´Ù. ATI´Â API¿Í µå¶óÀ̹öÀÇ ¿À¹öÇìµå°¡ DirectX 10¿¡ ¿Í¼´Â ¹ÝÀ¸·Î ÁÙ¾îµé¾ú´Ù°í ¼Ò°³ÇÏ¿´´Ù.
ÄÄÇ»ÅÍ¿¡¼ÀÇ 3D ±×·¡ÇÈ, ƯÈ÷ ½Ç½Ã°£ ·£´õ¸µÀÌ ÇÊ¿äÇÑ °ÔÀÓ°°Àº ȯ°æÀº ¾î¿¼ö ¾øÀÌ CPU¿¡ ÀÇÁ¸ÇÏ´Â ºÎºÐÀÌ Á¸ÀçÇÒ ¼ö¹Û¿¡ ¾øÁö¸¸ Áö±Ýó·³ °è¼ÓµÈ ¹ßÀüÀÌ ÀÖ´Ù¸é ¾çÀûÀÎ ¹ßÀü°ú ÁúÀûÀÎ ¹ßÀüÀ» ÅëÇØ ¾ðÁ¨°£ CG¿Í µ¿ÀÏÇÑ È¸éÀ¸·Î °ÔÀÓÀ» Áñ±æ¼ö ÀÖ´Â ³¯ÀÌ ´Ù°¡¿Ã °ÍÀÌ´Ù.
|