File information

Last updated

Original upload

Created by

Remiros and Greatness7

Uploaded by

Flash3113

Virus scan

Safe to use

103 comments

  1. Flash3113
    Flash3113
    • supporter
    • 1,043 posts
    • 175 kudos
    Locked
    Sticky
    Another heads up as there has been a lot of confusion regarding OpenMW. OpenMW by itself doesn't have anything to do with this mod and doesn't replace its functionality in any way. This mod only replaces meshes and works absolutely fine with it. In theory the improvement should actually be even more noticable with OpenMW.
  2. Pherim
    Pherim
    • supporter
    • 1,858 posts
    • 97 kudos
    Locked
    Sticky
    Amazing mod, thanks a lot. I am not active in the modding community and I am neither playing nor modding Morrowind or any other Bethesda game at the moment, but I just had to comment this. It demonstrates perfectly why Morrowind is very poorly optimized for modern systems and why OpenMW struggles to get good performance. Many people still believe that the amount of polygons is important for performance, but that hasn't been true for quite some time now. The Morrowind engine is actually pretty good when it comes to handling high-polygon objects and especially collision shapes, which unfortunately cannot be said for OpenMW (yet). However, the technical definition of what counts as an "object" is different from what the game treats as an object. A weapon, for example, is a single, indivisible object in terms of how it can be used in the game and in the construction set, but from the view of the engine, every single NiTriShape is a different object, even if more than one of them use the same texture and material. At least that's the case for OpenMW, as we cannot determine the amount of objects in view in the vanilla engine, but it's probably safe to assume that it's basically the same. Modern engines are able to batch different objects with the same material to improve performance, but I doubt that this is possible in the vanilla Morrowind engine.

    Anyway, every one of these objects cause a draw call, which is basically the CPU telling the GPU what to draw, and that's probably one of the largest bottlenecks in terms of performance. Once the GPU takes over, however, it doesn't really matter how many polygons a single object has, and one objects with many polygons is much more performance-friendly than many simple objects. Which is probably the main reason why mods that add LOD objects to the distant landscape in Oblivion are guaranteed to kill the frame rate. Fortunately, MGE XE distant land seems to be much more efficient.

    Many objects in vanilla Morrowind are badly optimized in terms of the amount of objects they consist of. Not only do many objects use quite a number of different textures, but often they are split into many NiTriShapes which use the same texture, trees for example. flora_bc_tree_01.nif consists of no less than 63 different objects and thus causes just as many draw calls, at least in OpenMW. It might be useful to conduct some testing of how the vanilla engine performs with "optimized" meshes in comparison to the vanilla ones. Anyway, I believe there is much potential for reducing draw calls in Morrowind, but many meshes and even more textures would have to be remade from scratch. As it is now, things like clothes, armors, weapons and so on often consist of several different NiTriShapes and use multiple textures. In modern games, including every Bethesda-Game since Oblivion, meshes use as few different textures as possible, and usually only one per armor, weapon, etc. It is much better for a mesh to use one large texture than several small ones, even if this texture is considerably bigger than the smaller ones combined. For some objects it may be possible to create a texture atlas out of the different textures it uses, but in many cases this would probably not be the case because of their uv maps. Also, texture replacers would no longer work. So the most logical thing to do would be to create completely new meshes and textures. Good examples are PeterBitt's Creatures or many of your own mods (of course, I am aware that you know about all of this, but maybe someone else is interested into these explanations). On the other hand, many older mods are doing just the opposite by mashing vanilla meshes together for a new object, thus further increasing the amount of Draw Calls. Unfortunately, a truly modern Morrowind in terms of graphics, from an artistic point of view as well as a technical one, will most likely remain a dream. But this mod is a good first step in the right direction. ;)
    1. CreeperLava
      CreeperLava
      • supporter
      • 3,089 posts
      • 107 kudos
      Thank you for the technical explanation, much appreciated !

      Edit : Also, thank you to Flash for the continued updates :).
  3. JohnMFWayneee
    JohnMFWayneee
    • member
    • 87 posts
    • 0 kudos
    I'm getting a persistent crash in the latest version of OpenMW (0.44.0) in the "Dagoth Ur, Facility Cavern". Took me awhile but I was finally able to narrow it down to 'furn_mist512.nif' as the source of the crash. Any ideas as to why this might be? The only other mods I use that modify vanilla meshes are the ones that are listed under the 'Fixes and Patches' section in the STEP guide.
    1. akortunov
      akortunov
      • member
      • 36 posts
      • 3 kudos
      From what I can tell, OpenSceneGraph does not like the NiLODNode as a root node for some reason. The same thing in the 'furn_mist256.nif' mesh.
    2. JohnMFWayneee
      JohnMFWayneee
      • member
      • 87 posts
      • 0 kudos
      If that is the case, then would the best course of action for an OpenMW user be to find each of these models that use NiLODNode as a parent (e.g. active_bubbles00.nif) and remove them?

      Edit: I went through the mod and identified every mesh that uses NiLODNode as a root node. I haven't really had any problems with the static objects that I listed here though... only things like 'furn_mist256.nif', 'furn_mist512.nif', and 'active_bubbles00.nif' (I was getting another persistent crash just outside of "Nimawia Grotto" linked to 'active_bubbles00.nif').

      meshes/f
      Spoiler:  
      Show

      meshes/m
      Spoiler:  
      Show
    3. akortunov
      akortunov
      • member
      • 36 posts
      • 3 kudos
      You can try to wrap NiLODNode's in such meshes (which have particles) by a common NiNode.
  4. Draulius
    Draulius
    • member
    • 6 posts
    • 0 kudos
    When I install your meshes, it causes a CTD crash when approaching the entrance to Andrano Ancestral Tomb near Pelagiad. I have tested this on a fresh, clean install so it is not a conflict issue. I am using OpenMW.

    EDIT: Had to delete the models that use NiLODNode as explained in the post below.
    1. Flash3113
      Flash3113
      • supporter
      • 1,043 posts
      • 175 kudos
      This is a problem with OpenMW at the moment and doesn't happen with vanilla, I might make a workaround, though.
  5. Pherim
    Pherim
    • supporter
    • 1,858 posts
    • 97 kudos
    Where are these LODs? I can't find them.

    Edit: Ok, I found one mesh with LODs, ex_bm_hbane01.nif. What else? Also, how does MGE XE Distand land work with this kind of LODs? I only knew about the _dist suffix for meshes that are intended for distant land instead of the actual mesh without the suffix.
    1. Flash3113
      Flash3113
      • supporter
      • 1,043 posts
      • 175 kudos
      They are part of the mesh under the NiLODNode. Only a couple meshes that benefitted from them have it.
    2. Pherim
      Pherim
      • supporter
      • 1,858 posts
      • 97 kudos
      Ok, the lights and 6th house assets have them as well. I didn't think about interiors, but it makes a lot of sense, as there is no occlusion culling or anything like it.
  6. MiraakThuri
    MiraakThuri
    • member
    • 85 posts
    • 0 kudos
    I have a little question
    does the removal of some NiTriShapes on a model decrease their quality/details ?
    1. Flash3113
      Flash3113
      • supporter
      • 1,043 posts
      • 175 kudos
      No, not at all. All meshes apart from the trees look absolutely the same.
    2. MiraakThuri
      MiraakThuri
      • member
      • 85 posts
      • 0 kudos
      Nice im going to install that^^
      also wanted to tell you (i made some research when looking for the rock mod), in this mod the rock "Terrain_rock_AC_10" is incorrectly a copy past of "Terrain_rock_AI_10"
    3. Flash3113
      Flash3113
      • supporter
      • 1,043 posts
      • 175 kudos
      Yes, that's one of the things MOP fixes. Correct UV Rocks has to be installed before MOP.
  7. Andrewson
    Andrewson
    • member
    • 292 posts
    • 1 kudos
    GOTY version owner here: I was SHOCKED how much difference your mod makes in Solstheim, you weren't kidding. From huge, random frame-drops to perfect smoothiness. Absolutely essential mod for everyone
  8. Pherim
    Pherim
    • supporter
    • 1,858 posts
    • 97 kudos
    Hey, it seems like you forgot to change flora_bc_lilipad01.nif to alpha testing. It is included in the mod, but still uses alpha blending. Incidentally, this causes issues with mods that replace the scum meshes with transparent ones like Lougian's Scum Replacer, because of the two alpha channels overlapping. With alpha testing, this doesn't happen any more.
  9. Ekonk
    Ekonk
    • member
    • 26 posts
    • 0 kudos
    I understand (and experience, holy moly) the purpose of the mesh patch, but what exactly do the alpha files fix or change?
    1. Flash3113
      Flash3113
      • supporter
      • 1,043 posts
      • 175 kudos
      The original textures were all made with alpha blending in mind and have very smooth alpha maps. This causes some ugly borders to appear with alpha testing. The included textures fix that.
    2. PoodleSandwich2
      PoodleSandwich2
      • supporter
      • 150 posts
      • 11 kudos
      How exactly do you go about fixing it? Do you have to manually re-draw the alpha channels? I'd like to do the same for some of the textures not included here and just wondering what the process is/how big a PITA it is? thanks
    3. Flash3113
      Flash3113
      • supporter
      • 1,043 posts
      • 175 kudos
      I manually remade the alpha channels for the textures included. The way I did it is a bit labor-intensive. There's probably a slightly more elegant process.
  10. GrunTella
    GrunTella
    • member
    • 18 posts
    • 1 kudos
    I love your mod, it certainly improves the FPS. The explanation from Pherim on why it works was excellent and I am glad to see it has been made a sticky.

    I hope you don't mind answering a question about the custom normals you use and, as an example, the flora_bc_fern_01 (Slough Fern) model. First of all, my understanding of meshes is limited. However, using NifSkope I see the normals for both sides of the fern branches are all pointing away from the center of the model. This means at the base of the branches the normals are close to the perpendicular and mainly pointing down, but at the tips of the branches the normals are pointing out along the branch. I am not sure if this is the desired effect, something overlooked, or something to do with optimizing performance. It generally looks OK, but walking past the fern at night with a lantern does look a bit strange. I believe I have seen something similar with another plant model, but I can't remember which one.
    1. Flash3113
      Flash3113
      • supporter
      • 1,043 posts
      • 175 kudos
      It is the desired effect, technically speaking, but maybe not right in this case. I used the process for trees, but that might not be the best fit for that model. Thanks for picking that up, I'll revert the changes in the next hotfix.
    2. GrunTella
      GrunTella
      • member
      • 18 posts
      • 1 kudos
      Thank you for the reply. In case this is of use to you, I have looked at your models with custom normals and below I list my ideas of things that could be improved. This list is limited to plants as I am working on a mod to update Graphic Herbalism. If you wish I could send you mesh files edited by NifSkope and you can then use what you like. (I had started doing these changes before I saw your reply.)

      For anyone else viewing this discussion, I have looked into this subject and eventually found the webpage https://www.beamng.com/threads/tutorial-custom-normals-for-vegetation-blender.26427/ which describes the idea of using "spherical normals" for plants. Essentially, when 2D sheets are used to simulate a 3D object (such as leaves on a tree) these sheets should not be lit as if they are real sheets. If these sheets are arranged to mimic a "spherical" set of leaves, as in a very bushy tree, then using lighting that simulates a spherical object is very effective at making the 2D sheets looking like the desired 3D object (see the above website). In my example of the slough fern the leaves are well approximated by 2d sheets and so this trick of making them appear to be a 3D object is incorrect.

      ==================== Ideas for Flash3113 ======================

      roobrush: leaves not spherical, maybe cylindrical << UNSURE
      flora_marshmerrow:The triangular stems look terrible no matter what the normals are!!!
      bittergreen: leaves should have custom normals centered on the branch they are connected to
      flora_plant_05/6:Tri Flora_plant_05/6 1, side leaves probably should have cylindrical normals, but not sure
      saltrice:smooth normals (try scale with normals, smooth, then unscale)
      wickwheat:change grain normals closer to cylindrical (use scale and unscale)
      Should use cylindrical normals: heather, lichens
      leaves should be cylindrical: flora_bm_belladonna, flora_bm_wolfbane,flora_fire_fern
      flowers and leaves should be cylindrical: flora_gold_kanet
      flowers should be cylindrical: flora_sedge, flora_plant_02/3
      leaves better as face normals:flora_willow_flower, flora_hackle-lo, chokeweed, flora_bc_fern, flora_corkbulb
      Grains should use cylindrical normals: flora_plant_04
    3. Flash3113
      Flash3113
      • supporter
      • 1,043 posts
      • 175 kudos
      Thanks for the feedback, but the problem is that you can't export custom normals with the current blender nifscripts. The only way to get custom normals currently, is to use G7's scripts.
    4. GrunTella
      GrunTella
      • member
      • 18 posts
      • 1 kudos
      I don't use Blender, but using NifSkope I can do various manipulations to the normals. For instance I can scale the normals' component in a particular direction to effectively change from spherical to cylindrical normals. What I am actually doing is multiplying the Z component of the normal by 1/4, NifSkope then rescales the normals to magnitude 1, and I output the result as a new file. NifSkope can also change the normals back to ordinary vertex normals which can then be scaled by the above method to approximate cylindrical normals. Making spherical normals is a pain. I could use NifSkope to output vertices and normals to a text file, then write and compiler some script (I like using Scilab) to convert the normals, then use NifSkope to add them into the nif file. Unfortunately it appears these results cannot be performed in the current version of Blender, but it can be performed using Blender and post-processing with NifSkope. Are you interested in trying this approach?
    5. Pherim
      Pherim
      • supporter
      • 1,858 posts
      • 97 kudos
      I recently found out that it is also possible by importing an .obj file with custom normals into NifSkope.
  11. Alexandros28
    Alexandros28
    • member
    • 1 posts
    • 0 kudos
    I'm not sure if I'm installing this mod correctly on OpenMW. I can't really tell any difference in performance. Do I simply add the mesh files to my "C:\Program Files\OpenMW 0.44.0\Data Files\Morrowind Optimization Patch" directory? Or do I also have to add the {data="C:\Program Files\OpenMW 0.44.0\Data Files\Morrowind Optimization Patch"} in my openmw.cfg file?

    Following the STEP guide and I want to make sure I do the first ones right before I move on to the next layers.
  12. mmclendon
    mmclendon
    • member
    • 278 posts
    • 14 kudos
    Thanks for the mod!

    I'm not sure if this is the cause, or if it's something else on my end, but I'm able to walk right through the stone portion of the wall that my cursor is on in the lower level of ald sotha:

    https://ibb.co/cSMAne
    1. Flash3113
      Flash3113
      • supporter
      • 1,043 posts
      • 175 kudos
      I didn't touch the collision of that mesh at all, so this is probably a "problem" with the vanilla mesh, too, but I assume it's to make traversing the area a bit easier.
Top