Operating system: Any
Graphics card: Any
(example: 2.79b release)
(example: 2.80, edbf15d3c044, blender2.8, 2018-11-28, as found on the splash screen)
Short description of error
Internal numerical indices for objects and materials should NOT be included by default in OBJ export.
Anyone affected by this problem will find their blood pressure spiking if they google how to try and alleviate the issue, because it inevitably leads to people posting the problem and then someone in what can only be imagined as a whiny, nasal voice talking down to the questioner, explaining how object and materials require indices to maintain their individuality (a problem which is not unique to Blender, but is mysteriously unique in its not being hidden behind transparency to the user). Such explanations are of no use to the person who suddenly finds themselves with 25 OBJ exports that can only be "easily" fixed to how they *obviously* should have been written in the first place by opening them all in vim and running regexes -- and that only to users at my level who would not be daunted by the task, merely annoyed.
Such "answers" as are given usually tell the user they need to rename it internally (manually, apparently, even if there are hundreds of materials in use, which is possible when indices are being added to each import as well).
The fact is simply that someone condescendingly explaining the internals of how Blender tracks objects and materials is in no way a solution to the problem of it literally *altering the materials of an object that is imported and re-exported without even any changes, something that should be obvious in its wrongness*. So please do not respond to this bug report in that way. We KNOW it needs indices internally to separate materials and objects. It doesn't need to show them, but even if it does it should NOT export them unless someone weirdly and inexplicably wants them and sets an option to do so. As it is, there's not even an option NOT to include them.
Exact steps for others to reproduce the error
(Back up any object you do this with unless you don't care about it)
1: Import an OBJ file, preserve vertex order.
2: Export that object to the same OBJ file (overwrite) with no changes having been made, preserve vertex order so it's not splitting anything even.
3: Delete the object
4: Import the same OBJ file you just exported, same settings
5: Export that object to the same OBJ file (overwrite) with no more changes having been made, as above.
6: Import to any other OBJ-using software that cares about groups and materials (so, like, not ZBrush basically). Maya, Max, Poser, Substance Painter, even Photoshop. Examine the materials' and groups' names. Note that they all have .001 appended to the end (or higher if you didn't start with a clean project).
This is an occurrence that, quite frankly, pisses everyone who uses it off except the few people who make excuses for the behaviour, when it is clearly wrong and please don't go trying to explain it isn't wrong, because it absofragginglutely is wrong.