Kategoriarkiv: Mobil

Optimering av texturer

Fick ett litet problem med ett av vårt optimerings script. Optimerings scriptet gör så att alla objekt som inte rör sig lägger ihop allas bilder till en stor bild och på så sätt minskar antal draw calls. När vi nu skulle lägga ut första leveln så blev de texturerna helt svart. Felet var att Mac & Iphone inte stödjer vissa bildformat. Så för att kringgå problemet så behövde vi ändra formatet på bilderna. Dock visade sig att formatet vi är tvingade att köra för att scriptet ska fungera var RGBA 32 bit. Detta formatet är det mest krävande formatet för Iphonen/Mac datorer.

Hittade en lista på unity om de olika formatet som fungerar till olika telefonerna. En intressant sak som man kunde se där var att Iphone inte har samma som Android smartphones.

http://docs.unity3d.com/Documentation/Components/class-Texture2D.html

Med texture felet:

Skärmavbild 2013-04-03 kl. 14.27.00

Utan texture felet:

Skärmavbild 2013-04-03 kl. 14.39.30

Hittade även en optimeringsmanual på Unity inom smartphones när jag sökte efter vårt problem.

http://docs.unity3d.com/Documentation/Manual/MobileOptimisation.html

Mobiltest

Har nu gjort några tester gällande iphone4.

För det första så ska man inte ha Vsync igång har vi märkt i Unity. Det tar för mycket prestanda. Tar man bort det så kommer man in så att man kan ha mellan 200-250st rörliga kuber på mobilen.

Sen för att testa lite mer så körde jag med en karaktär som har 102 verts. Jag kunde ha 200st rörliga gubbar.

Efter det så kollade jag med en till gubbe men denna hade 11956 verts. Här hade vi egentligen inga stora förväntningar men den klarade av 20st innan telefonen började lagga väldigt mycket.

Till sist gjorde vi ett till test men en gubbe som rör sig med 101716 verts. Telefonen klarade av 2st innan den började lagga.

Vi gjorde sedan även ett test med hur många kuber som en samsung galaxy s3 klarar av innan den börjar att lagga bara för att se hur dagens moderna mobiler klarade sig. Den klarade 600st kuber innan den började lagga lite grann.

Mobil spel problem

Vi fick idag ett av våra problem fixade. Med hjälp av programmeraren Hampus kunde vi få ihop ett nytt sätt att få vårt mobila spel att fungera utan att det laggade sönder. Så nu blir det att försöka utöka principen för att på det sättet se om vi kan använda oss av mekaniken. Skulle det vissa sig att detta inte heller skulle fungerar så måste vi överväga att byta spel. Något som är i det senaste laget.

Mobil begränsningar

Testade en Iphone 4 för att se hur mycket den klarade av. Resultatet var inte precis det vi hade hoppas på. Vi visste att mobiler var dåliga men resultatet var skrämmande. Vi satte ut en figur på 102 tris som fick en fysik så att den kan studsa på marken. Sen testade vi med att göra likadant upp till 30 objekt. Där tog det stop för redan vid 30 objekt så laggade det lite vid slutet.

Vi sökte på problemet och det visade sig mobilen kan klarar mer än 3000 tris. Men då får de inte vara statiska/rörliga objekt. Samt att om man lägga samman flera inte rörliga objekt till ett stort objekt så är det lättare för mobilen att rendera spelet. Detta har med att mobilen bara klarar av runt 100 draw calls. Om det är 100 små objekt så klarar mobilen knappt av att rendera dem, men om du däremot har lagt samman de 100 objekten till ett stort objekt så blir det bara ett draw call för de 100 objekten och det klarar mobilen bättre än att ha 100 små objekt.

När det gäller textureringen av sina objekt, så ska man helst inte ha mer än en eller två texturer om det inte är något jättestort eller jätteviktigt på sitt spel.

Storleken bör inte överstiga 1024 pixlar på sin textur, och är det ingen superviktigt objekt så kan man köra texturerna på 256pixlar. Annars så kan man klarar sig på många ställen med 512 pixlar på sina texturer.

Något annat man måste tänka på är GUI i sitt spel. Knappsymbolerna som man har till mobilen tar mycket prestanda.

http://eat3d.com/udk_mobile

http://answers.unity3d.com/questions/339970/mobile-gui-functionality-performance-questions.html

Om draw calls:

http://forum.unity3d.com/threads/27416-What-are-Draw-calls

För att se hur många Draw calls du har i Unity så kan du kolla på bilden här:

http://imageshack.us/photo/my-images/11/screencapture18.jpg/

Optimering av draw calls:

http://answers.unity3d.com/questions/14578/whats-the-best-way-to-reduce-draw-calls.html

http://docs.unity3d.com/Documentation/Manual/DrawCallBatching.html

http://u3d.as/content/purdyjo/draw-call-minimizer/2FW

http://www.youtube.com/watch?v=3zpnqEXAR94