I'm looking for information over several different topics that came from examining what it would take to replace or drop the Bethesda assets in Ashes of Apocalypse. Keep in mind that the future releases of AoA is for OpenMW only, it will not be backwards compatible with Morrowind.
Here is the list for anyone interested:
https://github.com/Mindwerks/aoa/blob/m ... ion.output
50% are DDS[1] (direct draw surface) textures, for example water and ripple.
1) With Scrawl's water shader, are these textures redundant? Would I need to replace these for OpenMW, or can these be safely dropped?
2) If I need to replace some of the dds files, what format would be best to do? PNG, Jpeg or some other format? In addition to this, how does OpenMW pick one file (with the same name, but different extension) over the other? Say you have a image in TGA, BMP and DDS formats, which one gets chosen over the other? Or is this not the case and it is explicitly asked for in a NIF/ESM/ESP?
Another 40% are NIF files. I assume these are all meshes, animations and effects.
3) Can there be chaining dependencies? As in one file is referenced by another and/or extended by another?
4) Is there a way to do a reverse lookup to see what particular file (be it dds, kf or nif) is used by another file?
5) Will the OpenMW-CS be to do these kinds of lookups in the future? Would it also be able to work with NIF/KF files?
6) How would one go about replacing/duplicating NIF/KF files? As I understand, there is QScope/NIFscope in python and old versions of Blender that can be used. Does anyone have any guides there or is willing to help out with replacing these? I've already found these pages. [2][3]
The other 10% are VSO and PSO files, I'm assuming are pre-compiled shaders?
7) Are these used in OpenMW? Is there any way to de-compile them back to asm? How could one go about replacing them?
[1] https://en.wikipedia.org/wiki/DirectDraw_Surface
[2] http://www.loverslab.com/topic/2585-ble ... -kf-files/
[3] http://wiki.tesnexus.com/index.php/Crea ... animations
[4] http://www.nexusmods.com/oblivion/mods/12248
General asset questions
- psi29a
- Posts: 5361
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: General asset questions
The water textures are still needed for when water shaders are off (and the OSG port doesn't currently have water shaders re-enabled yet).psi29a wrote:1) With Scrawl's water shader, are these textures redundant? Would I need to replace these for OpenMW, or can these be safely dropped?
I would say stick with DDS. They support DXT formats which reduce the VRAM footprint (at the loss of a little quality), as well as raw formats. PNG and JPG would require an extra decode step which would increase load times and would be uncompressed in VRAM, though would decrease disk size.2) If I need to replace some of the dds files, what format would be best to do? PNG, Jpeg or some other format?
It seems OpenMW will prefer the DDS version if it exists, otherwise it'll use whatever extension was specified in the nif.In addition to this, how does OpenMW pick one file (with the same name, but different extension) over the other? Say you have a image in TGA, BMP and DDS formats, which one gets chosen over the other?
This is how models work, where nifs reference texture files. Other than that, I think it's just the esx/omwgame/addon files that reference other files.3) Can there be chaining dependencies? As in one file is referenced by another and/or extended by another?
With the switch to OSG, it may be easier to support other model formats. Scrawl could perhaps comment on that.6) How would one go about replacing/duplicating NIF/KF files? As I understand, there is QScope/NIFscope in python and old versions of Blender that can be used. Does anyone have any guides there or is willing to help out with replacing these?
Yes they're precompiled shaders, no OpenMW doesn't use them.The other 10% are VSO and PSO files, I'm assuming are pre-compiled shaders?
7) Are these used in OpenMW? Is there any way to de-compile them back to asm? How could one go about replacing them?
- psi29a
- Posts: 5361
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: General asset questions
Really? Does OSG load the DDS directly into the GPU like DirectX does? Are there other formats better than DDS or something that OSG can use in the place?Chris wrote:I would say stick with DDS. They support DXT formats which reduce the VRAM footprint (at the loss of a little quality), as well as raw formats. PNG and JPG would require an extra decode step which would increase load times and would be uncompressed in VRAM, though would decrease disk size.2) If I need to replace some of the dds files, what format would be best to do? PNG, Jpeg or some other format?
It seems OpenMW will prefer the DDS version if it exists, otherwise it'll use whatever extension was specified in the nif.In addition to this, how does OpenMW pick one file (with the same name, but different extension) over the other? Say you have a image in TGA, BMP and DDS formats, which one gets chosen over the other?
Can I replace all the huge BMP/TGA files with DDS (or equivalent)? Is this the "right" thing to do? What should I do with all these files? Same with WAVs, can't I replace them with MP3s?
Re: General asset questions
More or less, yes. It's important to note that DDS is a container format, not unlike wav, so the image data can be in a number of formats. RGBA8 and DXT1/3/5 are the most common, since they can be loaded as-is on most systems.psi29a wrote:Really? Does OSG load the DDS directly into the GPU like DirectX does?
The one caveat seems to be that OSG vertically flips raw formats, so OpenMW needs to flip them back to work properly, which adds a bit of unnecessary work.
Some of them. The reason they're large is because they're uncompressed, and while DDS allows you to use DXT to compress them by about a factor of 4 or so, some textures will look notably worse with DXT compression (particularly, normal maps don't turn out well with DXT; it's better to leave than as uncompressed and halve the width and height if you need that 4x size reduction).Can I replace all the huge BMP/TGA files with DDS (or equivalent)? Is this the "right" thing to do? What should I do with all these files? Same with WAVs, can't I replace them with MP3s?
Similarly with wave files, lossy compression can notably reduce the quality of some sounds. And like JPG, requires some extra decode work to load in uncompressed. The exception would be music, since they'd be very large uncompressed and get decompressed over time instead of all at once (though even there, it would be better to use Vorbis or Opus since they compress better than MP3, and don't have patent issues).
- psi29a
- Posts: 5361
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: General asset questions
But for WAVs, couldn't I use FLAC or similiar lossless compression? Same with Images, a lossless format? The reason I'm asking is that I want to make AoA as small as possible, trying to replace also all the large uncompressed files.
Do we have a list of all supported formats for OSG (OpenMW)?
Do we have a list of all supported formats for OSG (OpenMW)?
Re: General asset questions
Not that I am aware of.4) Is there a way to do a reverse lookup to see what particular file (be it dds, kf or nif) is used by another file?
A clear yes to that. But probably post-1.0.5) Will the OpenMW-CS be to do these kinds of lookups in the future? Would it also be able to work with NIF/KF files?
- psi29a
- Posts: 5361
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: General asset questions
Yes to both questions? What kind of work with NIF/KF files? Would people still need Blender 2.49 (all associated tools) to do animation work?Zini wrote:A clear yes to that. But probably post-1.0.5) Will the OpenMW-CS be to do these kinds of lookups in the future? Would it also be able to work with NIF/KF files?
Re: General asset questions
You can, if you don't mind those files taking a little longer to load.psi29a wrote:But for WAVs, couldn't I use FLAC or similiar lossless compression? Same with Images, a lossless format? The reason I'm asking is that I want to make AoA as small as possible, trying to replace also all the large uncompressed files.
- psi29a
- Posts: 5361
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: General asset questions
I'm noticing that OpenMW will try to load a DDS file that is missing, and totally ignore the file with the same name but with a different extension, like BMP and TGA. Was this 'feature' ever implemented?
Morrowind had no problem with this and many mods depended on it.
Morrowind had no problem with this and many mods depended on it.
- psi29a
- Posts: 5361
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: General asset questions
Digging further:
@zini and @scrawl: was it the intention that we only look for those exact files? In Morrowind, if the file wasn't found, it looks for others with the same name but with a different extension. Can we fix this?
Another thing, it seems that OpenMW or OSG doesn't support SVG files. I tried replacing the attribute_strength.dds with strength.svg (a real SVG file, perfect for scaling up/down with the GUI) and it gives me this:
It seems that look for these things explicitly, but we ignore all other files like attribute_strength.tga or attribute_strength.bmp.bcurtis@Wintermute:~/workspace/OpenMW/openmw$ grep -ir 'attribute_st'
components/esm/attr.cpp: "icons\\k\\attribute_strength.dds",
files/mygui/openmw_chargen_review.layout: <UserString key="ImageTexture_AttributeImage" value="icons\k\attribute_strength.dds"/>
files/mygui/openmw_stats_window.layout: <UserString key="ImageTexture_AttributeImage" value="icons\k\attribute_strength.dds"/>
files/mygui/openmw_levelup_dialog.layout: <UserString key="ImageTexture_AttributeImage" value="icons\k\attribute_strength.dds"/>
@zini and @scrawl: was it the intention that we only look for those exact files? In Morrowind, if the file wasn't found, it looks for others with the same name but with a different extension. Can we fix this?
Another thing, it seems that OpenMW or OSG doesn't support SVG files. I tried replacing the attribute_strength.dds with strength.svg (a real SVG file, perfect for scaling up/down with the GUI) and it gives me this:
I would think that SVG files are perfect as icons here.Error loading icons\k\strength.svg: