We’re trying to assess what video cards our project should support and what features we can use at those levels. (Since we’re producing a free learning game, we can’t just say, “Sorry, high end card required.”) We really appreciate how much work OTEE has put into making things work on a wide range of hardware so we don’t have to worry about it as much as otherwise.
But we thought that it still might help if we compiled a list of tiers of mainstream video cards and Intel integrated graphics and connected them to some of the features in Unity that require more modern video cards. This would help us remember what features would could count on and what we should consider to be optional eye candy.
So I started a Wiki page for it:
Please contribute as you are moved. I fully admit that I don’t know a lot about this. The capabilities and driver implementations of the Intel chipsets are especially confusing. While I’m well aware that everyone says integrated graphics aren’t suitable for high-end gaming, Intel claims they offer a certain level of functionality in software, so we’d like to get a handle on that.
The functionality provided by intel cards in terms of pixel vertex shaders is the exact same as similarly aged ATI / NVIDIA cards. It simply runs a lot slower.
All image effects and high-end bumpmapping techniques eg. parallax bumpmapping work on intel cards. Using image effects on intel cards is probably not a big deal, however parallax bumping with high poly meshes would run very slow.
Good Idea Steve. My only question is doesnt cpu count as well? I know video is for pretty graphics, but cpu power seems to relate to physics equations, and possibly other stuff, influencing Frame rate. I think your strategy is all good, but perhaps it may help to consider cpu as well…
But I dont know that much either, so lets see what the others think
AC
Good point, Targos. Of course CPU will impact overall performance and framerate, especially as a game gets more complex.
I’m focusing on GPU right now becuase we’re trying to figure out what users flat-out will or won’t be able to see at any frame rate.
CPU is the next piece of the puzzle (but probably also harder to characterize since there are so many variations – tons of objects but simple action, or fewer objects with more complex behavior, for example). But it would be worth thinking about for sure.
awesome you stared this! everyone wants it but it’s a big task. i for one would love a table like that! what works where. gotta love it.
a couple quick thoughts looking at the wiki…
maybe a stronger note that the current ao shader is a wip is a good idea. we all know what it is but still people may tend to not read up on it.
texture size is another topic that might be good. what cards can or can’t handle 2048 textures etc. i’m sure there’s lots of info available but for starters… yoggy, if you’re watching, that nature pack player i posted had a 2048 grass texture. you couldn’t see it on a 7500 - right? can you see the grass in action at lower texture sizes or is it something with the shaders? aras can probably help here too
This page is a good resource for figuring out which older cards support which features, assuming that you understand what the various values represent. MAX_TEXTURE_SIZE speaks for itself, of course, but bear in mind that there may be other limitations which prevent you from getting close to the limits. For example, you might not have enough VRAM to have a 2048x2048 texture and both the front and back display buffers and whatever else needs to go onto the card.
It looks like Render to Texture is a feature that Intel 900 series doesn’t support. Is that an inherent limitation in the chip, or something that Unity could potentially address?
It also has a database of a ton of cards, an what OpenGL extensions they support on which platforms.
It’s there I was able to ferret out that the Intel 915 chipset, for example, does not have frame buffer support, which is required for Render to Texture.
So the real challenge in terms of turning this into a plain English resource is to translate the specific extension names to a list of Unity features.
In case it matters, the example we’re working with is to have the Render Texture placed on a GUITexture object so that the render texture camera output can be displayed at a fixed pixel size on the screen.
(see Index of /demos for a player – the compass is the thing that uses the render texture)