Jump to content
  • Advertisement
Sign in to follow this  
OneEarth2

Android Polygon and transparency texture performance question?

This topic is 1158 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm making some trees in Speedtree for a low-spec Android game. This is my most recent version of a birch tree. As you can see, it's extremely low-poly. Admittedly the colors and texture art is still a bit... off. It'll take a couple more revisions. I'm working on making it look more natural without bloating the resources too much. UGdstTk.jpg

 

 

However, and this really brings me to the point, I recently heard that low-end Android hardware will actually have trouble running transparency textures, and that in certain cases sparse polygons can be a better choice. There are about 7 transparency textures in .tga format, ranging from 128x128 to 256x512 on this tree. Does anyone with experience in Android development know if that's considered excessive for hardware like an Adreno 305 or Mali 400MP2?

Share this post


Link to post
Share on other sites
Advertisement

The question is vague and open-ended.

-Are you going to be rendering just this one tree type ? 
-Excessive in what sense? ...texture count ? ...texture size ?

Where did you hear that low-end Android HW has trouble with transparency texture ?..that may also need clarification.. I think what you may be referring to is the fact that for compressed texture supported by low-end device ( usually ETC1 ), there is not support for a 'alpha' channel. That not an issue as there are several work-around to cope with that issue. 
For uncompressed texture its not an issue because they support 4 channel textures. 

 

Share this post


Link to post
Share on other sites

low-spec Android game ... low-end Android hardware ... it's extremely low-poly.

 

It is important to ask what actual hardware you are targeting and what type of game you are building.  You mention "Low spec" which can mean many different things.

 

As for the game, what will the trees be used for? Is this set in the Forests of Endor, or the Mojave desert?

 

That is probably too complex if you plan on having many trees. 

 

On a low-spec machine with any kind of tree density, that type of tree should be swapped out to either 2 quads or 1 quad.  Maybe 3 if you want it to look good from more angles and the trees are sparse.  Some game engines will automatically billboard trees for you.

 

22 polygons per tree on a low-spec machine is too many, unless you are only planning to render a single important tree.

 

 

 


Adreno 305 or Mali 400MP2

There is more to a device than its graphics card.

 

Some devices with those graphics cards have quad-core 1+GHz CPUs.  

 

There are many devices out there with a single, sub-GHz CPU.

 

Currently 63% of all devices are on OpenGL ES 2.0 and low-quality graphics chips.

 

 

Figure out your target hardware and your engine capabilities.  How many draw calls can you make? How many instanced tree calls can you make before you start to hit different limits?  Are they limits from draw calls, or bus transfers, or fill rate, or something else?

 

Whatever limits you discover on your unique engine and hardware and software combinations, you'll need to account for those when building your art.

Share this post


Link to post
Share on other sites
There are 4 tree models, and I expect there'll be an average of ~5 trees on screen at once.

I was wondering about both texture count and texure size. I usually go with 1024x1024 and 2048x2048 textures in my PC mods (at least for large-ish objects like tables or trees), but I'm new to development and particularly new to Android hardware, and I couldn't even say whether the average textures are 512x512 or 64x64 now. Additionally, I also don't know whether having multiple unique textures is going to affect performance more than reusing identical textures wherever possible.

My only source for the notion that transparency textures may be an unexpectedly large performance hog is another development forum. I saw an old thread where people were comparing the performance of transparent textures to more complex meshes, and the framerates suffered quite a lot as more transparent textures were introduced (well, from triple-digits down to single-digits). Granted, this thread was from around 2010, so I've no idea if any of it still applies, if it ever did.

Share this post


Link to post
Share on other sites


On a low-spec machine with any kind of tree density, that type of tree should be swapped out to either 2 quads or 1 quad.  Maybe 3 if you want it to look good from more angles and the trees are sparse.  Some game engines will automatically billboard trees for you.
 
22 polygons per tree on a low-spec machine is too many, unless you are only planning to render a single important tree.
 

 

Eh... I've heard others say that they put in 300+ polygons in an Android tree. Any idea where such a dramatic difference comes from?

Share this post


Link to post
Share on other sites


Eh... I've heard others say that they put in 300+ polygons in an Android tree. Any idea where such a dramatic difference comes from?

 

How many trees and other objects do they have on screen?

 

What hardware are the targeting?

 

 

A minimum spec of Android 5.0, quad-CPU, OpenGL ES 3.0 devices, is going to be different than a game with a minimum spec of Android 2.3.3, OpenGL ES 2.0, single core devices.  When someone writes "Low spec Android" often they mean to include Gingerbread and ICS devices.

 

Even on modern PC games, a 300 polygon tree is overkill for anything that is part of the background environment.  Maybe that would make sense if the player is interacting closely with the tree, but as you pull away from the trees most engines will quickly replace them with instances of billboard images.

Share this post


Link to post
Share on other sites
Do you have actual performance issues or are you just doing the most popular programmer's mistake by trying to do premature optimizations?

That is maybe not the answer you were looking for but maybe it is a good idea to have someone saying straight into your face that you should concentrate on your project and not distract yourself with pointless stuff (You don't even know what you are trying to accomplish exactly as @frob pointed out)! Edited by IceCave

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!