Draft: Simplify meshes

Hi all, this is my new version on this subject! How to use it: You have to use the simplifiertool app to simplify your mods. The use is quite simple (for now): -i [input_archive] -o [output_directory] The input archive could be a folder or a BSA file, if the output directory does not exists it will create for you. This tool will simplify all the nif files which are in the input archive and it will generate the same tree folder in the output directory with the simplified meshes. Then you will have to add the output directory to your data source (in openmw.cfg).

The technical details: The simplifiertool is based on osg simplifier, it generates for each nif file encountered in the input archive 3 output files:

  • 1 non simplified version of the mesh (the original one)
  • 1 simplified version (with a fixed simplified ratio set to 0.2)
  • 1 metadata file containing the number of lods (here 2) there ranges (not used for now see 'current limits' below) I extended NIF format to introduce the osg pagedlod notion into NIF world. The new OWPagedLOD is a new NIF object which has references to the files corresponding to each LOD level, has ranges for each of them (as LOD). The metadata file is a NIF extended file with only one object in it a OWPagedLOD I also introduced NIF writer to be able to serialize osg objects into NIF format

The current limits:

  1. For now the simplifiertool generate only one level of LOD with the OSG simplifier with a fixed ratio to 0.2 this part will have to be extended to allow customization (number of levels, range validity for each level, ratio for each level).
  2. For now the engine use only the first level of LOD for non active cell, this also have to be extended to select the right LOD according to their ranges.
  3. For now OWPagedLOD does not have the radius of the mesh. If we add it we could speed up loading time for Object Paging as we will only have to load the metadata file to know the mesh radius.
Edited by jvoisin

Merge request reports

Loading