»ó´Ü¿©¹é
HOME ±ÝÀ¶¡¤ÇÉÅ×Å©
À¯´ÏƼ3D °ÔÀÓ ¸®¼Ò½º ÃÖÀûÈ­? 3°¡Áö¸¸ ±â¾ïÇضó



À¯´ÏƼ3D(Unity3D)·Î °ÔÀÓÀ» °³¹ßÇÏ´Ù°¡ °³¹ß»ç°¡ ¿Ï¼º ´Ü°è¿¡¼­ °¡Àå ¾î·Á¿öÇϸ鼭µµ ²À ÇѹøÀº °ÅÃÄ¾ß ÇÏ´Â °úÁ¤ÀÌ ¹Ù·Î ¡®¸®¼Ò½º ¹× ¸Þ¸ð¸® ÃÖÀûÈ­¡¯´Ù. ¸ð¹ÙÀϱâ±â Ư¼º»ó ¸®¼Ò½º°¡ ³Ë³ËÇÏÁö ¾ÊÀº Å¿¿¡ ´Ü ¸î ¸Þ°¡¶óµµ ¸Þ¸ð¸®¸¦ ¾Æ³¢·Á´Â ³ë·ÂÀÌ ÇÊ¿äÇÒ ¼ö¹Û¿¡ ¾ø´Ù.

¸Þ¸ð¸®¿Í ¸®¼Ò½º ÃÖÀûÈ­¸¦ ÇØ¾ß ÇÏ´Â ÀÌÀ¯´Â ÀÌ·¸´Ù. ù°. ¿ë·®ÀÌ 50M¸¦ ³Ñ°Ô µÇ¸é ´Ù¿î·Îµå ¹Þ´Â À¯Àú ¼ö°¡ Àý¹ÝÀ¸·Î ÁÙ¾îµç´Ù´Â °Í. Åë°èÀûÀ¸·Î 50MB°¡ ³Ñ´Â °ÔÀÓÀ» ³»·Á¹Þ´Â À¯Àú ¼ö°¡ Àý¹Ý ÀÌ»ó ²ªÀδٰí ÇÑ´Ù. °³¹ß»ç¿Í ÆÛºí¸®¼Å ¸ðµÎ °ÔÀÓ Å¬¶óÀ̾ðÆ® ¿ë·®À» °¡´ÉÇϸé Àû°Ô ³·Ãß·Á°í ÇÏ´Â ÀÌÀ¯µµ ¿©±â¿¡ ÀÖ´Ù.

µÑ° ¸Þ¸ð¸®¸¦ ¸¹ÀÌ ¾²¸é °ÔÀÓ À¯Àú ¼ö¿¡ Á¦¾àÀÌ »ý±ä´Ù´Â Á¡. ¸Þ¸ð¸®¸¦ ¸¹ÀÌ ¾²°Ô µÇ¸é Àú»ç¾ç ½º¸¶Æ®ÆùÀÇ °æ¿ì¿¡´Â °ÔÀÓ»ó À̹ÌÁö ÀÚü¸¦ ºÒ·¯¿Ã ¼ö ¾ø°Ô µÈ´Ù. ±× Å¿¿¡ È­¸éÀÌ ±úÁö°Å³ª ¾Æ¿¹ ÀÛµ¿À» ¸ØÃß°Ô µÈ´Ù. °í°´ÀÇ ¾öû³­ Ç×ÀÇ¿Í ºÒ¸¸À» ¸ô°í ¿À°Ô µÇ´Â ¿øÀÎ Á¦°øÀÚ°¡ µÇ´Â °Í.

¸¶Áö¸·Àº °ÔÀÓ ÄÜÅÙÃ÷ ÀÚüÀÇ Æ¯¼º»ó À̹ÌÁö¿Í »ç¿îµå ¸®¼Ò½º ¾çÀÌ ¹æ´ëÇÏ´Ù´Â °ÍÀÌ´Ù. º¸Åë ¾ÛÀ̳ª ¼­ºñ½ºº¸´Ù °ÔÀÓÀº À̹ÌÁö ¸®¼Ò½º¸¦ »ó´ç·® º¸À¯ÇÏ°í ÀÖ´Ù. µû¶ó¼­ ¸®¼Ò½º°¡ ÃÖÀûÈ­µÇÁö ¾Ê¾ÒÀ» ¶§ ¹ß»ýÇÏ´Â ¿À¹öÇìµå´Â ÀÏ¹Ý ¾Û°ú´Â ºñ±³°¡ ¾È µÈ´Ù. ±×·¸´Ù¸é ÀÌÁ¦ ±¸Ã¼ÀûÀ¸·Î ¸®¼Ò½º ÃÖÀûÈ­ °¡À̵å¶óÀÎÀ» ¾Ë¾Æº»´Ù.

¡Þ À̹ÌÁö °¡·Î¼¼·Î »çÀÌÁî´Â ¹«Á¶°Ç 2ÀÇ Á¦°ö=°ÔÀÓ¿¡¼­ »ç¿ëÇÏ´Â À̹ÌÁö °¡·Î¼¼·Î »çÀÌÁî´Â ¹«Á¶°Ç 2ÀÇ Á¦°öÀ¸·Î µÇ¾î¾ß ÇÑ´Ù(Power Of Two). ÄÄÇ»ÅÍ¿¡¼­ À̹ÌÁö¸¦ »ç¿ëÇÒ ¶§¿¡´Â °³³äÀûÀ¸·Î ¡°[1¹ø] µð½ºÅ©¿¡¼­ À̹ÌÁö ºÒ·¯¿À±â¡æ[2¹ø] À̹ÌÁö ¾ÐÃà Æ÷¸Ë ¾ÐÃà ÇØÁ¦¡æ[3¹ø] 1024¡¿1024¡¿32ºñÆ® ¸Þ¸ð¸® ºí·Ï¿¡ ÇØ´ç À̹ÌÁö ÇҴ硱 °úÁ¤À» °ÅÄ£´Ù.

1024¡¿1024¡¿32ºñÆ® RGBA ±âÁØÀ¸·Î À̹ÌÁö¸¦ ¾ÐÃàÇÑ png ¿ë·®Àº 313KB¿¡ ºÒ°úÇÏ´Ù. ÇÏÁö¸¸ ¾ÐÃàÀ» ÇØÁ¦ÇÏ¸é ¸Þ¸ð¸®»ó À̹ÌÁö »çÀÌÁî´Â 4MB³ª µÈ´Ù. 2048¡¿2048À̶ó¸é 16MB¿¡ À̸¥´Ù.

ÀÌ·¸°Ô °¡·Î¼¼·Î »çÀÌÁî°¡ 2ÀÇ Á¦°öÀ¸·Î µÈ À̹ÌÁö°¡ ¾Æ´Ñ °æ¿ì¿¡´Â »ó´çÇÑ ¸Þ¸ð¸® ³¶ºñ°¡ ÀϾ°Ô µÈ´Ù. ¿¹¸¦ µé¾î 900¡¿900 »çÀÌÁî À̹ÌÁö°¡ ÀÖ´Ù°í ÇÏÀÚ. ¸Þ¸ð¸®»ó¿¡¼­ 900¡¿900 »çÀÌÁî À̹ÌÁö¸¦ µµ¸£ÇÒ ¶§ ÇØ´ç À̹ÌÁö¸¦ ¶È°°ÀÌ 1024¡¿1024·Î º¯È¯ÇØ ´Ù½Ã ¸Þ¸ð¸®¿¡ ÀúÀåÇÏ°Ô µÈ´Ù. ´Ù½Ã ¸»ÇØ °ÅÀÇ ¹è¿¡ °¡±î¿î À̹ÌÁö ¸Þ¸ð¸®°¡ ³¶ºñµÇ´Â °ÍÀÌ´Ù.

ÀÌ·± ÀÌÀ¯ ¶§¹®¿¡ À¯´ÏƼ3D¸¦ ºñ·ÔÇÑ ¿©·¯ °ÔÀÓ °³¹ß ¿£Áø¿¡¼­ ¾ÆƲ¶ó½º(Atlas)¶ó´Â ¸®¼Ò½º ´ÜÀ§¸¦ »ç¿ëÇÏ°Ô µÈ´Ù. À̹ÌÁö¸¦ POT(2ÀÇ Á¦°ö) ¹æ½ÄÀ¸·Î ¹Ù²ã¼­ Ç×»ó È°¿ëÇϱ⸦ ±ÇÇÑ´Ù.

¡Þ ¸Þ¸ð¸® »ç¿ë·® ÇÁ·ÎÆÄÀϸµ Á÷Á¢ Çغ¸¸é¡¦=À̹ø¿¡´Â °ÔÀÓ ¸®¼Ò½º¸¦ ÃÖÀûÈ­ÇÒ ¶§ Á÷Á¢ °£´ÜÇÑ ÇÁ·ÎÆÄÀÏ·¯¸¦ µ¹·Áº¸°Ú´Ù. ÇöÀç ¾À(Scene)¿¡ ÀÖ´Â ¸ðµç À̹ÌÁö ¸®¼Ò½º¸¦ ¸ðµÎ Á¶»çÇØ °³º° °´Ã¼°¡ ¾ó¸¶³ª ¸Þ¸ð¸®¸¦ Â÷ÁöÇÏ°í ÀÖ´ÂÁö üũÇØ Å« ¼ø¼­´ë·Î ³ª¿­ÇÑ´Ù.



var sortedAll = FindObjectsOfTypeIncludingAssets(typeof(Texture2D)).OrderBy(go=>

Profiler.GetRuntimeMemorySize(go)).ToList();


ÀÌ ¸í·ÉÀ¸·Î ÇöÀç ¸ðµç ÅؽºÃ³2D(Texture2D) ¿ÀºêÁ§Æ®¸¦ ±¸ÇÒ ¼ö ÀÖ´Ù. ¶Ç ¸Þ¸ð¸® Å©±â ¼ø¼­´ë·Î Á¤·ÄÇÑ »óÅ·Π¸®½ºÆ®°¡ ³ª¿À°Ô µÈ´Ù. ±×·¸´Ù¸é ¸ðµç ÅؽºÃ³2D ¸®½ºÆ®¸¦ Ãâ·ÂÇغ¸µµ·Ï ÇÏ°Ú´Ù.


varsortedAll=FindObjectsOfTypeIncludingAssets(type).OrderBy(go=>

Profiler.GetRuntimeMemorySize(go)).ToList();

StringBuildersb=newStringBuilder("");
intmemTexture=0;
for(inti=sortedAll.Count-1;i>=0;i--){
if(!sortedAll[i].name.StartsWith("d_")){
memTexture+=Profiler.GetRuntimeMemorySize(sortedAll[i]);
sb.Append(type.ToString());
sb.Append("Size#");
sb.Append(sortedAll.Count-i);
sb.Append(":");
sb.Append(sortedAll[i].name);
sb.Append("/InstanceID:");
sb.Append(sortedAll[i].GetInstanceID());
sb.Append("/Mem:");
sb.Append(Profiler.GetRuntimeMemorySize(sortedAll[i]).ToString());
sb.Append("B/Total:");
sb.Append(memTexture/1024);
sb.Append("KB");
sb.Append("\n");

}
}
Debug.Log("Texture2DInspect:"+sb.ToString());

¡Ø ¿©±â¿¡¼­ stringÀÇ + ¿¬»ê ´ë½Å StringBuilder¸¦ »ç¿ëÇÑ ÀÌÀ¯´Â ¿¬»ê ¼º´ÉÀÌ ´õ È¿À²ÀûÀ̱⠶§¹®ÀÌ´Ù.

ÀÌ·¸°Ô °£´ÜÇÑ C# ÄÚµå·Î µÈ ÇÁ·ÎÆÄÀÏ·¯¸¦ µ¹·Áº¸¸é ÇöÀç ¾À¿¡¼­ ¾î¶² ÅؽºÃ³2D°¡ ±«¹°°°ÀÌ ¸¹Àº ¸Þ¸ð¸®¸¦ ¸Ô°í ÀÖ´ÂÁö ´«À¸·Î È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¾Èµå·ÎÀ̵å(Android) ºôµå¶ó¸é ¾Èµå·ÎÀ̵å DDMSÀÇ ·Î±×Ĺ(LogCat)À¸·Î ·Î±×¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¿©·¯ Å×½ºÆ® ±â±â¿¡¼­ ÇØ´ç ·Î±×¸¦ Á÷Á¢ È®ÀÎÇغ¸°í ½Í´Ù¸é ¼­¹ö¿¡ ·Î±×¸¦ ³²±â´Â ¹æ½Äµµ °¡´ÉÇÏ´Ù. ÇÊÀÚ´Â QA Å×½ºÆ®¸¦ ÇÒ ¶§ ÇØ´ç ·Î±×¸¦ ¼­¹ö¿¡ Á÷Á¢ º¸³»º¸¸é¼­ Å×½ºÆ®¸¦ ÇغôÙ. ¼º´É ÃÖÀûÈ­¿¡ »ó´çÇÑ µµ¿òÀÌ µÈ´Ù.

¡Þ ÅؽºÃ³ ÇϳªÇϳª ÃÖÀûÈ­·Î ¸¶¹«¸®=¸¶Áö¸·Àº °¡Àå ¸¹Àº ¸Þ¸ð¸®¸¦ ¸Ô°í ÀÖ´Â ÅؽºÃ³ºÎÅÍ ÀÛÀº °Í±îÁö ÇϳªÇϳª ÃÖÀûÈ­¸¦ Çسª°£´Ù. ¸ÕÀú ¾µµ¥¾øÀÌ Å« °ø°£À» Â÷ÁöÇÏ´Â ¾ÆƲ¶ó½ºÀÇ °æ¿ì´Â ¸î °³¸¦ ¹­¾î Çϳª·Î ¸¸µé¾î ³²´Â ¿©¹éÀ» ÁÙÀδÙ. ´ÙÀ½À¸·Î ÇÊ¿ä ¾ø´Â À̹ÌÁö´Â »èÁ¦ÇÑ´Ù.

´«¿¡ Å©°Ô º¸ÀÌÁö ¾Ê´Â À̹ÌÁö°¡ ³Ê¹« °íÇØ»óµµÀÎ °æ¿ì È­ÁúÀ» ³·Ãç¼­ ´Ù½Ã ÀÓÆ÷Æ®(Import)ÇÏ´Â °Íµµ ÀØÁö ¸»¾Æ¾ß ÇÑ´Ù. pngÀÇ °æ¿ì Æ÷Åä¼¥ Ç÷¯±×ÀÎÀ» ÅëÇؼ­ À̹ÌÁö¸¦ ¾ÐÃàÇØ ´Ù½Ã ÀÓÆ÷Æ®ÇÑ´Ù.

¿Àµð¿À ÆÄÀÏÀº ¸ð¹ÙÀÏ¿¡¼­ ½ºÅ×·¹¿À ¸ðµå°¡ Àǹ̰¡ ¾øÀ¸´Ï ¸ðµÎ 92kb, ¸ð³ë·Î ÀÎÄÚµùÇϵµ·Ï ¼³Á¤ÇÑ´Ù. ÀÌ ¼³Á¤Àº À¯´ÏƼ ¿£Áø¿¡¼­ °¡´ÉÇÏ´Ù. ¶Ç À̹ÌÁö°¡ ¿©·¯ ¹ø ·ÎµùµÇÁö ¾Ê°Ô Singleton ÆÐÅÏÀ» È°¿ëÇÑ´Ù.

¹°·Ð À§¿Í °°Àº ¸®¼Ò½º¿Í ¸Þ¸ð¸® ÃÖÀûÈ­ ¹æ¹ýÀº ´ÜÆíÀûÀÎ ¼Ö·ç¼ÇÀÌ´Ù. ÇÏÁö¸¸ °ÔÀÓ¿¡¼­ °¡Àå ¸¹Àº ¿ë·®°ú ¸Þ¸ð¸®¸¦ Â÷ÁöÇÏ´Â À̹ÌÁö ¸®¼Ò½º ÃÖÀûÈ­¿¡¼± ¾ÆÁÖ ±âº»ÀûÀÎ ´Ü°èÀ̱⵵ ÇÏ´Ù.

¼ÛÈ£¿¬ Ä®·³´Ï½ºÆ®  ceo@elgamez.com

<ÀúÀÛ±ÇÀÚ © Å×ũȦ¸¯, ¹«´Ü ÀüÀç ¹× Àç¹èÆ÷ ±ÝÁö>

¼ÛÈ£¿¬ Ä®·³´Ï½ºÆ®ÀÇ ´Ù¸¥±â»ç º¸±â
Àαâ±â»ç
Ãßõ±â»ç
±â»ç ´ñ±Û 0°³
Àüüº¸±â
ù¹ø° ´ñ±ÛÀ» ³²°ÜÁÖ¼¼¿ä.
¿©¹é
¿©¹é
Àç¹ÌÀÖ´Â Å×Å©¿ùµå ¼¼»ó
¿©¹é
¿©¹é
¿©¹é
¿©¹é
¿©¹é
¿©¹é
¿©¹é
Back to Top