¡Ô µ¨ÆÄÀÌ °ÔÀÓ Á¦ÀÛ ¼ÒÇ°

 ¡å Direct3D¿¡¼­ ÇÑ±Û °í¼Ó ó¸®

Delphi

¼Ò½ºêó

(³ª´Â ¿¹ÀüºÎÅÍ Á¶ÇÕÇü ÇѱÛÀÇ ½ÅºÀÀÚ¿´´Ù. ºñ·Ï ȸ»ç¿¡¼­´Â ¿Ï¼ºÇüÀ̳ª unicodeÀÇ font engineÀ» ´ã´çÇÏ°í ÀÖÁö¸¸¼­µµ...)

AVEJ¸¦ ¸¸µé¸é¼­ ¼º´É¸é¿¡¼­ °¡Àå Áß¿äÇÏ°Ô »ý°¢ÇÑ °ÍÀÌ ÇÑ±Û Ãâ·Â ¼ÓµµÀÌ´Ù. ÀÌ °ÔÀÓÀº ´ëÈ­°¡ ¸¹Àº ºÎºÐÀ» Â÷Áö Çϱ⠶§¹®ÀÌ´Ù. ÀÌÀü¿¡ °è¼Ó »ç¿ëÇØ ¿Ô´ø DirectX 7.0Àº 2D surface°¡ 3D texture·Î »ç¿ë°¡´ÉÇϱ⠶§¹®¿¡ ÇѱÛÀ» Á¶ÇÕÇÏ¿© 2D surface¿¡ ¾²°í ±×°ÍÀ» 3D texture·Î È­¸é¿¡ Ãâ·ÂÇÏ¸é ¾î´À Á¤µµ ¸¸Á·ÇÒ¸¸ÇÑ ¼Óµµ¸¦ ³»¾ú¾ú´Ù.

±×·±µ¥ ¹®Á¦´Â AVEJ¸¦ DirectX 9.0·Î °³¹ßÇÏ°Ú´Ù°í ÇÑ ÈĺÎÅÍ¿´´Ù. Á¦ÀÏ Ã³À½¿¡´Â ±×³É 3D texture¿¡ lockÀ» °É°í Á÷Á¢ ÆùÆ®¸¦ ·»´õ¸µÇÏ´Â ¹æ¹ýÀ» ½è¾ú´Âµ¥ profilingÇØ º» °á°ú ¸ðµç ºÎÇÏÀÇ 90% ÀÌ»óÀ» ÆùÆ® Ãâ·ÂÀÌ Â÷ÁöÇÏ°í ÀÖ¾ú´Ù. ±×·¡¼­ °á±¹ ³»ºÎ character code´Â unicode 2.0À̸ç Ãâ·Â¿ë ÆùÆ®¼ÂÀº ÇÑ±Û Á¶ÇÕÇüÀ» »ç¿ëÇß´Ù. ±×·¡¼­ ºÎÇϸ¦ 46%±îÁö ³»·Á¼­ »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. ÇÏÁö¸¸ ¿ª½Ã °ÔÀÓ ³»¿¡¼­ ÅؽºÆ® Ãâ·ÂÀÌ Â÷ÁöÇÏ´Â ºñÀ²Àº ¿©ÀüÈ÷ ÄÇ´Ù.

±× ´ÙÀ½À¸·Î´Â font cachingÀ» »ý°¢Çß´Ù. ¾îÂ÷ÇÇ ÀÚÁÖ ¾²´Â ±ÛÀÚ°¡ ¸¹Áö ¾ÊÀ» °ÍÀ̹ǷΠ1024*1024 Á¤µµÀÇ texture¸é cashe buffer·Î ÃæºÐÇÏ´Ù°í »ý°¢ÇÏ°í ±×ÂÊÀ¸·Î ´ë¼¼¸¦ ±â¿ï¿© °¡°í ÀÖ¾ú´Ù. (°ÔÀÓÀÇ °æ¿ì¿¡´Â À¯ÀúÀÇ ÀÔ·ÂÀ» Á¦¿ÜÇÏ°í´Â ´ÝÇôÁø ÀÔ·ÂÀ̹ǷΠ°ÔÀÓ ½ÃÀÛ ½Ã¿¡ ÀÌ¹Ì °¡Àå È¿À²ÀûÀÎ cache¸¦ ¹Ì¸® ã¾Æ ³õÀ» ¼ö ÀÖÀ» °ÍÀ̶ó »ý°¢ÇÑ´Ù.) ÇÏÁö¸¸ '”î'°ú °°ÀÌ cache buffer¿¡ hitµÇÁö ¾ÊÀ» ¹®ÀÚ¸¦ ÀÔ·ÂÇßÀ» ¶§ texure¿¡ lockÀ» °É¾î¾ß ÇÏ´Â °ÍÀº ¾î¿ ¼ö ¾ø´Â °ÍÀÌ´Ù. ±×·¡¼­ ¾Æ¿¹ KSC5601 ¿Ï¼ºÇü¿¡¼­ 2350ÀÚ¸¦ ¹Ì¸® ¿Ã·Á ³õ°í Ãâ·ÂÇÒ±îÇÏ´Â »ý°¢µµ ÇغÃÁö¸¸ ÀÌ°Í ¿ª½Ã '¼„', 'Œc' µîÀÇ ±ÛÀÚ ¾Õ¿¡¼­´Â lockÀ» °É¾î¾ß ÇÏ´Â °ÍÀ̾ú´Ù. (ÇѱÛÀ» ¸ðµÎ Ãâ·ÂÇϱâ À§Çؼ­´Â 11200ÀÚ Á¤µµ°¡ ÇÊ¿äÇѵ¥ ÀÌ°ÍÀ» ¸ðµÎ texture¿¡ ¿Ã¸®±â À§Çؼ­´Â font¸¶´Ù 3MÁ¤µµ°¡ µç´Ù.)

Á¶°Ç1. °ÔÀÓÀÌ ½ÃÀÛµÈ ÈÄ ÆùÆ® Ãâ·ÂÀ» À§ÇØ texture¿¡ lockÀ» °É°í ½ÍÁö´Â ¾Ê´Ù.
Á¶°Ç2. TextureÀÇ ÇüÅ·Π»ç¿ëµÇ´Â caching buffer¸¦ ÃÖ¼Ò·Î ÇÏ°í ½Í´Ù.
Á¶°Ç3. DirectX¿¡¼­ Á¦°øÇÏ´Â font class´Â ¾²°í ½ÍÁö ¾Ê´Ù.

±×·±µ¥ °©ÀÚ±â À̰͵éÀ» ¾ÆÁÖ ½±°Ô ÇØ°áÇÒ ¼ö ÀÖÀ» °Í °°Àº »ý°¢ÀÌ ¶°¿Ã¶ú´Ù.

±×°ÍÀº ¹Ù·Î À§´ëÇÑ 'ÇÑ±Û Á¶ÇÕÇü!!'. ¿©Å±îÁö °è¼Ó, Ãʼº Áß¼º Á¾¼ºÀÌ Á¶ÇÕÀ» ¸¶Ä£ °ÍÀ» °¡Áö°í cache¸¦ ÇÏ·Á°í ´Þ·Áµé¾ú±â ¶§¹®¿¡ ¾ÆÁÖ ±âº» ÀûÀÎ °ÍÀ» °£°úÇÏ°í ÀÖ¾ú´Ù. Á¶ÇÕÇüÀÇ raw data¸¦ Á÷Á¢ texture¿¡ ¿Ã·Á ³õ°í ÇÑ ±ÛÀÚ´ç 2-3¹øÀÇ blitting¸¸ Çϸé lock¾øÀÌ ¸ðµÎ ÇØ°áµÇ´Â °ÍÀ̾ú´Ù. (font color´Â vertext color¸¦ Á¶ÀýÇÏ·Á ±¸Çö) °è»ê±â·Î °è»êÇغ» °á°ú 16*16 Å©±âÀÇ ÇѱÛÀ» »ç¿ëÇÒ ¶§ 12000ÀÚ¸¦ ¸ðµÎ Ç¥ÇöÇϱâ À§Çؼ­µµ 300*300ÀÇ texture buffer¸¸ ÀÖÀ¸¸é µÇ¾ú´Ù. 2ÀÇ ½Â¼ö·Î texture¸¦ Àâ´Â´Ù¸é 512*256 Á¤µµ°¡ µÇ°í ÀÌ Á¤µµ¸é ascii°ú latin1ÀÇ ¿µ¿ªµµ Æ÷ÇÔÇÏ°í ÇÊ¿äÇÑ Æ¯¼ö¹®ÀÚµµ ³²´Â °ø°£¿¡ Áý¾î ³ÖÀ» ¼ö ÀÖÀ» °Í °°´Ù. »ç½Ç ±ÛÀÚ°¡ º¯ÇÏÁö ¾Ê´Â ÀÌ»óÀº Á¶ÇÕµÈ ±ÛÀÚ°¡ render targetÀ¸·Î ¼³Á¤µÈ font Ãâ·Â¿ë texture¿¡ ³²¾Æ ÀÖÀ» °ÍÀ̱⠶§¹®¿¡ ½ÇÁ¦ °ÔÀÓ¿¡¼­ ºÎÇÏÀ²À» ´õ ¶³¾îÁú °ÍÀ¸·Î ¿¹»óµÈ´Ù.

À§ÀÇ »ý°¢À» °¡Áö°í ¸¸µç °ÍÀÌ ¾Æ·¡ÀÇ Ã·ºÎÆÄÀÏÀÌ´Ù. µ¨ÆÄÀ̸¦ ÀÌ¿ëÇؼ­ °¡Àå °£´ÜÇÏ°Ô Direct3D¸¦ ±¸¼ºÇÏ°í ±ÛÀÚ¸¦ Ãâ·ÂÇϵµ·Ï Çß´Ù. ±ÛÀÚ·Î È­¸éÀ» °¡µæ ä¿ì´Â ¿¹Á¦Àε¥, ÇöÀç ³ªÀÇ ±×·¡ÇÈ Ä«µå¿¡¼­´Â FPS°¡ vertical retrace ºñÀ²°ú µ¿ÀÏÇÑ °á°ú·Î ³ª¿Ô´Ù. Áï ÇÑ±Û Ãâ·Â¿¡ ÀÇÇÑ ºÎÇÏ´Â ÃøÁ¤Çϱ⠾î·Æ´Ù´Â °á·ÐÀÌ´Ù.

÷ºÎÆÄÀÏ (68K) (Delphi 5¿¡¼­ ÀÛ¼ºµÇ¾úÀ½)