What's the lower estimate for the maximum number of vertices I can have in a 3D environment?

I’m designing 3D models for a game I’m preparing for months in advance, and while normally the vertex count would be low enough that I wouldn’t have to worry about this problem, I can get a very big boost in aesthetic quality with a higher vertex count in the 3D models I have that I am considering. So, I am wondering: how many vertices can I have in a 3D environment, considering characters and the landscape, before I should worry about a mobile device’s latency, at least for a lower estimate?
Initially I anticipated around a million vertices, but I found one source on unity that claims some mobile devices can only handle around 100,000 vertices which has me worried. Is there any information or are there any experiences people can reference that would shed light on this issue?

The number of vertices a device can handle is determined by the graphics hardware, so a PC with a powerful GPU will always be able to handle more than a mobile GPU. You should decide on a “worst device” your app can run on, then test different vertex counts on that device. Vertex count isn’t a great measurement anymore, so you’ll likely have a hard time finding that number online. Most complex 3D models that slow modern graphics cards can be simplified to low-poly versions without losing much detail if you use normal maps and other shader tricks.

GPUs are mostly limited by the number of realtime lights, post process effects, complex shader instructions, number of objects, and Pixel fill rate.

Well I’m here posting in the forums asking for an equivalent “worst device.” There are of course other factors besides vertices, but assuming calculating the transformation and rendering of simply meshes defined by vertex locations, I’m looking for some lower limit to decide the style of art in the models which ultimately affects some of the mechanics I decide on.

The question doesn’t really have a useful answer outside of more context. Because context such as shading can change the answer by several hundred percent. So any number someone throws out, is basically worthless, you would be a fool to based anything on it.

The correct answer is test it yourself in the context of your own game. That is the only approach that works.

1 Like

Are there some devices that support tessellation? If so those devices would probably support many millions of vertices :stuck_out_tongue:
Mobile devices are notoriously weak, that’s just how things are.
Especially when it comes to fillrate, so overdraw will be probably more of a problem (that means if you have any particle systems, glass windows, water, UI, anything that is transparent in some way - that will crush your FPS way faster than
vertices)

Tell us more details about how your scenes are made and what they contain so we can get a rough idea.

@snacktime is completely right tho, today there are such large differences when you compare the “best” phone and an older one, you have to get more specific.

As for worst case: Just buy a used 50€ android phone and run some test on there.

If we’re talking worst device with untextured, unlit models, and a target of 30fps, then yes 100,000 vertices is pretty accurate. That might even be a high on some really low end android devices from a few years ago. Though in that case even 50 vertices might be too much as they don’t really support 3d much at all and won’t every run at 30 fps with a simple spinning cube.

That’s kind of the problem though, you have to choose a device you’re okay with considering as your low end and target that. The reasonable range in device capability is from hundreds to hundreds of millions of vertices in view.

Even on the high end, 100,000 vertices is the recommended max for mobile VR too with first generation GearVR devices. We had to go much lower for first gen Daydream stuff to, like 60k max.

However, that’s not a max for the environment. That’s a max in view at one time. LODs and occlusion techniques can help you increase the total vertex count of the environment by a large amount. For example the GearVR game Dead Secret has an average of 50k vertices in view at any time, but the entire “environment” is many millions of polygons.

And note the vertex count you might see in your 3d modeling package is unlikely to match the count in Unity. It can be between a 10 ~ 300% increase in Unity due to the differences in how modelling programs and real time rendering systems work.

1 Like

Thank you for your reply. I have seen 3D games on mobile devices which is what got me interested, but it’s not like companies publicly release all their 3D assets for people to see how detailed they are. Game models have a particularly low vertex count due to limitations such as these, but the point about limiting the number of vertices rendered in view is useful. It seems like I will likely not be able to make models as detailed as I originally anticipated, but that’s a good thing to know.

The genre and target audience has a huge impact here. There are certain genre’s like multiplayer third/first person combat oriented games where the best games are all targeting newer devices. So to compete, you need to do the same pretty much. Which can be a good thing in your case.

I would even go so far as to say if you were trying to push a lot of vertices on devices that don’t support it well, you have a fundamental disconnect somewhere. What you are trying to do doesn’t match up well with your audience. People with older devices generally play very casual games. People who are into newer 3d games usually have newer devices. So if you are making a very casual game for instance, chances are even if you could do more vertices, nobody cares, because it’s not the type of game where that really matters.

I think you would do well to pay more attention to who your audience is and what devices those people are using. I think you will find that for games where higher poly stuff would even matter, you can probably target fairly new devices where vertice counts are not a major issue.

I’m not exactly sure if your implications are correct, so I don’t think the number of people who buy new games just for the sake of buying new games is considerable, I’m more focused on other considerations. People generally play lower requirement games because that’s the most they can afford, or because that’s the most their older device can render, and they would likely have an older device from not being able to afford a newer one. Those groups are mainly: older people, and poorer people. There are more people who fall under the poorer and older segment of customers, and the sheer volume of customers in that segment is much greater than the volume of richer customers who only purchase cutting edge devices with cutting edge graphics. Of course, there is also a spectrum in between this and the richest people who can buy whatever game they want any time they want, and you can choose your customer segments between these groups depending on how you monetize your game. A game you make for free appeals to poorer people, which means you should have lower graphics requirements for it and probably monetize through adds and sponsorships rather than a fixed fee.

I’m not really limited in developing the game, but rather it is considerable for me to rethink a strategy that will find a middle ground to appeal to a wider range of customers in varying income brackets based on the intricacy of mechanics I can develop that results from the detail in the meshes as determined by the capabilities of common devices.