I think besides not wanting to 'scare' people from modding for openmw it's also important to stick to the promise that you can use all of the current mods with it. To that end, I would still like to see openmw support more than just the nif format. In addition I think it would be better to let people still use the nif while having the choice to switch to the newer better format.
:nod:
I don't think it would be much (any?) effort to support the .ogre mesh format if/when we move the nif loader to a Ogre resource class (If we can?)
You wouldn't alter the nifs anyway. You'd use a custom resource loader in Ogre to load the nifs and convert them to Ogre's internal mesh and material format on the fly. I do recommend that you take that route and do not use manual rendering techniques to write out the nifs using handmade vertex and index buffers when rendering. Ogre's internal mesh format is optimized for rendering with the engine, iirc.
Surely the .nif format is going to be in a fairly good format for reading fast. I can't see the huge benefits as to moving to something else :shrug:
I really like the filename-based normal map idea! It should be as simple as that. I can spot a couple of potential challenges though - the obvious one is if the _n etc file name collides with another existing file
Yeah, that is an issue, but I can't see it being a major problem. If it is, it wouldn't be too hard to write a program that patches the problems.
the second more subtle one is the extensions. The original images are stored as dds, but I think we should allow normal maps in png, gif, jpg or whatever. It's a bit bothersome (and slow) to search for all possible extensions for each texture.
We are going to have to if we want to maintain compatibility. You may have noticed that if you set a texture to use foobar.tga, but in the filesystem, foobar.dds exists, it will use the dds. Landscape textures are all assigned as .tga, but they use the dds files.
I wonder if we could just subclass the filesystem resource class to do this for us. So rather than search through the textures to find the right one at runtime when we are loading the mesh, we try and do it at startup. It isn't that bad searching for duplicates as long as the algorithm is ok. (No need to look for files with duplicate names outside the directory that the base file is in).
If you wanted to do it at runtime, you could always add the list of available files into a Ordered List, which would make the search extremely fast.
:shrug: