·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  °³¹ß   Ç÷§Æû   ½Ã½ºÅÛ   ¸Å´ÏÁö¸ÕÆ®   Àüü±â»ç  
ÀÚ¹Ù
´å³Ý
C/C++
DB
¸ðµ¨¸µ
À¥°³¹ß
±âŸ
À¯´Ð½º/¸®´ª½º
À©µµ¿ì
±âŸ
¼­¹ö
³×Æ®¿öÅ©
º¸¾È
±âŸ
BM
PM
±âŸ
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
[¸ð¹ÙÀÏ 3D °ÔÀÓÀ» ¸¸µéÀÚ] ¨ç G3 SDK ¸Àº¸±â

Á¶Á¾±Ù, ±¸º´±â, ½Å±â·ç (¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î ÇÊÀÚ)   2004/05/20
[Áöµð³ÝÄÚ¸®¾Æ]ÇöÀç ¸ð¹ÙÀÏ È¯°æ¿¡¼­ °ÔÀÓÀ» ¸¸µé±â À§Çؼ­´Â À§ÇÇ(WIPI), SK-VM, GNEX(GVM), ºê·ç(Brew) µî ¸ð¹ÙÀÏ ÄÁÅÙÃ÷ °³¹ß µµ±¸¸¦ ÀÌ¿ëÇØ¾ß ÇÑ´Ù. ÃÖ±Ù¿¡´Â À§ÇǸ¦ Áß½ÉÀ¸·Î ¸ð¹ÙÀÏ Ç÷§ÆûÀÌ ÅëÇÕµÇ¾î °¡°í Àִµ¥, ƯÈ÷ À§ÇÇ Ç÷§ÆûÀ» žÀçÇÑ ´Ü¸»±âµéÀÌ ¸¹ÀÌ ½ÃÆÇµÉ ¿¹Á¤À̶ó À§ÇÇ Ç÷§Æû °ü·Ã °ÔÀÓµéÀÌ ´ë·® Ãâ½ÃµÉ Àü¸ÁÀÌ´Ù.

¸ð¹ÙÀÏ °ÔÀÓÀÇ °³¹ß Ãß¼¼´Â ´Ü¸»±âÀÇ ¼º´ÉÀÌ ³ô¾ÆÁü¿¡ µû¶ó Á» ´õ ºü¸£°í ÁÁÀº ±×·¡ÇÈÀ» ±â¹ÝÀ¸·Î ÇÏ´Â °ÍÀ¸·Î ÁøÇàµÇ°í ÀÖ´Ù. ƯÈ÷ ³ÐÀº °ø°£°¨À» Á¦°øÇÏ´Â 3D ±â¹ÝÀÇ °ÔÀÓÀº °³¹ßÀÚ »çÀÌ¿¡¼­ °ü½ÉÀÌ ÁýÁߵǴ ºÐ¾ß°¡ µÇ°í ÀÖ´Ù. 3D ÄÁÅÙÃ÷´Â ´Ü¸»±â¿¡ 3D ¼ÒÇÁÆ®¿þ¾î ¿£ÁøÀÌ Å¾ÀçµÈ Áö³­ÇغÎÅÍ ¹ÙÅÁÈ­¸é ¾Æ¹ÙŸ³ª °ÔÀÓ µîÀ¸·Î Ȱ¿ëµÇ±â ½ÃÀÛÇßÀ¸¸ç, ¿ÃÇØ´Â 3D °ü·Ã ÄÁÅÙÃ÷°¡ ´õ¿í ¸¹ÀÌ ³ª¿Ã °ÍÀ¸·Î ¿¹»óµÈ´Ù.

¸ð¹ÙÀÏ °ÔÀÓÀ» ¸¸µé¾î º» °³¹ßÀÚ¶ó¸é ´ç¿¬È÷ 3D °ÔÀÓÀ» ¸¸µé±â À§ÇØ ¾î¶°ÇÑ ÅøÀÌ ÇÊ¿äÇÑ Áö ±Ã±ÝÇØ ÇÒ °ÍÀÌ´Ù. À̸¦ À§ÇØ 3ȸ¿¡ °ÉÃÄ ¸ð¹ÙÀÏ 3D °ÔÀÓ Á¦ÀÛ¿¡¼­ ½ÇÁ¦·Î »ç¿ëµÇ°í ÀÖ´Â SDK¸¦ ÀÌ¿ëÇÑ ½ÇÀü ÇÁ·Î±×·¡¹ÖÀ» ¿¬ÀçÇÏ·Á°í ÇÑ´Ù.

´Ù¸¸ ¸ð¹ÙÀÏ 3D¿Í °ü·ÃµÈ ¿©·¯ °¡Áö ½ÃÀå µ¿ÇâÀ̳ª ±â¼ú ³»¿ëµéÀ» »ó¼¼ÇÏ°Ô ¼Ò°³ÇÏ°í ½Í¾îµµ Çö½ÇÀûÀÎ ¿©°Ç ¶§¹®¿¡ ¸¸Á·½º·¯¿ï ¸¸Å­ ÃæºÐÈ÷ ¼³¸íÇÏÁö ¸øÇÏ´Â Á¡Àº ÀÎÁ¤ÇÒ ¼ö¹Û¿¡ ¾ø´Ù(ºü¸£°Ô º¯È­µÇ°í ÀÖ´Â ¸ð¹ÙÀÏ ±â¼ú°ú ½ÃÀå »óȲ»Ó¸¸ ¾Æ´Ï¶ó ¸ð¹ÙÀÏ °ü·Ã °¢ ¾÷üµéÀÇ Áß¿äÇÑ »ç¾÷ ¿µ¿ªÀ̹ǷΠ¸ðµç ³»¿ëÀ» ¼Ò°³Çϱâ´Â »ç½Ç»ó ¾î·Æ´Ù). µû¶ó¼­ 3D¿Í °ü·ÃµÈ Á¦Ç° Á¤º¸°¡ ºñ±³Àû ÀÚ¼¼ÇÏ°Ô ¼­¼úµÇÁö ¸øÇÒ ¼öµµ ÀÖÀ½À» ¹Ì¸® ¾çÇØÇØ Áֱ⠹ٶõ´Ù.

G3 SDK ¼Ò°³
´ç¿¬ÇÑ ¸»À̰ÚÁö¸¸ °ÔÀÓÀ» ¸¸µé±â À§Çؼ­´Â SDK°¡ ÀÖ¾î¾ß ÇÑ´Ù. ¸ð¹ÙÀÏ ÇÁ·Î±×·¡¹ÖÀ» ÇØº» µ¶ÀÚ¶ó¸é ´Ù¿î·Îµå Ç÷§Æû¿¡ µû¶ó¼­ SDK°¡ Á¸ÀçÇϰí, À̸¦ ÀÌ¿ëÇØ¾ß¸¸ ÄÁÅÙÃ÷¸¦ Á¦ÀÛÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù.

¿ì¸®°¡ ÈçÈ÷ ¾Ë°í ÀÖ´Â Ç÷§Æû Áß ´Ù¿î·Îµå °¡´ÉÇÑ SDK·Î´Â À§ÇÇ SDK, SK-VM SDK, ºê·ç SDK, GNEX SDK µîÀÌ ÀÖ´Ù. 2¿ù ¸» ÇöÀç ¸î¸î SDK¿¡´Â 3D ¸ðµ¨À» ·ÎµùÇϰí È­¸é¿¡ Ç¥½ÃÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Ãß°¡ÀûÀ¸·Î Á¦°øÇÏ´Â ¸ðµâÀÌ Å¾ÀçµÈ °Íµéµµ ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ¹Ì ÆÛÁ® ÀÖ´Â ´Ü¸»±â ȯ°æ¿¡¼­´Â ¼º´É ¹®Á¦·Î ÀÎÇØ ¾ÆÁ÷±îÁö ¸¸Á·½º·¯¿î ¼Óµµ¸¦ Á¦°øÇÏÁö´Â ¸øÇϰí ÀÖ´Ù. ±×·¯³ª 3°³ À̵¿Åë½Å »ç¾÷ÀÚµéÀ» Áß½ÉÀ¸·Î 3D °ÔÀÓ Á¦ÀÛÀ» À§ÇÑ È®Àå APIµéÀ» ¸¶·ÃÇϰí Àֱ⠶§¹®¿¡ Á¶¸¸°£ °³¹ßÀڵ鿡°Ôµµ ÁÁÀº °ÔÀÓÀ» Á¦ÀÛÇÒ ¼ö Àִ ȯ°æÀÌ Á¦°øµÇ¸®¶ó ±â´ëÇÑ´Ù.

º» ¿¬Àç¿¡¼­´Â ÀÌ¿Í °°Àº Çö½ÇÀ» °í·ÁÇØ ´Ù¿î·Îµå °¡´ÉÇÑ Ç÷§ÆûÀ» À§ÇÑ SDK°¡ ¾Æ´Ï¶ó ¼º´É ÃÖÀûÈ­°¡ °¡´ÉÇÑ ÀÓº£µðµå ŸÀÔÀÇ °ÔÀÓÀ» Á¦ÀÛÇÒ ¼ö ÀÖ´Â SDK¸¦ ÀÌ¿ëÇØ °³¹ß ȯ°æÀ» »ìÆìº»´Ù. ÇöÀç °í¹Ìµå°¡ °³¹ßÇÑ G3 SDK´Â ÀÓº£µðµå ÇüÅÂÀÇ 3D °ÔÀÓÀ» Á¦ÀÛÇÒ ¼ö ÀÖ´Â SDK·Î, ½ÇÁ¦ ÀÓº£µðµåÇü 3D °ÔÀÓÀ» °³¹ßÇÏ´Â µ¥ Ȱ¿ëµÇ°í ÀÖ´Ù.

G3 SDK´Â ¸ð¹ÙÀÏ 3DÀÇ Ç¥ÁØÀÎ OpenGL ES(OpenGL for Embedded Systems) 1.0À» Áö¿øÇÑ´Ù. 3D ¸ðµ¨À» ·ÎµùÇÏ°í ¸ðµ¨À» ¹èÄ¡Çϰí Ä«¸Þ¶ó ¿öÅ©¸¦ Áö¿øÇÏ´Â ¶óÀ̺귯¸®¸¦ Á¦°øÇϱ⠶§¹®¿¡ ¸ð¹ÙÀÏ 3D °ÔÀÓÀ» °³¹ßÇÏ´Â µ¥ ÁÁÀº ȯ°æÀ» Á¦°øÇÑ´Ù. µû¶ó¼­ ¸ð¹ÙÀÏ 3D Ç¥ÁØ¿¡ ±âÃÊÇÑ °ÔÀÓ °³¹ßÀ» ¼öÇàÇØ º¼ ¼ö ÀÖ´Ù´Â Ãø¸é¿¡¼­ ÀÇÀǰ¡ ÀÖ´Ù°í »ý°¢µÈ´Ù. À̹ø È£¿¡¼­´Â G3 SDK¸¦ ÀÌ¿ëÇÑ 3D ÇÁ·Î±×·¡¹ÖÀ» ½ÃÀÛÇϱ⿡ ¾Õ¼­ ¸ð¹ÙÀÏ 3DÀÇ ÀÀ¿ë ºÐ¾ß¿Í °ü·Ã ±â¼ú¿¡ ´ëÇØ¼­ °£·«ÇÏ°Ô ¾ð±ÞÇϰíÀÚ ÇÑ´Ù.

¸ð¹ÙÀÏ 3D ÀÀ¿ë ºÐ¾ß
´Ü¼øÇÑ À½¼º ÅëÈ­ À§ÁÖÀÇ À̵¿Åë½Å ½ÃÀå¿¡¼­ °ÔÀÓÀ̳ª ¹ÙÅÁÈ­¸é°ú °°Àº ÄÁÅÙÃ÷¿Í ºê¶ó¿ìÀú¸¦ ÅëÇØ Á¢¼ÓÇÏ´Â ¹«¼± ÄÁÅÙÃ÷´Â ÀÌ¹Ì ÁÁÀº ¼öÀÍ ¸ðµ¨À» Á¦°øÇØÁÖ°í ÀÖ´Ù. ¶ÇÇÑ ±âÁ¸ ÄÁÅÙÃ÷ ½ÃÀåÀÇ °æÀïÀÌ ½ÉÇØÁö°í Ä÷¯ÆùÀ̳ª Ä«¸Þ¶óÆù µî À¶ÇÕÇü °í¼º´É ÈÞ´ë ´Ü¸»±â°¡ ´ëÁßÈ­µÊ¿¡ µû¶ó °í¼º´É ´Ü¸»±â¿¡ ÀûÇÕÇÑ Â÷º°µÈ °í±Þ ÄÁÅÙÃ÷°¡ ¿ä±¸µÇ°í ÀÖ´Ù.

°í¼º´É ÈÞ´ë ´Ü¸»±â°¡ °®Ãç¾ß ÇÒ »õ·Î¿î ±â´ÉµéÀº ¸Þ°¡Çȼ¿ Ä«¸Þ¶ó, MPEG4 µ¿¿µ»ó, ±×¸®°í 3D Áö¿ø µîÀ̶ó ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ½ÃÀå »óȲ¿¡ ¸ÂÃç ÇöÀç ´Ù¾çÇÑ Ä¨ Á¦Á¶»ç, ´Ü¸»±â Á¦Á¶»ç, À̵¿Åë½Å»çµéÀÌ ¸ðµÎ ÀÌ·¯ÇÑ ¼­ºñ½º¸¦ ÁغñÇϰí ÀÖ´Ù. ÀÌ Áß¿¡¼­ ¸ð¹ÙÀÏ 3D ±â´ÉÀ» ÀÌ¿ëÇÑ ¼­ºñ½º ÀÀ¿ë ºÐ¾ß´Â [±×¸² 1]ó·³ 3D ¹ÙÅÁÈ­¸é ¼­ºñ½º, 3D °ÔÀÓ, 3D UI µîÀÌ ÇöÀç ¼­ºñ½º °¡´ÉÇÑ ¹üÁÖ¿¡ ÀÖ´Ù.

[±×¸² 1] ¸ð¹ÙÀÏ 3D ÀÀ¿ë ºÐ¾ß

3D ¹ÙÅÁÈ­¸é ¼­ºñ½º
ÈÞ´ëÆù¿¡¼­ °¡Àå ½±°Ô È®ÀÎÇÒ ¼ö ÀÖ´Â ÄÁÅÙÃ÷°¡ ¹Ù·Î ¹ÙÅÁÈ­¸éÀÌ´Ù. Ãʱ⿣ 2D À̹ÌÁö¸¦ Áß½ÉÀ¸·Î Àû¿ëµÇ´Ù°¡ ÃÖ±Ù¿¡´Â ´Ù¿î·Îµå Ç÷§Æû¿¡¼­ Á¦ÀÛµÈ ÀÀ¿ë ÇÁ·Î±×·¥À¸·Îµµ Àû¿ëÇÒ ¼ö ÀÖµµ·Ï º¯°æµÇ¾ú´Ù. ÀÌ·¯ÇÑ º¯È­´Â ´Ü¼øÇÑ ÇüÅÂÀÇ ¹ÙÅÁÈ­¸éÀÌ ¾Æ´Ï¶ó Á» ´õ ´ÙÀ̳»¹ÍÇÑ À̹ÌÁöÀÇ ¹ÙÅÁÈ­¸éÀ» ¿ä±¸ÇÏ´Â »ç¿ëÀÚµéÀÇ ¼ö¿ä°¡ ¸¹¾ÆÁ³´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌ·¯ÇÑ Ãø¸é¿¡¼­ ±âÁ¸ÀÇ 2D À̹ÌÁö°¡ ¾Æ´Ñ 3D ¾Æ¹ÙŸ°¡ ÃãÃß°í °¨Á¤À» Ç¥ÇöÇØ Á» ´õ Çö½Ç°¨ÀÌ ÀÖ°í, °³¼º ÀÖ´Â ¹ÙÅÁÈ­¸éÀ» ²Ù¹Ð ¼ö ÀÖ´Â ¼­ºñ½º¸¦ »ý°¢ÇÒ ¼ö ÀÖ´Ù.

3D ¹ÙÅÁÈ­¸é ¼­ºñ½º´Â ÇöÀç KTFÀÇ Ãֽд܏»±âÀÎ LG-KV1400 ¸ðµ¨À» ÅëÇØ ¼­ºñ½ºµÇ°í ÀÖ´Ù. KTF ¡®¸ÅÁ÷¿£(Magic¨Ú)¡¯¿¡¼­ ¡®3D ±×¸²³ª¶ó¡¯ ¼­ºñ½º·Î Á¦°øµÇ´Â ÀÌ ¼­ºñ½º´Â ij¸¯ÅÍ, ¾Ö´Ï¸ÞÀ̼Ç, ¹ÙÅÁ ±×¸² µîÀ» º¯°æÇØ °¡¸é¼­ »ç¿ëÀÚ°¡ ¿øÇÏ´Â 3D ij¸¯ÅÍ, ¹è°æ, ¾Ö´Ï¸ÞÀ̼ÇÀ» ¼±ÅÃ, Á¶ÇÕÇØ ÀڽŸ¸ÀÇ È­¸éÀ» ±¸¼ºÇÒ ¼ö ÀÖ´Ù.

ÀÌ·± ¼­ºñ½º´Â ¾ÆÁ÷±îÁö LGÀüÀÚ¿Í »ï¼ºÀüÀÚ ´Ü¸»±â¸¦ ÅëÇØ KTF¿Í SKÅÚ·¹ÄÞ ¼­ºñ½º¿¡¼­¸¸ °¡´ÉÇÏÁö¸¸ ¾ÕÀ¸·Î ´Ù¾çÇÑ ´Ü¸»±â Á¦Á¶»çÀÇ Á¦Ç°°ú À̵¿Åë½Å ¼­ºñ½º·Îµµ Á¦°øµÉ °ÍÀ¸·Î ¿¹»óµÈ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ´Ù¾çÇÑ ÇüÅÂÀÇ ÀÀ¿ëÀÌ °¡´ÉÇϱ⠶§¹®¿¡ ¾ÕÀ¸·Î ´õ Àç¹ÌÀÖ´Â ¹ÙÅÁÈ­¸é ¼­ºñ½ºµµ ±â´ëÇØ º»´Ù.

[Ç¥ 1] ÇöÀç Á¦°øµÇ´Â 3D ¹ÙÅÁ È­¸é ¼­ºñ½º 
 KTFSKT
¹ÙÅÁÈ­¸é ¼­ºñ½º¹æ½ÄÆù ³»ÀåÇüWTOP ´Ù¿î·Îµå Çü
ÄÁÅÙÃ÷ Á¦°ø¹æ½ÄÅ׸¶Çü, Á¶ÇÕÇüÅ׸¶Çü
Áö¿ø ´Ü¸»±âLG KV1400»ï¼º S1000´õ Ãß°¡¿¹Á¤GIGA ´ëÀÀ ´Ü¸»±â

¸ð¹ÙÀÏ 3D °ÔÀÓ
¸ð¹ÙÀÏ 3D °ÔÀÓÀº Å©°Ô ´Ù¿î·ÎµåÇü °ÔÀÓ, ÀÓº£µðµåÇü °ÔÀÓ, PDA ¶Ç´Â ÄÜ¼Ö °ÔÀÓ±â ÇüÅ·Π³ª´­ ¼ö ÀÖ´Ù. ´Ù¿î·ÎµåÇü °ÔÀÓÀº ´Ù¿î·Îµå Ç÷§ÆûÀ» ÀÌ¿ëÇØ °³¹ßµÈ °ÔÀÓÀ¸·Î, ¿©·¯ ´Ü¸»±â¿¡¼­ ´Ù¿î·ÎµåÇØ °ÔÀÓÀ» Áñ±æ ¼ö ÀÖÀ¸³ª À̸¦ À§Çؼ­´Â 3D ¿£ÁøÀÌ ¼ÒÇÁÆ®¿þ¾îÀûÀ¸·Î ±¸ÇöµÇ¾î¾ß ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù(ÇÏÁö¸¸ »ç¿ëÀÚµéÀÌ °®°í ÀÖ´Â ´ëºÎºÐÀÇ ´Ü¸»±â°¡ ¼º´ÉÀÌ ³·Àº CPU¸¦ ±â¹ÝÀ¸·Î »ç¿ëµÇ°í Àֱ⠶§¹®¿¡ ½ÇÁ¦·Î´Â ÃֽŠÈÞ´ëÆùÀ» °¡Áö°í ÀÖ¾î¾ß 3D È¿°ú¸¦ ³»´Â °ÔÀÓµéÀ» ÀÌ¿ëÇØ º¼ ¼ö ÀÖ´Ù).

ÀÓº£µðµåÇü °ÔÀÓÀ¸·Î´Â ÈÞ´ëÆùÀÌ Ãâ½ÃµÉ ¶§ ÇÔ²² žÀçµÇ¾î Á¦°øµÇ´Â °ÔÀÓÀ¸·Î ´Ù¿î·ÎµåÇü °ÔÀÓ¿¡ ºñÇØ ´Ü¸»±â¿¡ ÃÖÀûÈ­µÈ ÇüÅ·Π°ÔÀÓÀÌ Á¦°øµÉ ¼ö ÀÖ´Ù. PDA ¶Ç´Â ÄÜ¼Ö °ÔÀÓ±â ÇüÅÂÀÇ °ÔÀÓÀº ½ÇÁ¦ PDA ¶Ç´Â ³ëŰ¾ÆÀÇ N-Gage µî¿¡¼­ µ¿ÀÛÇÏ´Â °ÔÀÓÀÌ´Ù.

ÇöÀç 3D °ÔÀÓÀÌ ¸¹ÀÌ ¸¸µé¾îÁöÁö ¾Ê°í ÀÖ´Â ÀÌÀ¯´Â ¸¶¶¥È÷ ÄÁÅÙÃ÷¸¦ Á¦ÀÛÇÒ ¸¸ÇÑ ´Ü¸»±â°¡ ¾ø´Ù´Â ÀÌÀ¯°¡ °¡Àå Å©¸ç, ¶Ç ´Ù¸¥ ÀÌÀ¯´Â °³¹ß ¿©°ÇÀÌ ¾ÆÁ÷±îÁö ÁÁÁö ¾Ê±â ¶§¹®ÀÌ´Ù. ÀÏ´Ü 3D ¼º´ÉÀÌ ¶Ù¾î³­ ´Ü¸»±â°¡ ½ÃÀå¿¡ ¸¹ÀÌ Ç®¸®¸é 3D °ÔÀÓ ¿ª½Ã Áõ°¡ÇÒ °ÍÀ¸·Î »ý°¢µÈ´Ù. ±¹³»ÀÇ °æ¿ì¿£ ÀϺΠ´Ü¸»±â¿¡ 3D °ÔÀÓÀÌ Àû¿ëµÇ¾úÀ¸³ª ¾ÆÁ÷±îÁö ÀϹÝÈ­µÇ´Â Ãß¼¼´Â ¾Æ´Ï´Ù. Á¶¸¸°£ Á» ´õ ÁÁÀº 3D °ÔÀÓÀ» Áñ±æ ¼ö ÀÖ´Â ´Ü¸»±â°¡ Ãâ½ÃµÉ °ÍÀ¸·Î ±â´ëÇϰí ÀÖ´Ù.

ÀϺ»ÀÇ °æ¿ì Hi-Corp¶ó´Â ȸ»çÀÇ 3D ¼ÒÇÁÆ®¿þ¾î ¿£ÁøÀÌ Å¾ÀçµÈ ÆùÀÌ ¸¹ÀÌ Ãâ½ÃµÅ ÀÖ´Ù. ´Ù¾çÇÑ °ÔÀÓ ÄÁÅÙÃ÷°¡ ÀÖÁö¸¸ ¼ÒÇÁÆ®¿þ¾î ¿£Áø ±â¹ÝÀ̱⠶§¹®¿¡ ÁÖ·Î ¾û¼ºÇÏ°í ¾î¼³Ç ÇüÅ·ΠÁ¦À۵Ǿî ÀÖ´Ù. À¯·´ ¼öÃ⠸𵨿¡¼­´Â ³ëŰ¾Æ¿Í °°Àº N-Gage °ÔÀÓÇü ´Ü¸»±â¿¡ ¸î °¡Áö 3D ÄÁÅÙÃ÷¸¦ Á¦°øÇϰí Àִµ¥, ÀÌ Á¦Ç°Àº ´ÑÅÙµµÀÇ ÈÞ´ë¿ë °ÔÀӱ⠡®°ÔÀÓº¸ÀÌ¡¯¸¦ º¥Ä¡¸¶Å·ÇÑ Á¦Ç°ÀÌ´Ù. À̵¿Åë½Å/½º¸¶Æ®Æù¿ë OSÀÎ ½Éºñ¾È(Symbian) OS¸¦ žÀçÇÏ¿´À¸¸ç, 3D °ÔÀÓÀ¸·Î´Â ¸ðÅä ·¹À̼­, Åù ·¹ÀÌ´õ µîÀÌ ÀÖ´Ù.

À¯·´ÀÇ °æ¿ì ¸ð¹ÙÀÏ °ÔÀÓÀ» Á¦ÀÛÇϱâ À§ÇÑ Ç÷§ÆûÀ¸·Î J2ME¸¦ °¡Àå ¸¹ÀÌ »ç¿ëÇÑ´Ù. J2ME ȯ°æ¿¡¼­ 3D °ÔÀÓÀ» Á¦ÀÛÇÏ·Á¸é JSR184 Ç¥ÁØ ±Ô°ÝÀÌ Ãß°¡·Î Á¦°øµÇ¾î¾ß ÇÑ´Ù. À¯·´Àº ÈÞ´ëÆùÀÇ Æ¯¼ºÀ̳ª ±Ô°ÝÀÌ ´Ü¸»±â Á¦Á¶»ç Áß½ÉÀ¸·Î Á¦À۵DZ⠶§¹®¿¡ À̵¿Åë½Å »ç¾÷ÀÚ°¡ ÁÖµµÇÏ´Â ¿ì¸®³ª¶óó·³ ´Ù¿î·Îµå ÇüŰ¡ ¾Æ´Ï¶ó ¿ÜºÎ ÀúÀåÀåÄ¡¸¦ ÅëÇØ ÄÁÅÙÃ÷ °ø±ÞÀÌ °¡´ÉÇÏ´Ù. µû¶ó¼­ J2ME ȯ°æ À̿ܿ¡ ¸î °¡Áö µ¶ÀÚÀûÀΠȯ°æµµ Á¸ÀçÇÑ´Ù. N-GageÀÇ °æ¿ì´Â ½Éºñ¾È ¿î¿µÃ¼Á¦ À§¿¡ FathammerÀÇ X-Forge¸¦ Àû¿ëÇßÀ¸¸ç, À̹ۿ¡ Synergenix InteractiveÀÇ Mophun, In-FusioÀÇ ExEn (Excution Engine) µîÀÌ ÀÖ´Ù.

3D ±×·¡ÇÈ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º
¹ÙÅÁÈ­¸é ´ÙÀ½À¸·Î ¸¹ÀÌ »ç¿ëÇÏ´Â °ÍÀÌ ÈÞ´ëÆù¿¡ Àû¿ë °¡´ÉÇÑ 3D ÀÀ¿ëÀ¸·Î ±×·¡ÇÈ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º(GUI) ºÎºÐÀ» ²ÅÀ» ¼ö ÀÖ´Ù. º¸Åë ÈÞ´ëÆùÀÇ ¸Þ´º´Â ´ëºÎºÐ ´Ü¸»±â Á¦Á¶»çÀÇ Æ¯¼º¿¡ µû¶ó ´Ù¾çÇÑ ÇüÅ·ΠÁ¦À۵Ǵµ¥ ¿©±â¿¡ 3D ÇüÅÂÀÇ ¸Þ´º¸¦ »ðÀÔÇÏ¸é »ç¿ëÀÚ¿¡°Ô ÁÁÀº ½Ã°¢ È¿°ú¸¦ Á¦°øÇÒ ¼ö ÀÖ´Ù.

ÇÏÁö¸¸ ¸ðµç GUI¸¦ 3D·Î º¯°æÇÏ·Á¸é ¸®¼Ò½ºÀÇ ºÎ´ãÀÌ Å©°í µðÀÚÀÎ ºñ¿ëµµ ¸¹ÀÌ µé±â ¶§¹®¿¡ ´çÀå Àû¿ëµÇ±â¿¡´Â ¹«¸®°¡ µû¸¥´Ù. ¶ÇÇÑ 2D À̹ÌÁö¸¦ ÀÌ¿ëÇØµµ ¾î´À Á¤µµ 3D È¿°ú¸¦ ³ªÅ¸³¾ ¼ö Àֱ⠶§¹®¿¡ ÀÌ¿¡ ´ëÇØ¼­´Â ±â¼úÀû Ãø¸é°ú UIÀÇ µðÀÚÀÎ Ãø¸é¿¡¼­ ¸ðµÎ ½Ã°£°ú ³ë·ÂÀÌ ÇÊ¿äÇÒ °ÍÀ¸·Î º¸ÀδÙ.

Çϵå¿þ¾î °¡¼Ó±â
¼ÒÇÁÆ®¿þ¾î ¿£Áø¿¡ ºñÇØ ´õ ³ôÀº ¼º´ÉÀ» ³¾ ¼ö ÀÖ´Â Çϵå¿þ¾î °¡¼Ó±â´Â ±× ÇüŰ¡ ¸Å¿ì ´Ù¾çÇÏ´Ù. ÀÏ´Ü ¾Ë·ÁÁø Çϵå¿þ¾î °¡¼Ó±â¿¡ ´ëÇØ ¾Ë¾Æº¸¸é Ä÷ÄÄÀÇ Q3D, ³×¿À¸ÅÁ÷ÀÇ MiMagic6, ¸ÅÁ÷¾ÆÀÌÀÇ VRender3D, ATIÀÇ Imageon 2300, Sanshin ElectronicsÀÇ GShark plus µîÀÌ ÀÖ´Ù. ÀÚ¼¼ÇÑ ¼º´ÉÀ̳ª ½ºÆå¿¡ ´ëÇÑ »çÇ×Àº °¢ Á¦Á¶»çÀÇ È¨ÆäÀÌÁö¸¦ ÅëÇØ ÀÚ¼¼È÷ ¾Ë¾Æº¼ ¼ö ÀÖÀ¸¹Ç·Î ¿©±â¼­´Â °£´ÜÇÑ Æ¯¼º¸¸ »ìÆì º»´Ù.

Ä÷ÄÄ Q3D
Ä÷ÄÄÀÇ MSM6100 °è¿­ºÎÅÍ Q3D¶ó´Â Çϵå¿þ¾î ¿£ÁøÀÌ Æ÷ÇԵŠÁ¦°øµÇ°í ÀÖÀ¸¸ç, OpenGL ES Ç¥ÁØÀ» Áö¿øÇÏ´Â ÇüŶó°í ÇÑ´Ù. ¼Óµµ´Â ÃÊ´ç ¾à 10¸¸ Æú¸®°ïÀ¸·Î ¾Ë·ÁÁ® ÀÖÀ¸¸ç, ½ÇÁ¦·Î À̸¦ ÀÌ¿ëÇϱâ À§Çؼ­´Â ¸î °¡Áö Ãß°¡ÀûÀÎ ÄÚµåµéÀ» ÇÔ²² Àû¿ë½ÃÄÑ¾ß Çϱ⠶§¹®¿¡ ´Ü¸»±â Á¦Á¶»ç¿¡¼­ À̸¦ ÀÌ¿ëÇÏ·Á´Â ¿òÁ÷ÀÓÀÌ ±×·¸°Ô ³ôÁö ¾ÊÀº ÆíÀÌ´Ù.

³×¿À¸ÅÁ÷ MiMagic6
³×¿À¸ÅÁ÷ ¿ª½Ã 3D °¡¼Ó±â¸¦ ÀåÂøÇÑ ¸ð¹ÙÀÏ Ä¨ÀÎ MiMagic6À» °³¹ß Áß¿¡ ÀÖ´Ù. ARM926EJ Äھ ¹ÙÅÁÀ¸·Î APA ±â¹ÝÀÇ ¸ÖƼ¹Ìµð¾î ¿£ÁøÀ» ÅëÇØ¼­ OpenGL ES ±Ô°ÝÀ» ¸¸Á·Çϵµ·Ï ±¸¼ºÇÑ Ä¨ÀÌ´Ù.

¸ÅÁ÷¾ÆÀÌ VRender3D
¸ÅÁ÷¾ÆÀÌÀÇ VRender3D´Â ARM920T Äھ ¹ÙÅÁÀ¸·Î 3D ±×·¡ÇÈ ¿£Áø°ú MPEG4 ¿£ÁøÀ» ³»ÀåÇϰí Àִ ĨÀ¸·Î ÇöÀç ´ÙÀÌ·ºÆ®3D ÇüÅÂÀÇ 3D API¸¦ Á¦°øÇϰí ÀÖ´Ù.

ATI Imageon 2300
PC¿ë ±×·¡ÇÈ °¡¼Ó ĨÀ» Á¦ÀÛÇϴ ȸ»çÀÎ ATI´Â PDA³ª ÈÞ´ëÆù¿¡ ÀûÇÕÇÑ ÇüÅÂÀÇ °¡¼Ó ĨÀÎ Imageon 2300À» Ãâ½ÃÇÏ¿´´Ù. ÀÌ Ä¨Àº CPU°¡ ¾ø´Â ¼ø¼ö °¡¼Ó ĨÀ¸·Î OpenGL ES ±Ô°ÝÀ» ¸¸Á·Çϴ ĨÀÌ´Ù.

GShark plus
ÀϺ» ¾÷üÀÎ Sanshin ElectronicsÀÇ GShark plus´Â µ¶ÀÚÀûÀÎ ±Ô°ÝÀÇ 3D ¿£ÁøÀ¸·Î ATI Á¦Ç°°ú ¸¶Âù°¡Áö·Î CPU°¡ ¾ø´Â ¼ø¼ö °¡¼Ó ĨÀÌ´Ù.

¸ð¹ÙÀÏ 3D Ç¥ÁØ µ¿Çâ
ÃÖ±Ù ¸ð¹ÙÀÏ 3D °ü·Ã ¾÷°èµéÀÇ È­µÎ´Â ±¹Á¦ °ø°³ Ç¥ÁØÀ¸·Î ºÎ°¢µÇ°í ÀÖ´Â OpenGL ESÀÌ´Ù. ÇöÀç ±¹³»¿Ü À̵¿Åë½Å»ç, ´Ü¸»±â/Ĩ Á¦Á¶»ç, 3D ¿£Áø °³¹ß»ç µî °ÅÀÇ ´ëºÎºÐ ȸ»çµéÀÌ OpenGL ES¸¦ ¼ö¿ëÇØ Á¦Ç°À» °³¹ßÇϰí ÀÖ´Ù. Áö³­ ÇØ 7¿ù ¸ð¹ÙÀÏ ½Ã½ºÅÛ¿ë ±×·¡ÇÈ ÀÎÅÍÆäÀ̽º °³¹ß µ¿¸ÍÀÎ ¡®Å©·Î³ë½º ±×·ì(Khronos Group)¡¯ÀÌ OpenGL ES Ver 1.0À» ºñÁØÇÑ ÀÌ·¡ ¼¼°èÀÇ ÁÖ¿ä Ĩ¼Â/ÄÚ¾î, ¼ÒÇÁÆ®¿þ¾î °³¹ß ¾÷üµéÀÌ ÁÙÀ̾î ÀÌ ±×·ìÀÇ ¸â¹ö·Î Âü¿©Çϰí ÀÖ´Ù.

Çѱ¹¿¡¼­´Â SKÅÚ·¹ÄÞ, °í¹Ìµå¸¦ ºñ·ÔÇØ ¸î¸î ¾÷ü°¡ ȸ¿ø»ç·Î Ȱµ¿Çϰí ÀÖ´Ù(KTF ¿ª½Ã 2003³â OpenGL ES¸¦ Æ÷ÇÔÇϰí ÀÖ´Â °í¹ÌµåÀÇ 3D ¿£ÁøÀ» Ç¥ÁØ ¿£ÁøÀ¸·Î ¼±Á¤ÇÏ¿´´Ù). ÀÌ¿¡ µû¶ó ÈÞ´ëÆù Á¦Á¶»ç´Â OpenGL ES¸¦ ¼ö¿ëÇϵµ·Ï Á¦Ç°À» °³¹ßÇϰí ÀÖÀ¸¸ç, ¾ÕÀ¸·Î ÀÌ·¯ÇÑ Ãß¼¼´Â Å« º¯È­°¡ ¾øÀ» °ÍÀ¸·Î º¸ÀδÙ.

¸ð¹ÙÀÏ 3DÀÇ °ø°³ Ç¥ÁØ, OpenGL ES
OpenGL ES´Â [±×¸² 2]¿¡¼­ º¸´Â °Íó·³ Å©·Î³ë½º ±×·ì¿¡¼­ ÁÖ°üÇÏ´Â OpenGLÀÇ ÀÓº£µðµå ½Ã½ºÅÛ ¹öÀüÀ¸·Î, ÈÞ´ë¿ë ´Ü¸»±â³ª ±â±âÀÇ ÀÓº£µðµå µð½ºÇ÷¹À̺¸´Ù Çâ»óµÈ 2D/3D ±×·¡ÇÈ ¼º´ÉÀ» Á¦°øÇϱâ À§ÇØ ¹«·á·Î ¹èÆ÷µÇ´Â ³·Àº ·¹º§ÀÇ °æ·® APIÀÌ´Ù.

OpenGLÀ» ±â¹ÝÀ¸·Î Ç쵂 »ç¿ëºóµµ°¡ ³·°Å³ª ºÒÇÊ¿äÇÑ ºÎºÐÀ» Á¦°ÅÇÑ OpenGL 1.3ÀÇ ¼­ºê¼Â(subset)À¸·Î, SW ¾ÖÇø®ÄÉÀ̼ǰú HW/SW ±×·¡ÇÈ ¿£Áø°£ Ãʰ淮ÀÇ API¸¦ Á¦°øÇÑ´Ù. ¹öÀü 1.0 ½ºÆåÀº Common(ÇÚµå¼Â°ú °°Àº ÃÖ¼ÒÈ­µÈ ¸ð¹ÙÀÏ µð¹ÙÀ̽º¿¡ »ç¿ë °¡´É), Common-Lite(PDA³ª ¼ÂÅé¹Ú½º °°Àº µð¹ÙÀ̽º¿¡ »ç¿ë °¡´É) ·»´õ·¯¿Í ³×ÀÌÆ¼ºê Ç÷§Æû À©µµ¿ì ½Ã½ºÅÛ°ú ¿¬°áÇØÁÖ´Â EGL µîÀ» Æ÷ÇÔÇϰí ÀÖ´Ù.

[±×¸² 2] Å©·Î³ë½º ±×·ìÀÇ »ç¾÷ ÁøÇà ¹æÇâ

ÀÌ·¯ÇÑ ÀÓº£µðµå ½Ã½ºÅÛÀ» À§ÇÑ Ç¥ÁØ API´Â ¸ðµç ¸ÞÀÌÀú±Þ ¸ð¹ÙÀÏ/ÀÓº£µðµå Ç÷§Æû¿¡¼­ ´Ù¾çÇÑ 3D ±×·¡ÇȰú °ÔÀÓ Á¦°øÀ» ¿ëÀÌÇÏ°Ô ÇØÁÖ¸ç, ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß¿¡ ´ëÇØ ´ÙÀ½°ú °°Àº ´Ù¾çÇÑ ÆíÀǼºÀ» Á¦°øÇÑ´Ù.

¡ß »ê¾÷ Ç¥ÁØ & ·Î¿­Æ¼ ÇÁ¸®(Industry Standard and Royalty Free), °³¹ßÀÚµéÀº Ç÷§ÆûÀ̳ª ÀûÀº ¾çÀÇ Äڵ带 ÀÛ¼ºÇϱâ À§ÇÑ ÈûÀ» ½ñ±âº¸´Ù ÄÁÅÙÃ÷ °³¹ß¿¡ ´õ ÁýÁßÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù.
¡ß ÀûÀº ¸Þ¸ð¸® ¿ä±¸·® & ÀúÀü·Â ¼Òºñ(Small footprint & low power consumption)
¡ß SW¿¡¼­ HW ·»´õ¸µÀ¸·ÎÀÇ ÀÚ¿¬½º·¯¿î À̵¿(Seamless transition from software to hardware rendering)
¡ß È®Àå °¡´É & ÁøÈ­ ¹ßÀü(Extensible & Evolving)
¡ß »ç¿ë Æí¸®¼º(Easy to use)
¡ß dzºÎÇÑ ¹®¼­ ÀÚ·á(Well-documented)

Common profile°ú ´õ ÀÛÀº ¸Þ¸ð¸®°¡ ÇÒ´çµÈ Ç÷§ÆûÀ» À§ÇÑ Command-Lite profile·Î ³ª´µ¾îÁ® ÀÖÀ¸¸ç, ÇÙ½ÉÆÇ(core addition)°ú È®ÀåÆÇ(extension)À» ÅëÇØ ´õ ¸¹Àº ±â´ÉÀ» Ãß°¡ÀûÀ¸·Î Á¦°øÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºµÇ¾î ÀÖ´Ù. OpenGL 2.0ÀÇ ¼­ºê¼ÂÀ̱⠶§¹®¿¡ OpenGLÀÇ ÀåÁ¡Àº À¯ÁöÇÑ »óÅ¿¡¼­ ¸ð¹ÙÀÏ È¯°æ¿¡ ¿ä±¸µÇ´Â ±â´É¸¸À» Á¦°øÇϵµ·Ï °í¾ÈµÅ ÀÖ´Ù.

[Ç¥ 2] OpenGL-ES ÆÄÀÌÇÁ¶óÀÎ ÁÖ¿ä ±¸¼º  
Geometry Processing - Vertex Arrays - Points, Lines, Triangles - Matrix Stack - Viewport, DepthRange - Vertex Lighting - ShadeModel Rasterization - Multisampling (optional) - Points & anti-aliased points - Lines & anti-aliased lines - Polygons Face Culling - PolygonOffset-fill mode Texture Mapping - 2D Textures - Wrap repeat, edge_clamp - Compressed Texture - TexSubImages, Copy TexImage - Multitexture - RGVA pixel and packed pixel formats, L, LA - All Filters
Fragment Processing - Fog - Scissor Test - Alpha Test - Stencil Test (optional) - Depth Test (optional) - Blending - Logic Op - Dither FramebufferOperaions /Miscellaneous ClearReadPixels / Alpha Test / DitherFlush / FinishHintGet-static stat (constants)

OpenGL ES´Â ÀÏÁ¾ÀÇ Ç¥ÁØ ÀÎÅÍÆäÀ̽ºÀ̹ǷΠ½ÇÁ¦ ÄÚµå´Â 3D ¿£Áø ¾÷üµéÀÌ Á¦ÀÛÇØ¾ß ÇÏ´Â ºÎºÐÀÌ´Ù. ÀÌ ºÎºÐÀº ¼ÒÇÁÆ®¿þ¾î ¶Ç´Â Çϵå¿þ¾î·Î ±¸ÇöÇØ¾ß¸¸ ÇÑ´Ù. ÇöÀç ¼ÒÇÁÆ®¿þ¾î·Î ±¸ÇöµÈ °ÍµéÀº ½ÃÀå¿¡ ³ª¿Í ÀÖ´Â Á¦Ç°µµ ¸¹ÀÌ ÀÖÀ¸³ª, ¾ÆÁ÷ Çϵå¿þ¾î·Î ±¸ÇöµÈ Á¦Ç°Àº ±× ¼ö°¡ ÀûÀº ÆíÀÌ´Ù.

Å©·Î³ë½º ±×·ìÀº OpenGL ES ¿Ü¿¡µµ ¿Àµð¿À, ºñµð¿Àó·³ ¹Ìµð¾î¿Í °ü·ÃµÈ OpenMLÀ» ÇÔ²² Ç¥ÁØÈ­Çϰí ÀÖ´Ù. ÇÏÁö¸¸ ¾ÆÁ÷±îÁö ±¹³»¿¡¼­´Â ÀÌ¿Í °ü·ÃµÈ Ưº°ÇÑ È°µ¿Àº ¹Ì¹ÌÇÏ´Ù.

ÀÓº£µðµå ±×·¡ÇÈ ¶óÀ̺귯¸®
OpenGL-ES´Â EGL(Embedded Graphic Library)À̶ó´Â °ø¿ë Ç÷§Æû ÀÎÅÍÆäÀ̽º ·¹À̾ Æ÷ÇÔÇϰí Àִµ¥, EGLÀº Ç÷§ÆûÀ̳ª ¿î¿µÃ¼Á¦¿Í »ó°ü¾øÀÌ ±×·¡ÇÈ ÀÛ¾÷À» »ç¿ëÇÒ ¼ö ÀÖ°Ô µµ¿ÍÁÖ´Â °ÍÀÌ´Ù. Áï Ç÷§ÆûÀ̳ª ¿î¿µÃ¼Á¦°¡ ´Ù¸¥ ȯ°æ¿¡¼­ ÀÛµ¿Çϰí ÀÖ´Â ·»´õ¸µ ¿£Áø¿¡¼­µµ ¿øÇÏ´Â ±×·¡ÇÈ ÀÛ¾÷À» ÇÒ ¼ö ÀÖµµ·Ï ÇÔ¼öµéÀ» Áö¿øÇØ ÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù.

[±×¸² 3] EGL ±¸¼ºµµ

½ÇÁ¦·Î OpenGL ES¸¦ ±â¹ÝÀ¸·Î EGLÀ» ÀÌ¿ëÇØ ¸ð¹ÙÀÏ È¯°æ¿¡¼­ »óÀ§ ·¹º§ÀÇ 3D ±×·¡ÇÈ API ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ´Ù¸é [±×¸² 3]ó·³ ³ªÅ¸³¾ ¼ö ÀÖ´Ù. ÀÌ ±×¸²Àº Àڹ٠ȯ°æÀÇ ¸ð¹ÙÀÏ 3D JSR184ÀÇ µ¿ÀÛ ¹æ½ÄÀ» ¼³¸íÇϰí ÀÖ´Ù.

GSM ½ÃÀå¿¡¼­ ÁÖ¸ñ¹Þ´Â JSR184
ÃÖ±Ù OpenGL-ES¿Í ´õºÒ¾î ÁÖ¸ñ¹Þ°í ÀÖ´Â °ÍÀÌ JSR-184ÀÌ´Ù. GSMÀº À¯·´À» Áß½ÉÀ¸·Î ¹Ì±¹°ú Áß±¹ µî Àü ¼¼°è À̵¿Åë½Å ½ÃÀåÀÇ 70%¸¦ Â÷ÁöÇϰí ÀÖ´Ù. ÀÌó·³ GSM ½ÃÀåÀ» ¿¹ÀÇ ÁÖ½ÃÇϴ Ĩ, ´Ü¸»±â, ÄÁÅÙÃ÷ µî °ü·Ã ¾÷üµéÀº ÀڽŵéÀÇ Á¦Ç°À» Â÷º°È­Çϱâ À§ÇØ ¼Ó¼Ó 3D¸¦ µµÀÔÇϰí ÀÖÀ¸¸ç, À̸¦ À§ÇØ ´ëºÎºÐÀÇ GSM ÆùÀÌ Ã¤¿ëÇϰí ÀÖ´Â Àڹ٠ȯ°æ¿¡ ÃÖÀûÈ­µÈ 3D ±×·¡ÇÈ API¸¦ ÇÊ¿ä·Î ÇÏ°Ô µÇ¾ú´Ù. ÀÌ·¯ÇÑ Çʿ並 ÃæÁ·½Ã۱â À§ÇØ Á¦Á¤µÈ °ÍÀÌ J2ME¸¦ À§ÇÑ Ç¥ÁØ 3D ±×·¡ÇÈ APIÀÎ JSR-184ÀÌ´Ù.

J2ME ȯ°æ¿¡¼­ 3Â÷¿ø ±×·¡ÇÈÀ» ±¸ÇöÇϱâ À§ÇØ ³·Àº ·¹º§(low-level)ÀÎ OpenGLÀ» ÀÌ¿ëÇÒ °æ¿ì Äڵ尡 ±æ¾îÁ® MIDlet(MIDP Application)ÀÇ µ¢Ä¡°¡ Ä¿Áö¹Ç·Î ¼Óµµ°¡ ´À·ÁÁú ¼ö¹Û¿¡ ¾ø´Ù. ¶ÇÇÑ ÀÚ¹Ù 3D API¸¦ ÀÌ¿ëÇÒ °æ¿ì¿£ ½ºÆåÀÇ ¾çÀÌ ³Ê¹« ¹æ´ëÇϱ⠶§¹®¿¡ ¿ª½Ã MIDP(Mobile Information Device Profile)À» ÀÌ¿ëÇϱ⿣ ÀûÇÕÇÏÁö ¾Ê´Ù.

ÀÌ·¯ÇÑ ´ÜÁ¡À» º¸¿ÏÇϱâ À§ÇØ Á¦¾ÈµÈ JSR 184´Â J2ME¸¦ À§ÇÑ Ç¥ÁØ 3D ±×·¡ÇÈ API·Î¼­, °´Ã¼ÁöÇâÀû ¾ð¾îÀÎ ÀÚ¹ÙÀÇ Æ¯¼ºÀ» À̾î¹Þ¾Æ ¿ÀºêÁ§Æ®ÀÇ Àç»ç¿ë°ú °øÀ¯¸¦ ¿øÄ¢À¸·Î ÇÑ´Ù. OpenGL ES¿Í JSR 184¿¡¼­ »ç¿ëµÇ´Â ±×·¡ÇÈ °³³äÀ̳ª ´Ü°èÀû ÀýÂ÷´Â [±×¸² 4]¿Í °°ÀÌ µ¿ÀÏÇϳª ´Ù¸¸ Ç¥ÇöÇÏ´Â ¹æ½Ä¿¡¼­ Â÷À̸¦ º¸ÀδÙ.
[±×¸² 4]JSR 184 ±×·¡ÇÈ Ã³¸® ´Ü°è

OpenGL ES¿Í JSR184ÀÇ ºñ±³´Â OpenGL°ú ÀÚ¹Ù 3D¸¦ ºñ±³ÇÏ´Â °Í°ú À¯»çÇÑ °üÁ¡¿¡¼­ ¼³¸íÇÒ ¼ö ÀÖ´Ù. Áï OpenGLÀÌ 3D ±×·¡ÇÈÀÇ ±âº»ÀûÀÎ ±â´ÉÀ» Á¦°øÇÏ´Â µ¥ ºñÇØ ÀÚ¹Ù 3D´Â »óÀ§ ·¹º§±îÁö ±â´ÉÀ» Á¦°øÇÏ´Â °Í°ú ¸¶Âù°¡Áö·Î OpenGL ES´Â ¸ð¹ÙÀÏ È¯°æ¿¡ ÀûÇÕÇÑ 3D ±×·¡ÇÈÀÇ ±âº»ÀûÀÎ ±â´ÉÀ» Á¦°øÇÏ´Â °ÍÀ̶ó¸é JSR184´Â J2ME ȯ°æ¿¡¼­ ¸ð¹ÙÀÏ 3D¸¦ Áö¿øÇÒ ¼ö ÀÖµµ·Ï ¸¸µç »óÀ§ ·¹º§ÀÇ ÆÐŰÁö¶ó°í ÇÒ ¼ö ÀÖ´Ù.

±¹³» À̵¿Åë½Å »ç¾÷ÀÚÀÇ 3D Ç¥ÁØ
SKÅÚ·¹ÄÞÀº ÀÚüÀûÀ¸·Î 3D ¿£ÁøÀ» žÀçÇÑ GIGA(Graphic Instruction Graphic Acceleration) ´Ü¸»±â ±Ô°ÝÀ» ÅëÇØ 3D Ç¥ÁØÀ» ÁöÁ¤ÇÏ¿´´Ù. ¿©±â¿¡´Â OpenGL ES API¿Í ÇÔ²² ÀÚüÀûÀÎ 3D °ü·Ã APIµéÀÌ Æ÷ÇԵǾî ÀÖÀ¸¸ç °è¼Ó ¾÷±×·¹À̵åµÇ°í ÀÖ´Ù. KTF´Â OpenGL ES ±Ô°ÝÀ» Æ÷ÇÔÇϰí ÀÖ´Â °í¹ÌµåÀÇ 3D ¿£ÁøÀ» Ç¥ÁØÀ¸·Î ÁöÁ¤ÇÏ¿´°í, ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ »óÀ§ ·¹º§ API¿¡ ´ëÇÑ Ç¥ÁØÀ» ¸¶·ÃÇϰí ÀÖ´Ù.

G3 SDK¸¦ ÀÌ¿ëÇÑ ÇÁ·Î±×·¡¹Ö
G3 SDK´Â °ÔÀÓ °³¹ßÀÚ°¡ Ưº°ÇÑ Çϵå¿þ¾î ÀåÄ¡ ¾øÀÌ ÀÓº£µðµåÇü °ÔÀÓ ¼ÒÇÁÆ®¿þ¾î¸¦ PC¿¡¼­ °³¹ßÇÒ ¼ö Àִ ȯ°æÀ» Á¦°øÇϱâ À§ÇÑ ¸ñÀûÀ¸·Î Á¦ÀÛµÈ ¼ÒÇÁÆ®¿þ¾î °³¹ß µµ±¸ÀÌ´Ù. µû¶ó¼­ ¸ð¹ÙÀÏ 3D¿¡ °ü½É ÀÖ´Â »ç¶÷À̶ó¸é ´©±¸³ª ½±°Ô ¸ð¹ÙÀÏ 3D ÇÁ·Î±×·¡¹ÖÀÌ °¡´ÉÇϵµ·Ï ÇØÁØ´Ù. G3 SDKÀÇ ±¸Á¶¿Í °£´ÜÇÑ ¿¹Á¦¸¦ ¾Ë¾Æº¸ÀÚ.

G3 SDKÀÇ ±¸Á¶
G3 SDK¿¡ žÀçµÈ 3D ¿£ÁøÀº OpenGL ES 1.0°ú ȣȯÀº ¹°·Ð ¸ðµ¨ ¹× ¾Ö´Ï¸ÞÀÌ¼Ç µ¥ÀÌÅÍ ·Îµù°ú º» ¾Ö´Ï¸ÞÀÌ¼Ç µî°ú °°Àº Áøº¸µÈ ÇüÅÂÀÇ ±â´ÉÀ» Á¦°øÇÔÀ¸·Î½á °³¹ßÀÚ¿¡°Ô °í±Þ °ÔÀÓÀ» °³¹ßÇÒ ¼ö Àִ ȯ°æÀ» Áö¿øÇÑ´Ù.

[±×¸² 5] G3 SDK ±¸Á¶

G3 SDK´Â [±×¸² 5]¿Í °°Àº APIµé·Î ±¸¼ºµÇ¸ç, °¢ APIµéÀº °ÔÀÓ °³¹ßÀڵ鿡°Ô À¯¿ëÇÑ ±â´ÉÀ» Áö¿øÇÑ´Ù. APIÀÇ Á¾·ù¿Í °¢ APIÀÇ ¿ªÇÒÀº <Ç¥ 3>°ú °°´Ù. G3 SDKÀÇ ÀÚ¼¼ÇÑ ³»¿ëÀº °³¹ßÀÚ »çÀÌÆ®(http://g3d.co.kr)¿¡¼­ ȸ¿ø °¡ÀÔÇÑ ÈÄ SDK¸¦ ´Ù¿î¹Þ¾Æ ¼³Ä¡ÇØ º¸¸é È®ÀÎÇÒ ¼ö ÀÖ´Ù. ÀÌ APIµéÀÇ ½ÇÁ¦ ±¸ÇöÀº ´Ü¸»±âÀÇ Çϵå¿þ¾î¿Í ¼ÒÇÁÆ®¿þ¾î ȯ°æ¿¡ µû¶ó ´Þ¶óÁú ¼ö ÀÖ°ÚÁö¸¸ °ÔÀÓ °³¹ßÀÚµéÀÌ ÀÌ·¸°Ô ±¸Çö±îÁö ½Å°æ ¾µ ÇÊ¿ä´Â ¾øÀ» °ÍÀÌ´Ù.

[Ç¥ 3] G3 SDK¿¡¼­ Á¦°øµÇ´Â API  
API Á¾·ù ¿ªÇÒ
3D Graphics API »óÀ§ ·¹º§ API Á¦°ø(3D ¸ðµ¨·Îµù, 3D ¾Ö´Ï¸ÞÀÌ¼Ç ·Îµù) OpenGL, ES APIÁ¦°ø(ÅØ½ºÃ³ ¸ÊÇÎ, ¼ÎÀ̵ù, ¾ÈƼ ¾Ù¸®¾î½Ì, ¶óÀÌÆÃ)
2D Graphics API À̹ÌÁö µ¥ÀÌÅÍ ·Îµù, bitblit, ½ºÇÁ¶óÀÌÆ®, ¾ËÆÄ ºí·»µù
Standard API ¹®ÀÚ¿­ ¹× ¸Þ¸ð¸® °ü·Ã ANSI Cȣȯ
Sound API MIDI, wav, MA2, MA3, MA5 Ç÷¹ÀÌ Áö¿ø (Çϵå¿þ¾î Á¾¼ÓÀû)
Font API 16x16, 32x32, °¢°¢ 1Á¶¾¿ Á¦°ø, ÆùÆ® È¿°ú
File I/O API ±âº» ÀÔÃâ·Â Áö¿ø
Network API ³×Æ®¿öÅ© Á¢¼Ó Áö¿ø

G3 SDK´Â ±âº»ÀûÀ¸·Î PC ȯ°æ¿¡¼­ VC++¸¦ ÀÌ¿ëÇØ DLL ÆÄÀÏÀ» »ý¼ºÇÑ´Ù. »ý¼ºµÈ DLL ÆÄÀÏÀº ¿¡¹Ä·¹ÀÌÅÍ¿¡¼­ ·ÎµùµÇ¾î µ¿ÀÛÇÏ°Ô µÈ´Ù. ¿¡¹Ä·¹ÀÌÅÍ »ó¿¡¼­ÀÇ µ¿ÀÛÀº ¸ð¹ÙÀÏ ´Ü¸»±â¿¡¼­µµ µ¿ÀÏÇÏ°Ô µ¿ÀÛÇϵµ·Ï ±¸¼ºµÇ¾î ÀÖÀ¸¹Ç·Î ¿¡¹Ä·¹ÀÌÅ͸¦ ÅëÇØ µð¹ö±ë °úÁ¤À» °ÅÄ¡¸é¼­ À©µµ¿ì °³¹ß ȯ°æ¿¡¼­ °ÔÀÓ ÇÁ·Î±×·¥À» ¿Ï¼ºÇÒ ¼ö ÀÖ°Ô µÈ´Ù. <±×¸² 6>Àº ÃÖÁ¾ÀûÀ¸·Î Ÿ°Ù ¹ÙÀ̳ʸ®¸¦ »ý¼ºÇϱâ À§ÇÑ °³¹ß °úÁ¤À» ³ªÅ¸³»°í ÀÖÀ¸¸ç µð¹ö±ëÀÌ ¿Ï·áµÈ °ÔÀÓÀÇ °æ¿ì Ÿ°Ù ´Ü¸»±â¿ë ÄÄÆÄÀÏ·¯¸¦ ÀÌ¿ëÇØ ÄÄÆÄÀÏÇϸé ÃÖÁ¾ÀûÀΠŸ°Ù ¹ÙÀ̳ʸ®°¡ »ý¼ºµÈ´Ù.

[±×¸² 6] G3 SDK¸¦ ÀÌ¿ëÇÑ ¸ð¹ÙÀÏ ´Ü¸»±â¿ë °ÔÀÓ °³¹ß °úÁ¤

G3 SDK¸¦ ÀÌ¿ëÇØ °³¹ßµÈ °ÔÀÓ ¼ÒÇÁÆ®¿þ¾î´Â [±×¸² 6]ÀÇ °úÁ¤À» °ÅÃÄ ÃÖÁ¾ÀûÀ¸·Î G3 SDK ¶óÀ̺귯¸®°¡ žÀçµÈ ¸ð¹ÙÀÏ ±â±â¿¡¼­ µ¿ÀÛÇÒ ¼ö ÀÖ°Ô µÇ´Â °ÍÀÌ´Ù. G3 SDK ¼³Ä¡½Ã Á¦°øµÇ´Â ¡®G3 °ÔÀÓ ¸¶¹ý»ç¡¯¸¦ ÅëÇØ °ÔÀÓ °³¹ßÀ» À§ÇÑ ÅÛÇø´ ¼Ò½º¸¦ VC++ ȯ°æ¿¡¼­ ½±°í ºü¸£°Ô ¸¸µé ¼ö ÀÖ´Ù.

3D ±×·¡ÇÈ ¿¹Á¦
G3 SDK´Â 3D °ÔÀÓÀ» Áö¿øÇϱâ À§ÇÑ ÇÏÀ§ ·¹º§ API¿Í »óÀ§ ·¹º§ API¸¦ Á¦°øÇÑ´Ù. ÇÏÀ§ ·¹º§ API´Â OpenGL ES 1.0¿¡ ȣȯµÇ´Â ÇüÅ·ΠÁ¦°øµÇ°í, »óÀ§ ·¹º§ API´Â 3D ¸ðµ¨, ¿¡´Ï¸ÞÀÌ¼Ç ·Î´õ, ¿¡´Ï¸ÞÀÌ¼Ç ¿£Áø, °¢Á¾ 3D ÀÌÆåÆ® ó¸® À¯Æ¿¸®Æ¼ API·Î ±¸¼ºµÇ¾î ÀÖ´Ù.

[È­¸é 1] G3 ÇÁ·ÎÁ§Æ® ¼³Á¤ °ÔÀÓ °³¹ß °úÁ¤

¸ÕÀú 3D ÇÁ·Î±×·¡¹ÖÀ» ÇÏ·Á¸é [È­¸é 1]°ú °°ÀÌ G3_3Dg.lib°ú gl.libÀ» ¸µÅ©½ÃÄÑ¾ß Çϰí gl.h¿Í G3_3Dg.h¸¦ ÀÎŬ·çµå(include)½ÃÄÑ¾ß ÇÑ´Ù. ±×¸®°í ´Ù¸¥ ½ÇÇà ÆÄÀϰú ¸¶Âù°¡Áö·Î G3_3Dg.dll°ú g3.dllÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ¿©±â¼­´Â 3D ±×·¡ÇȽºÀÇ ±âÃÊ ÀÌ·ÐÀ» ¾Ë°í ÀÖ´Ù°í °¡Á¤ÇÑ »óÅ¿¡¼­ ¿¹Á¦¸¦ Áß½ÉÀ¸·Î G3 SDK¸¦ »ç¿ëÇØ¼­ ¾î¶»°Ô 3D ±×·¡ÇȽº¸¦ ±×¸± °ÍÀÎÁö¿¡ ´ëÇØ¼­ ¿¹Á¦¸¦ Áß½ÉÀ¸·Î ±â¼úÇϵµ·Ï ÇϰڴÙ. ÀÌ ¿¹Á¦´Â OpenGL ES 1.0ÀÇ ÇÏÀ§ ·¹º§ API¸¦ »ç¿ëÇØ¼­ ÇǶó¹Ìµå ÇüÅÂÀÇ °´Ã¼¸¦ ÅëÇØ 3Â÷¿ø °ø°£¿¡¼­ RGB Ä÷¯ °ªÀ» Ç¥½ÃÇÏ´Â ¿¹ÀÌ´Ù.

[¸®½ºÆ® 1-1] 3D ÇǶó¹Ìµå ±×¸®±â ¼Ò½º - PART I

[¸®½ºÆ® 1-1]Àº G3 SDK¸¦ »ç¿ëÇØ¼­ ¾î¶»°Ô 3D ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´ÂÁö º¸¿©ÁÖ°í ÀÖ´Ù. ¸ÕÀú 3D ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ·Á¸é gl.h Çì´õ ÆÄÀÏÀ» ÀÎŬ·çµå½ÃÄÑ¾ß ÇÑ´Ù. ±×¸®°í 2D¿¡¼­ÀÇ ÀÛ¾÷°ú °°ÀÌ G3_LcdSurfaceGet() ÇÔ¼ö·Î LCD È­¸é°ú ´ëÀÀµÇ´Â °¡»ó ÇÁ·¹ÀÓ ¹öÆÛ¸¦ ¾ò°Ô µÇ¸ç, ±× ÈÄ »ý¼ºµÈ Ç¥¸é ¹öÆÛ¸¦ G3_SurfaceSet() ÇÔ¼ö¸¦ ÀÌ¿ëÇØ LCD È­¸é¿¡ ¼³Á¤ÇÑ´Ù.

3D ±×·¡ÇȽºÀÇ »ç¿ëÀ» À§Çؼ­´Â Ãʱ⠼³Á¤À» ÇØ¾ß ÇÑ´Ù. ResizeGLScene() ÇÔ¼ö¿Í InitGL() ÇÔ¼ö¸¦ ÅëÇØ¼­ 3D ±×·¡ÇȽº °ü·Ã ÃʱâÈ­ ÀÛ¾÷À» ÇÑ´Ù([¸®½ºÆ® 1-2]).

[¸®½ºÆ® 1-2] 3D ÇǶó¹Ìµå ±×¸®±â ¼Ò½º - PART II

ResizeGLScene() ÇÔ¼ö¿¡¼­´Â 3D ÀÛ¾÷À» À§ÇÑ ¿µ¿ªÀÇ »ý¼º, ºäÆ÷Æ® ¼³Á¤, ÇÁ·ÎÁ§¼Ç °ü·Ã ¼³Á¤ µîÀ» ÇÏ°Ô µÈ´Ù. glCreate() ÇÔ¼ö¸¦ »ç¿ëÇØ 3D ÀÛ¾÷ ¿µ¿ªÀ» »ý¼ºÇϰí, glViewport() ÇÔ¼ö¸¦ »ç¿ëÇØ¼­ ½ÇÁ¦ LCD¿Í »ç»óµÇ´Â ºäÆ÷Æ®¸¦ ¼³Á¤ÇÑ´Ù. glPerspective() ÇÔ¼ö¸¦ ÅëÇØ ÇÁ·ÎÁ§¼Ç ¸ÅÆ®¸¯½º¿¡ ´ëÇÑ ¼³Á¤À» ÇÑ´Ù. [¸®½ºÆ® 1-2]¿¡¼­ ÀÛ¾÷µÈ ³»¿ëÀ» »ìÆìº¸¸é ³Êºñ¸¦ width·Î Çϰí, ±× ³ôÀ̸¦ height·Î ÇÏ´Â ±×¸®±â ¿µ¿ªÀÌ »ý¼ºµÇ¸ç, ºäÆ÷Æ®ÀÇ Å©±â´Â ±×¸®±â ¿µ¿ªÀÇ Å©±â¿Í µ¿ÀÏÇϰí, Ç¥ÇöµÉ 3D ¿ÀºêÁ§Æ®µéÀº ¿ø±Ù¹ý ±â¹ÝÀ¸·Î ±×·ÁÁö´Â ¼³Á¤À» ÇÑ °ÍÀÌ µÈ´Ù.

InitGL() ÇÔ¼ö¿¡¼­´Â GLÀ» ÅëÇØ¼­ ±×¸®°íÀÚ ÇÏ´Â Á» ´õ ¼¼¹ÐÇÑ ¼³Á¤À» ÇÏ°Ô µÇ´Âµ¥, ±× ³»¿ëÀ» »ìÆìº¸ÀÚ. glShadeModel() ÇÔ¼ö¸¦ ÅëÇØ¼­ ¼ÎÀ̵ùÀ» ¾î¶»°Ô ÇÒ °ÍÀÎÁö ¼³Á¤ÇÑ´Ù. G3 SDK¿¡¼­´Â ÆòÆòÇÑ ¼ÎÀ̵ù(GL_FLAT)°ú ºÎµå·¯¿î ¼ÎÀ̵ù(GL_SMOOTH)ÀÌ Á¦°øµÈ´Ù. ´ÙÀ½À¸·Î glClearColor() ÇÔ¼ö¸¦ ÅëÇØ¼­ »ý¼ºµÈ È­¸éÀÇ ÃÊ±â ¹è°æ»öÀ» ¼³Á¤ÇÑ´Ù. glClearColor()ÀÇ Ã¹ ¹øÂ° ÀÎÀÚ´Â R°ª, µÎ ¹øÂ° ÀÎÀÚ´Â G°ª, ¼¼ ¹øÂ° ÀÎÀÚ´Â B°ªÀ» ³ªÅ¸³»¸ç ¸¶Áö¸· ÀÎÀÚ´Â ¾ËÆÄ(alpha) °ªÀÌ´Ù. ±× ´ÙÀ½ÀÇ ¼¼ ¶óÀÎÀº ±íÀÌ ¹öÆÛ(depth buffer)¿Í °ü·ÃµÈ °ÍÀÌ´Ù.

Áö±Ý±îÁö ResizeGLScene() ÇÔ¼ö¿Í InitGL() ÇÔ¼ö¸¦ ÅëÇØ 3D ±×·¡ÇȽº¸¦ »ç¿ëÇϱâ À§ÇÑ Ãʱ⠼³Á¤À» ¿Ï·áÇß´Ù. µû¶ó¼­ 3D °´Ã¼¸¦ ±×¸± ¼ö Àִ ȯ°æÀÌ µÇ¾ú´Ù. ÀÌÁ¦ºÎÅÍ ½ÇÁ¦·Î 3D°´Ã¼°¡ ¾î¶»°Ô ±×·ÁÁö´ÂÁö »ìÆìº¸ÀÚ([¸®½ºÆ® 1-3]).

[¸®½ºÆ® 1-3] 3D ÇǶó¹Ìµå ±×¸®±â ¼Ò½º - PART III

¸ÕÀú glMatrixMode() ÇÔ¼ö¸¦ ÅëÇØ¼­ ¸ðµ¨ºä Çà·ÄÀ» ¼±ÅÃÇÑ µÚ glLoadIdentity ÇÔ¼ö·Î ¸ÅÆ®¸¯½º¸¦ ÃʱâÈ­½ÃŲ´Ù. glClear() ÇÔ¼ö¸¦ »ç¿ëÇØ¼­ Ä÷¯ ¹öÆÛ(GL_COLOR_BUFFER_BIT)¿Í ±íÀÌ ¹öÆÛ(GL_DEPTH_BUFFER_BIT)¸¦ ºñ¿î ´ÙÀ½ glTranslatef() ÇÔ¼ö·Î ¹°Ã¼¸¦ ±×¸± À§Ä¡·Î À̵¿Çϸç, glRotatef() ÇÔ¼ö¸¦ ÅëÇØ 3D °´Ã¼°¡ YÃà°ú XÃàÀ» ±âÁØÀ¸·Î ȸÀüÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿´´Ù.

º» ¿¹Á¦¿¡¼­ ±×·ÁÁö´Â 3D °´Ã¼´Â 3Â÷¿ø ÇǶó¹ÌµåÀÇ ÇüŸ¦ °¡Áö´Âµ¥, »ï°¢ÇüÀ» ÀÌ¿ëÇØ¼­ ÇǶó¹ÌµåÀÇ ¸éÀ» ¼³Á¤ÇÏ°í »ï°¢ÇüÀÇ ²ÀÁöÁ¡¸¶´Ù Á¤Á¡ÀÌ °¡Áö´Â »öÀ» ¼³Á¤Çß´Ù. ±×¸®°í Á¤Á¡µéÀ» ±â¼úÇÏ´Â ¹æ¹ýÀº 3Â÷¿ø µ¥Ä«¸£Æ® ÁÂÇ¥°è¸¦ »ç¿ëÇØ¼­ Ç¥ÇöÇß´Ù. OpenGL ES¿¡¼­ »ç¿ëµÇ´Â 3Â÷¿ø µ¥Ä«¸£Æ® ÁÂÇ¥°è´Â zÃàÀÇ ¹æÇâÀÌ ¹Ý´ë°¡ µÇ´Â °ÍÀ» °í·ÁÇÏ¸é º° ¹«¸® ¾øÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

»ï°¢ÇüÀ» ±×¸®´Â ºÎºÐÀÌ ¸ðµÎ 4°³·Î µÇ¾î Àִµ¥ ÀÏ´Ü Á¾À̸¦ ÁغñÇØ¼­ °¢ Á¤Á¡À» Á¾ÀÌ¿¡ ¼ø¼­´ë·Î Âï¾îº¸°í ±× Á¤Á¡À» ¹Ý½Ã°è ¹æÇâÀ¸·Î ¼ø¼­´ë·Î À̾ÀÚ. »ï°¢ÇüÀÌ ±×·ÁÁú °ÍÀÌ´Ù. ÀÌ·± ½ÄÀ¸·Î 4°³ÀÇ »ï°¢ÇüÀÌ ¸ð¿© [±×¸² 7]¿¡¼­ º¸´Â ¹Ù¿Í °°Àº °´Ã¼°¡ »ý¼ºµÈ´Ù. 3D °ø°£¿¡ °´Ã¼¿¡ ´ëÇÑ ±â¼úÀÌ ³¡³ª¸é G3_3DTransBlt() ÇÔ¼ö¸¦ »ç¿ëÇØ ¹öÆÛ¿¡ ±×¸° °´Ã¼¸¦ LCD¿¡ »Ñ·ÁÁÖ¸é LCD È­¸é¿¡ 3D °´Ã¼°¡ Ç¥ÇöµÈ´Ù. ¿¹Á¦¸¦ ½ÇÇàÇÑ È­¸éÀº [±×¸² 7]°ú °°´Ù.

[±×¸² 7] 3D ÇǶó¹Ìµå ±×¸®±â ½ÇÇà È­¸é

º» ¾Ö´Ï¸ÞÀÌ¼Ç ¿¹Á¦
[±×¸² 8]´Â ÀÌ¹Ì ¸¸µé¾îÁø 3D ¸ðµ¨°ú 3D ¾Ö´Ï¸ÞÀÌ¼Ç Á¤º¸¸¦ Àо G3 API ÇÔ¼ö¸¦ »ç¿ëÇØ µ¿ÀÛÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. 3D ¸ðµ¨ÀÇ »ý¼º°ú 3D ¾Ö´Ï¸ÞÀ̼ÇÀ» »ý¼ºÇÏ´Â °ÍÀº G3 SDKÀÇ ¡®G3 Character Design Guide¡¯ ¹®¼­¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù. G3 SDK¿¡¼­´Â Skinned Bone AnimationÀ» Áö¿øÇÑ´Ù(Skinned Bone AnimationÀº °è»êÀÌ ¿ëÀÌÇÑ »À´ëÀÇ ¿òÁ÷ÀÓÀ» ±âÁØÀ¸·Î »ó´ëÀûÀÎ °ªÀ¸·Î ½ºÅ² ¸Þ½Ã¸¦ º¯Çü½ÃŰ´Â ¾Ö´Ï¸ÞÀÌ¼Ç ¹æ¹ýÀ» ¸»ÇÑ´Ù).

[±×¸² 8] ¾Æ¹ÙŸ ¾Ö´Ï¸ÞÀÌ¼Ç ½ÇÇà È­¸é

¸ÕÀú 3D ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ·Á¸é gl.h Çì´õ ÆÄÀÏÀ» ÀÎŬ·çµå½ÃÄÑ¾ß ÇÑ´Ù. ´ÙÀ½À¸·Î G3_LcdSurfaceGet() ÇÔ¼öÀÇ È£ÃâÀ» ÅëÇØ¼­ LCD È­¸é°ú ´ëÀÀµÇ´Â °¡»ó ÇÁ·¹ÀÓ ¹öÆÛ¸¦ ¾ò°Ô µÇ¸ç, ±× ÈÄ »ý¼ºµÈ Ç¥¸é ¹öÆÛ¸¦ G3_SurfaceSet() ÇÔ¼ö¸¦ ÀÌ¿ëÇØ LCD È­¸é¿¡ ¼³Á¤ÇÑ´Ù.

LCD È­¸é »ç¿ë¿¡ ´ëÇÑ ÃʱâÈ­°¡ ³¡³ª¸é InitGame() ÇÔ¼ö¸¦ ÅëÇØ¼­ ÇÊ¿äÇÑ Á¤º¸¸¦ ÃʱâÈ­ÇÑ´Ù. InitGame()Àº glCreate() ÇÔ¼ö¸¦ ÅëÇØ »ç¿ëµÇ´Â GL À©µµ¿ì¸¦ »ý¼ºÇϰí, G3_3DgCreate() ÇÔ¼ö¸¦ ÅëÇØ »ç¿ëÇÒ ¾Æ¹ÙŸ¸¦ »ý¼ºÇϰí, gAddObjectMeshFromeFile() ÇÔ¼ö¸¦ ÅëÇØ ¾Æ¹ÙŸ¸¦ ·ÎµùÇϰí, gAddObjectAnimFromFile() ÇÔ¼ö¸¦ ÅëÇØ ¾Æ¹ÙŸ ¾Ö´Ï¸ÞÀ̼ÇÀ» ·ÎµùÇϰí, G3_3DgSetAvatarPosition() ÇÔ¼ö¸¦ ÅëÇØ ¾Æ¹ÙŸÀÇ À§Ä¡¸¦ ¼³Á¤Çϰí, G3_3DgGetSkinnedMeshBBox() ÇÔ¼ö¸¦ »ç¿ëÇØ ÁöÁ¤µÈ ¾Æ¹ÙŸ °´Ã¼ÀÇ ¹Ù¿îµù Á¤º¸¸¦ ¼³Á¤ÇÏ´Â µî ¾Æ¹ÙŸ ¾Ö´Ï¸ÞÀ̼ǿ¡ ´ëÇÑ ¸ðµâÀÇ ÃʱâÈ­¸¦ ¼öÇàÇÑ´Ù. ±× ³»¿ëÀ» º¸¸é [¸®½ºÆ® 2-2]¿Í °°´Ù

[¸®½ºÆ® 2-1] 3D ¾Ö´Ï¸ÞÀÌ¼Ç ¿¹Á¦ - PART I

[¸®½ºÆ® 2-2] 3D ¾Ö´Ï¸ÞÀÌ¼Ç ¿¹Á¦ - PART II

gAddObjectMeshFromFile() ÇÔ¼ö´Â G3 SDK°¡ Á¦°øÇÏ´Â ÆÄÀÏ ÀÔÃâ·ÂÀ» ÅëÇØ ¸ðµ¨ µ¥ÀÌÅ͸¦ Àоî¿Â ÈÄ Àоî¿Â µ¥ÀÌÅ͸¦ G3_3DgAddSkinnedMeshToAvatar() ÇÔ¼ö¸¦ »ç¿ëÇØ¼­ ¾Æ¹ÙŸ¿¡ ¼³Á¤ÇÏ´Â ºÎºÐÀÌ´Ù.

gAddObjectAnimFromFile() ÇÔ¼ö´Â G3 SDK°¡ Á¦°øÇÏ´Â ÆÄÀÏ ÀÔÃâ·ÂÀ» ÅëÇØ ¸ðµ¨ÀÇ ¾Ö´Ï¸ÞÀÌ¼Ç µ¥ÀÌÅ͸¦ Àоî¿Â ÈÄ G3_3DgAddBoneAnimToAvatar() ÇÔ¼ö¸¦ »ç¿ëÇØ¼­ ÁöÁ¤µÈ ID¿¡ ÇØ´çÇÏ´Â ¾Æ¹ÙŸ¿¡ ¾Ö´Ï¸ÞÀ̼ÇÀ» Ãß°¡Çϰí ÁöÁ¤ÇÑ´Ù. G3_3DgPalyAvatarAnim() ÇÔ¼ö¸¦ ÅëÇØ¼­ ¾Ö´Ï¸ÞÀ̼ÇÀ» ½ÇÇàÇϸç, G3_3DgRepeatAvatarAnim() ÇÔ¼ö¸¦ »ç¿ëÇØ¼­ ÁöÁ¤µÈ ¾Ö´Ï¸ÞÀ̼ÇÀÇ ¹Ýº¹ Ƚ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.

µ¥ÀÌÅÍ¿¡ ´ëÇÑ ÀÛ¾÷ÀÌ ³¡³ª¸é 3D ±×·¡ÇȽº »ç¿ëÀ» À§ÇØ ResizeGLScene() ÇÔ¼ö¿Í InitGL() ÇÔ¼ö¸¦ »ç¿ëÇØ¼­ 3D ±×·¡ÇȽº °ü·Ã ÃʱâÈ­ ÀÛ¾÷À» ÇÑ´Ù([¸®½ºÆ® 2-4]).

ResizeGLScene() ÇÔ¼ö¿¡¼­´Â 3D ÀÛ¾÷À» À§ÇÑ ¿µ¿ªÀÇ »ý¼º, ºäÆ÷Æ® ¼³Á¤, ÇÁ·ÎÁ§¼Ç °ü·Ã ¼³Á¤ µîÀ» ÇÏ°Ô µÈ´Ù. glCreate() ÇÔ¼ö¸¦ »ç¿ëÇØ 3D ÀÛ¾÷ ¿µ¿ªÀ» »ý¼ºÇϰí, glViewport() ÇÔ¼ö¸¦ »ç¿ëÇØ¼­ ½ÇÁ¦ LCD¿Í »ç»óµÇ´Â ºäÆ÷Æ®¸¦ ¼³Á¤ÇÑ´Ù. glPerspective() ÇÔ¼ö¸¦ ÅëÇØ ÇÁ·ÎÁ§¼Ç ¸ÅÆ®¸¯½º¿¡ ´ëÇÑ ¼³Á¤À» ÇÑ´Ù. [¸®½ºÆ® 2-4]¿¡¼­ ÀÛ¾÷µÈ ³»¿ëÀ» »ìÆìº¸¸é ³Êºñ¸¦ width·Î, ³ôÀ̸¦ height·Î ÇÏ´Â ±×¸®±â ¿µ¿ªÀÌ »ý¼ºµÇ¸ç, ºäÆ÷Æ®ÀÇ Å©±â´Â ±×¸®±â ¿µ¿ªÀÇ Å©±â¿Í µ¿ÀÏÇϰí, Ç¥ÇöµÉ 3D ¿ÀºêÁ§Æ®µéÀº ¿ø±Ù¹ý¿¡ ±Ù°£Çؼ­ ±×·ÁÁö´Â ¼³Á¤À» ÇÑ °ÍÀÌ µÈ´Ù.

[¸®½ºÆ® 2-3] 3D ¾Ö´Ï¸ÞÀÌ¼Ç ¿¹Á¦ - PART III


InitGL() ÇÔ¼ö¿¡¼­´Â GLÀ» ÅëÇØ¼­ ±×¸®°íÀÚ ÇÏ´Â Á» ´õ ¼¼¹ÐÇÑ ¼³Á¤À» ÇÏ°Ô µÇ´Âµ¥, ±× ³»¿ëÀ» »ìÆìº¸ÀÚ. glShadeModel() ÇÔ¼ö¸¦ ÅëÇØ ¼ÎÀ̵ùÀ» ¾î¶»°Ô ÇÒ °ÍÀÎÁö ¼³Á¤ÇÑ´Ù. G3 SDK¿¡¼­´Â ÆòÆòÇÑ ¼ÎÀ̵ù(GL_FLAT)°ú ºÎµå·¯¿î ¼ÎÀ̵ù(GL_SMOOTH)ÀÌ Á¦°øµÈ´Ù. ´ÙÀ½À¸·Î glClearColor() ÇÔ¼ö¸¦ ÅëÇØ¼­ »ý¼ºµÈ È­¸éÀÇ ÃÊ±â ¹è°æ»öÀ» ¼³Á¤ÇÑ´Ù. glClearColor()ÀÇ Ã¹ ¹øÂ° ÀÎÀÚ´Â R°ª, µÎ ¹øÂ° ÀÎÀÚ´Â G°ª, ¼¼ ¹øÂ° ÀÎÀÚ´Â B°ªÀ» ³ªÅ¸³»¸ç ¸¶Áö¸· ÀÎÀÚ´Â ¾ËÆÄ °ªÀÌ´Ù. ±× ´ÙÀ½ ¼¼ ¶óÀÎÀº ±íÀÌ ¹öÆÛ¿Í °ü·ÃµÈ °ÍÀÌ´Ù.

[¸®½ºÆ® 2-4] 3D ¾Ö´Ï¸ÞÀÌ¼Ç ¿¹Á¦ - PART IV

SyncFrame()Àº 3D ±×·¡ÇȽº°¡ ±×·ÁÁö´Â ÃÑ ÇÁ·¹ÀÓ °»½Å ºñÀ²À» Á¦¾îÇÏ´Â ÇÔ¼ö·Î, 100ms¸¶´Ù Çѹø¾¿ ±×¸®µµ·Ï ¼³Á¤µÇ¾î ÀÖ´Ù. ÇÁ·¹ÀÓ °»½Å ºñÀ²À» ¹Ù²Ù±â À§Çؼ­´Â <¸®½ºÆ® 2-5>ÀÇ ?¿¡ ¼³Á¤µÈ °ª 100À» º¯°æÇØÁÖ¸é µÈ´Ù. °á±¹ º» ¿¹Á¦¿¡¼­´Â 100À¸·Î ¼³Á¤µÇ¾î Àֱ⠶§¹®¿¡ 10fps·Î ÇÁ·¹ÀÓÀÌ Á¦¾îµÇ´Â °ÍÀ» ÀǹÌÇÑ´Ù.

[¸®½ºÆ® 2-5] 3D ¾Ö´Ï¸ÞÀÌ¼Ç ¿¹Á¦-PART V

ÀÌ»óÀ¸·Î ¾Æ¹ÙŸ ¾Ö´Ï¸ÞÀ̼ǿ¡ À§ÇÑ ÃʱâÈ­ ´Ü°è°¡ ³¡³µ´Ù. ÀÌÁ¦ ½ÇÁ¦ ¸Å ÇÁ·¹ÀÓ¸¶´Ù ¾Æ¹ÙŸ¸¦ ¾î¶»°Ô ¿òÁ÷À̴°¡¿¡ ´ëÇØ¼­ UpdateGame() ÇÔ¼ö¸¦ ÅëÇØ¼­ ¾Ë¾Æ º¼ °ÍÀÌ´Ù.

UpdateGame() ÇÔ¼ö´Â G3_3DgUpdateAvatar() ÇÔ¼ö¸¦ ÅëÇØ °ÔÀÓ ³»ºÎ Á¤º¸¸¦ ¾Æ¹ÙŸ ´ÜÀ§·Î °»½ÅÇÑ´Ù. ¾Ö´Ï¸ÞÀ̼ÇÀÌ ±¸µ¿µÉ ¶§¿¡´Â Á¤Á¡ ´ÜÀ§ÀÇ º¯Çü(deformation)À» ¼öÇàÇØ ±×·ÁÁú Á¤Á¡ Á¤º¸ÀÇ ¿øÇüÀ» ±¸¼ºÇÑ´Ù. ÀÌ·¸°Ô ÇÑ µÚ G3_3DgTransformAvatar() ÇÔ¼ö¸¦ ÅëÇØ ÁöÁ¤µÈ ¾Æ¹ÙŸ¸¦ ¿ÜºÎ º¯È¯ Á¤º¸¿¡ ÀÇÇØ Á¤ÇØÁø À§Ä¡·Î º¯È¯½ÃŲ´Ù. º¯È¯Àº ȸÀü°ú À̵¿À» Æ÷ÇÔÇÑ´Ù. »õ·Î¿î À§Ä¡·Î º¯È¯µÈ ¾Æ¹ÙŸ´Â G3_3DgDrawAvatar() ÇÔ¼ö¸¦ »ç¿ëÇØ¼­ ±×·ÁÁö°Ô µÈ´Ù.

[¸®½ºÆ® 2-6] 3D ¾Ö´Ï¸ÞÀÌ¼Ç ¿¹Á¦-PART VI

G3 SDK »ç¿ëÀÚ´Â OpenGL ES ±â¹ÝÀÇ ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í SDK¿¡¼­ Á¦°øµÈ API¸¸À» °®°í ¸ðµ¨À» Ç÷¹ÀÌ, Á¤Áö, ȸÀüÇÒ ¼ö ÀÖ´Ù. <¸®½ºÆ® 2-7>ÀÇ ³»¿ëÀº ÀÌ·¯ÇÑ ZOOM IN/OUT, ROTATE, PLAY ANIMATION, STOP ANIMATION¿¡ °üÇÑ °ÍÀÌ´Ù. ¿Ï¼ºµÈ ¿¹Á¦¸¦ ½ÇÇà½ÃÄÑ º¸¸é <±×¸² 8>¿Í °°ÀÌ 3D ¸ðµ¨ÀÌ ÃãÀ» Ãß´Â ¸ð½ÀÀ» È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

[¸®½ºÆ® 2-7] 3D ¾Ö´Ï¸ÞÀÌ¼Ç ¿¹Á¦ - PART VII

´ÙÀ½ È£ºÎÅÍ ½ÇÁ¦ °ÔÀÓ °³¹ß °úÁ¤À»!
Áö±Ý±îÁö ¸ð¹ÙÀÏ 3D¿Í °ü·ÃµÈ ½ÃÀå »óȲ°ú ±â¼ú µ¿ÇâÀ» Á¡°ËÇÏ°í °£´ÜÇÑ ¸ð¹ÙÀÏ 3D ÇÁ·Î±×·¡¹Ö ¿¹Á¦¸¦ »ìÆìº¸¾Ò´Ù. ´Ù¸¥ ºÐ¾ß¿Í ¸¶Âù°¡Áö·Î ¸ð¹ÙÀÏ ±â¼úµµ ºü¸£°Ô ¹ßÀüÇÏ´Â µ¥´Ù ¾÷üµéÀÇ Áß¿äÇÑ »ç¾÷°ú °ü·ÃµÇ´Ùº¸´Ï ¸¹Àº ³»¿ëÀ» ´Ù·çÁö ¸øÇÑ Á¡ÀÌ ÀÖ´Ù. ¶ÇÇÑ Áö¸é °ü°è»ó ¿¹Á¦¸¦ ÃæºÐÈ÷ Á¦°øÇÏÁö ¸øÇߴµ¥, Á» ´õ ¸¹Àº ³»¿ëÀ» ½ÀµæÇÏ°í ½ÍÀº µ¶ÀÚµéÀº SDK ³»ºÎ »ùÇ÷ΠȮÀÎÇØº¸±â ¹Ù¶õ´Ù.

´ÙÀ½ È£ºÎÅÍ´Â ½ÇÁ¦ °ÔÀÓÀÇ °³¹ß °úÁ¤À» ÅëÇØ ´õ¿í ±¸Ã¼ÀûÀÎ ÇÁ·Î±×·¡¹Ö °úÁ¤À» »ìÆìº¸±â·Î ÇϰڴÙ. ³¡À¸·Î G3 SDK´Â G3D À¥»çÀÌÆ®(www.g3d.co.kr)¿¡¼­ ´Ù¿î¹ÞÀ» ¼ö ÀÖÀ¸¸ç, ¹æ¹®ÇÏ´Â °³¹ßÀڵ鰣 ¼­·Î ÀÇ°ß ±³È¯µµ °¡´ÉÇÏ´Ù. @

* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ ÀÚ¸ÅÁöÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
¾ÆÀ̵ð ºñ¹Ð¹øÈ£
 
 
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨í] Çʼö ¾ÆÀÌ...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ì] ÇÁ·Î±×·¡¹Ö...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ç] °¡½¿ÀÇ ²Þ...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨è] ¿ëÀ» ¸¸³ª...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ê] ±âº»±â ¾ø...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ë] »õ·Î¿î ½Ã...