So you have the latest viewer and still can't see mesh - what's the deal?
Well, it isn't necessarily automatic. Depending on your specific hardware, certain settings that need to be enabled for mesh, may be set off by default.
If this remains greyed out, then increase the level of Render Quality until Basic Shaders becomes enabled and can be checked.
Make sure you have a reasonable draw distance. If you have difficulty rendering mesh, lower it; if your draw distance is over 128, set it to 128, or less. (The optimal value for draw distance is entirely dependent on your own hardware; you will need to experiment to find what works best for you.)
There are also rare instances of glitches where mesh that you are wearing appears worn by another avatar (yes, it is bizarre!). In that case, try going to Preferences → Graphics → General, and enable Hardware Skinning.
In some cases, low-end graphics cards or very old graphics drivers may require you to turn hardware skinning off rather than on. Before doing this, please try updating your graphics drivers and review the other options on this page, as turning hardware skinning off may reduce your performance.
If you have Webroot SecureAnywhere Antivirus, see Webroot Issues. For other antivirus apps, see our Whitelisting Guide, and be sure to whitelist all parts of the viewer. This may need to be done from scratch each time you upgrade to a new version.
If mesh is simply slow to appear, but does appear eventually, that is not necessarily a problem with mesh itself; please work through this page: Slow Rezzing.
HTTP fetching may be overloading your router; please try the suggestions given here; if they do not help, revert the changes made then return to this page and continue.
If none of the above work - and make sure you try all of them first! - then in the top menu bar, open Advanced → Debug Settings, type in Mesh2MaxConcurrentRequests and gradually decrease (not increase) the value. (If Advanced is not visible on the top menu bar, press Ctrl-Alt-D.) If it does not help, try increasing the value from the default. Under no circumstances should you increase this beyond 64. Please see this comment on a related JIRA ticket for an explanation of the possible drawbacks of increasing this setting. Additionally, we recommend returning it to default once the mesh you're trying to see is visible.
In most cases, this is due to the mesh item being made low LOD so as to reduce its land impact. You should never try to resolve this by increasing LOD above the maximum allowed in Preferences → Graphics → General (4), as that would result in greatly increased memory uses usually leading to a significantly increased rate of crashing. Rather, the issue is inherent in how the mesh item was made. So you either live with it, or replace the item.
This happens more frequently for those using ATI/AMD graphics and drivers, but has been seen occasionally with Nvidia graphics and drivers as well. Visit Graphics Glitches for ways to address this.
If you can see most mesh fine but a specific mesh item fails to render and/or displays a pyramid, triangle, or ducky when it's first worn or rezzed, then read on. This is caused by mesh that fails to load, and in many cases is a result of having too high a draw distance in the presence of a lot of complex mesh.
In Preferences → Graphics → General, make sure Basic Shaders and Hardware Skinning are enabled.
If certain mesh objects are invisible on Firestorm 5.0.11 on OpenSim grids, set the debug setting FSEnforceStrictObjectCheck to False. To change that setting, go to top menu, Advanced (Ctrl-Alt-D to enable Advanced, if it isn't), Show Debug Settings. Type in FSEnforceStrictObjectCheck, set to False, then close the DebugSettings window.
On OpenSim grids, mesh should never be uploaded using “Analyze”. Analyze should only be used on grids that support Havok.
On Firestorm 5.0.11, mesh uploaded with Analyze is likely to render invisible when FSEnforceStrictObjectCheck is set to true.
An in-depth discussion about this problem can be found here.