µÚÒ»Õ£ºË½Á¢Å®Ð£ÒÆÖ²ÊÖÒÕÏÖ×´ÓëÍ»ÆÆ
ÏñËØÀàŮУÖ÷ÌâÓÎÏ·µÄÒÆ¶¯¶ËÒÆÖ²ÃæÁÙË«ÖØÌôÕ½£º¼ÈÓйŰåÒÆÖ²¹¤³ÌµÄ¹²Í¨ÄÑÌ⣬ÓÖÐèÓ¦¶ÔÌØÊâÌâ²ÄϵͳµÄÊÊÅäÐèÇó¡£Ë½Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²ÏÂÔØÏîÄ¿½ÓÄÉÄæÏò¹¤³Ì£¨Reverse Engineering£©ÊÖÒÕ£¬Í¨¹ý¶ÔUnityÒýÇæ¼Ü¹¹µÄÉî¶ÈÆÊÎö£¬ÀÖ³ÉʵÏÖÓÎÏ·½¹µãÄ£¿é½â°ü¡£ÔÚOpenGL£¨¿ª·ÅͼÐο⣩µ½VulkanͼÐÎAPIת»»Àú³ÌÖУ¬¿ª·¢ÍŶÓÔËÓö¯Ì¬×ÅÉ«Æ÷±àÒëÊÖÒÕ£¬Ê¹±¬ÒÂϵͳµÄÁ£×ÓЧ¹ûµÃÒÔ±£´æ¡£
µÚ¶þÕ£º±¬ÒÂϵͳÊÖÒÕÊÊÅäÒªº¦µã
½ÇÉ«»¥ÄîÍ·ÖÆÖеı¬ÒÂЧ¹ûÒÆÖ²±£´æÈý´óÊÊÅäÄѵ㣺ÎïÀíÒýÇæ²ÎÊýÆ¥Åä¡¢´¥¿Ø²Ù×÷ÊÊÅäÒÔ¼°Òƶ¯¶ËÐÔÄÜÓÅ»¯¡£Í¨¹ý½«Ô°æBox2DÎïÀíϵͳµ÷½âΪÇáÁ¿¼¶PhysXÒÆ¶¯°æ£¬ÊµÏÖÁË´ò°çËéÁÑЧ¹ûµÄ׼ȷģÄâ¡£¿ª·¢ÈÕÖ¾ÏÔʾ£¬ÔÚÇø·ÖÂÊÊÊÅä½×¶Î£¬½ÓÄɶ¯Ì¬Íø¸ñϸ±ðÀëÒÕʹ½Çɫģ×ÓµÄ768¸ö¼«µãÍêÉÆÊÊÅä²î±ðÆÁÄ»³ß´ç¡£ÕâÖÖÊÖÒÕÍ»ÆÆÊ¹Ë½Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²±¬ÒÂЧ¹û¸æ¿¢98%԰滹Զȡ£
µÚÈýÕ£ºÒÆÖ²¹¤¾ßÁ´ÉèÖüƻ®
ÔõÑùÑ¡Ôñ¸ßЧµÄÒÆÖ²¹¤¾ß³ÉΪ¿ª·¢Òªº¦£¿×¨ÒµÍŶÓÍÆ¼ö½ÓÄÉARM Mali GPUµ÷ÊÔÌ×¼þÅäºÏAndroid Studio¾ÙÐÐ¿çÆ½Ì¨ÒÆÖ²¡£ÔÚ±àÒë»·½ÚÒýÈëIL2CPPת»»ÊÖÒÕ£¬Ê¹C#¾ç±¾µÄÖ´ÐÐЧÂÊÌáÉý40%¡£ÌØÊâÊÇÕë¶Ô˽Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²ÏÂÔØÐèÇ󣬿ª·¢Ö°Ô±¶ÔAssetBundle×ÊÔ´°ü¾ÙÐÐÁËLZ4HCѹËõÓÅ»¯£¬×°ÖðüÌå»ýËõ¼õÖÁÔ°æµÄ65%¡£
µÚËÄÕ£ºÊÖ»ú¶Ë²Ù×÷ÓÅ»¯Õ½ÂÔ
´¥ÆÁ×°±¸µÄ²Ù×÷ÊÊÅäÖ±½ÓÓ°ÏìÓÎÏ·ÌåÑé¡£Ñз¢ÍŶÓΪ˽Á¢Å®Ð£µÄÌôÕ½Éè¼ÆÁËÌØÓеÄ˫ָ´¥¿ØÓ³É伯»®£¬½«Ô±¾ÐèÒª×éºÏ¼ü²Ù×÷µÄ±¬Ò»úÖÆ×ªÎª»¬¶¯+³¤°´ÊÖÊÆ¡£ÔÚUI½çÃæÖØ¹¹·½Ã棬ÔËÓÃÏìӦʽ½á¹¹ÊÖÒÕÈ·±£¸÷ÔªËØÔÚ²î±ðÆÁÄ»±ÈÀýϵÄ׼ȷÏÔʾ¡£²âÊÔÊý¾ÝÏÔʾ£¬¾ÓÉÓÅ»¯µÄÐéÄâÒ¡¸Ë¾«×¼¶ÈÏà½Ï¹Å°å¼Æ»®ÌáÉý32%£¬ÕâΪÊÖ»ú¶ËÍêÉÆÊµÏÖ½ÇÉ«»¥ÄîÍ·ÖÆµÓÚ¨ÁË»ù´¡¡£
µÚÎåÕ£º×°Öõ÷ÊÔÓë¼æÈÝÐÔ°ü¹Ü
Íê³É˽Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²ÏÂÔØºó£¬ÔõÑù¾ÙÐÐ×°±¸ÊÊÅäµ÷ÊÔ£¿½¨Òé½ÓÄÉ·Ö¼¶²âÊÔ·¨£ºÍ¨¹ýAndroid Virtual Device¾ÙÐлù´¡¹¦Ð§ÑéÖ¤£¬ÔÙʹÓÃÖ÷Á÷Æ·ÅÆÕæ»ú¾ÙÐÐѹÁ¦²âÊÔ¡£ÔÚÔËÐн׶Σ¬¿ª·¢ÍŶӷ¢Ã÷²¿·Ö»úÐͱ£´æÎÆÀí˺ÁÑÎÊÌ⣬×îÖÕͨ¹ýÇ¿ÖÆ¿ªÆôÈýÖØ»º³å£¨Triple Buffering£©½â¾ö¼Æ»®¡£Õë¶Ô±¬ÒÂÌØÐ§Ôì³ÉµÄGPU¹ýÔØ£¬ÌØÊ⿪·¢Á˶¯Ì¬»Öʵ÷ÀíÄ£¿é£¬¿ÉÔÚÔËÐÐʱ×Ô¶¯Æ½ºâ»ÃæÖÊÁ¿ÓëÖ¡ÂÊ¡£
˽Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²ÏÂÔØ¹¤³ÌÕ¹ÏÖÁËÏÖ´úÓÎÏ·ÒÆÖ²ÊÖÒÕµÄÍ»ÆÆÐÔÏ£Íû¡£´ÓͼÐÎAPIÊÊÅäµ½ÎïÀíÒýÇæÓÅ»¯£¬´Ó²Ù×÷Ó³É伯»®µ½×°ÖðüѹËõ£¬Ã¿¸öÊÖÒÕ»·½Ú¶¼Äý¾Û×Å¿ª·¢Õß¶Ô¶þ´ÎÔªÓÎÏ·ÒÆÖ²µÄÉî¶ÈÃ÷È·¡£Ëæ×ÅÒÆ¶¯×°±¸ÐÔÄܵÄÒ»Á¬ÌáÉý£¬Ë½Á¢Å®Ð£µÄÌôÕ½ÕâÀàÌØÊâÌâ²ÄÓÎÏ·ÒÆÖ²½«ÓÀ´¸üÁÉÀ«µÄÉú³¤¿Õ¼ä£¬ÆÚ´ý¸ü¶àÍæ¼ÒÄÜÌåÑéµ½ÔÖÔζµÄ±¬ÒÂϵͳÓë½ÇÉ«»¥ÄîÍ·ÖÆ¡£ÒÆÖ²¹¤³ÌµÄ¼Ü¹¹ÆÊÎöÓë×¼±¸¹¤¾ß
Æô¶¯Ë½Á¢Å®Ð£ÌôÕ½ÒÆÖ²ÏîÏÖÔÚ£¬±ØÐè¾ÙÐÐÍêÕûµÄ¼Ü¹¹É¨Ãè¡£ÔÉúÓÎÏ·»ùÓÚCanvasGL 2.0ÒýÇæ¹¹½¨£¬ÕâÓëÏÖ´ú×°±¸µÄWebGPU±ê×¼±£´æ´ú²î¡£¿ª·¢ÍŶÓÐèÒª»ñÈ¡Ôʼ±àÒë²úÆ·²¢ÉèÖÃDebugModµ÷ÊÔ¹¤¾ß£¨Ò»ÖÖÓÎÏ·ÄæÏò¹¤³Ì¸¨Öú³ÌÐò£©¾ÙÐÐÄæÏòÆÊÎö¡£Ö÷ÓÎÏ·Âß¼´æ´¢ÔÚassets/game.binÎļþÖУ¬¶ø½ÇÉ«¶¯»×ÊÔ´Ôò½ÓÄÉQSPR¼ÓÃÜÃûÌÃÊèÉ¢ÔÚtexturesĿ¼ÄÚ¡£
×ÊÔ´°ü½âÃÜÓëÎļþ½á¹¹ÖØ×é
ÈçÄÇÀïÖüÓÃܵÄQSPRÎļþ³ÉÎªÒÆÖ²Ê×µÀÄѹء£Í¨¹ýHookÊÖÒÕ£¨ÏµÍ³¼¶Ö¸Áî×èµ²ÒªÁ죩׷×Ùµ½ÄÚ´æÖеÄÎļþ½âÃÜÁ÷³Ì£¬×îÖÕÔÚÔËÐÐʱ½Ø»ñÃÜÔ¿ÌìÉúËã·¨¡£ÖØ×éºóµÄ×ÊÔ´ÐèҪƾ֤ÏÖ´úÓÎÏ·µÄAssetBundle¹æ·¶ÖØÐ´ò°ü£¬Õâ»áÉæ¼°Ëزijߴç±ê×¼»¯´¦Öóͷ£¡£ÖµµÃ×¢ÖØµÄÊÇ£¬Ô°æË½Á¢Å®Ð£µÄ640x360Çø·ÖÂÊÐèÒªÊÊÅä¶àÖÖ×°±¸£¬½¨Òé½ÓÄɶ¯Ì¬Çø·ÖÂÊËõËÉÊÖÒÕ¡£
ͼÐÎäÖȾ²ãµÄÏÖ´úÖØ¹¹¼Æ»®
ÒÆÖ²ÍŶÓÃæÁÙµÄ×î´óÌôÕ½À´×ÔͼÐιÜÏßÖØ¹¹¡£ÔÉú2D¾«Áé½ÓÄÉÖðÖ¡»æÖƵĹŰ巽·¨£¬ÕâÔÚÐÂÉè±¹ØÁ¬¼ÖÂGPUʹÓÃÂÊȱ·¦¡£¿·¢k8¹ú¼Ê¼Æ»®Êǽ¨Éè¶àÏß³ÌäÖȾ¹ÜÏߣ¬½«Åä¾°²ã¡¢½ÇÉ«²ãºÍÌØÐ§²ãÊèÉ¢´¦Öóͷ£¡£Í¨¹ýÐÔÄܲâÊÔÊý¾Ý±ÈÕÕ£¬Öع¹ºóµÄͼÐÎϵͳÔÚÒÆ¶¯¶ËʵÏÖ60FPSÎȹÌÔËÐУ¬¶ø¹¦ºÄ½µµÍ23%¡£
ÊäÈë¿ØÖÆÏµÍ³ÊÊÅäÕ½ÂÔ
˽Á¢Å®Ð£ÌØÓеĶà·ÖÖ§¾çÇéϵͳÐèÒª¾«×¼µÄ´¥¿Ø²Ù×÷ÊÊÅä¡£ÒÆÖ²Àú³ÌÖбØÐèÖØÐ´ÔÓеļüÅÌÊÂÎñ¼àÌýÄ£¿é£¬¹¹½¨»ùÓÚÊÖÊÆÊ¶±ðµÄ»ìÏýÊäÈëϵͳ¡£Êµ²âÏÔʾ£¬ÔÚ»¬¶¯²Ù×÷µÄ¹ì¼£Õ¹ÍûËã·¨¼Ó³ÖÏ£¬´¥ÆÁ×°±¸µÄÑ¡Ôñ׼ȷÂÊÌáÉýÖÁ98.7%£¬ÍêÉÆ¸´ÏÖPC¶ËµÄ²Ù×÷ÌåÑé¡£
ÐÔÄÜÓÅ»¯Óë×°±¸¼æÈݰü¹Ü
Ϊȷ±£ÒÆÖ²°æÔڵͶË×°±¸µÄÁ÷ͨÔËÐУ¬ÍŶӿª·¢Á˶¯Ì¬LODϵͳ£¨Ï¸½ÚÌõÀíµ÷ÀíÊÖÒÕ£©¡£µ±GPU¸ºÔØÁè¼ÝãÐֵʱ£¬ÏµÍ³»á×Ô¶¯½µµÍÅä¾°ÌØÐ§ÖÊÁ¿²¢¼ò»¯½ÇÉ«¹Ç÷À¶¯»¡£ÌØÊâÕë¶Ô°²×¿Ë鯬»¯ÎÊÌ⣬ÎÒÃÇÔ¤ÉèÁË20ÖÖÓ²¼þÉèÖüƻ®£¬ÁýÕÖ´ÓæçÁú4ϵµ½Ììçá9000ϵÁеÄÖ÷Á÷оƬ×é¡£
˽Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²¹¤³ÌÕ¹ÏÖÁËÏÖ´úÓÎÏ·ÒÆÖ²µÄÍêÕûÊÖÒÕÁ´Ìõ¡£´ÓÄæÏò¹¤³Ìµ½¼Ü¹¹Öع¹£¬Ã¿¸ö»·½Ú¶¼ÐèҪȫÐÄÉè¼ÆÓÅ»¯¼Æ»®¡£±¾ÎÄÐðÊöµÄÒªº¦ÊÖÒÕµãÒÑÔÚÏÖʵÏîÄ¿ÖÐÑéÖ¤£¬ÌØÊâÊǶ¯Ì¬Çø·ÖÂÊϵͳÓë»ìÏýÊäÈë¼Æ»®£¬¿ÉΪͬÀàÈÕʽÊÓ¾õÐ¡ËµÒÆÖ²ÌṩÖ÷Òª²Î¿¼¡£Ëæ×ÅWebGPUÊÖÒյįռ°£¬Î´À´¿çÆ½Ì¨ÒÆÖ²½«»ñµÃ¸üͳһµÄÊÖÒÕÖ§³Ö¡£