Category:VWD-OB
|
LOD/VWD Overview
LOD Replacers are packages of the .lod data files (LODs) necessary to view landscapes that are not in the foreground; that are distant in the middle- or background. These are distinct from the static objects you see in the distance, also known as Visible While Distant (VWD) objects. Not all replacer packages contain all the files related to LOD/VWDs, such as meshes, textures, normal maps, and VWD static objects. Many include some of the optimized _far.nif (low polygon mesh) files lacking in the vanilla game to make objects visible from a distance, but not necessarily the same ones. (A _far.nif file is required to build a .lod file.) They are intended to overwrite the vanilla versions of the files they do contain, and generally work with the remaining vanilla versions of the related files, to varying degrees of success.
Note the VWD files do not "add" static objects to the game. Their purpose is to make it possible to see such already existing objects in the distant view. Their absence is why objects can suddenly "pop into view" instead of gradually get larger as you approach.
VWDs need less detail and fewer polygons than items viewed up close to render acceptable images more quickly. High resolution is desirable in close objects, but detrimental to system performance for distant ones where the detail can't be seen. Therefore they are generated as separate files from the foreground texture files. While it is possible to simply take the .nif file from a texture and copy and rename it as <name>_far.nif, it will adversely affect performance by rendering details that are too small to be perceived. Consequently, _far.nif files should be optimized to have the fewest polygons and texture details necessary to achieve the desired distance effect. Those interested in this issue might want to look at Nif Optimization and Visible When Distant tutorial on the TESCS wiki.
LODs are built on the basis of 'quadrants' (quads) of four adjoining blocks of 32x32 cells. As mods are added to the game that affect the view in the distance, these quads realign themselves. They are highly dependent upon 'load order' (LO) and the heightmaps used for each cell. As a result, it becomes necessary to rebuild the distant LOD files whenever mods (such as texture replacers) affecting those quads are added, removed, or relocated in the LO. In practice, most people find it easier to simply rebuild the LOD quads whenever they make changes to their LO. The tools that perform this rebuilding are known as 'LOD Generators'.
LOD files are stored in:
- \Data\Textures\DistantLOD\ (_fn.dds: DistantLOD normal maps)
- \Data\Textures\LandscapeLOD\Generated\ (.lod: DistantLOD texture files)
- Oblivion - Meshes.bsa\distantlod\ (.lod: DistantLOD texture files; and .cmp: compressed collection of .lod files.)
- Related files such as _far.nifs are in the more general folder locations (i.e. \Data\Meshes, etc.)
The problem with LOD/VWD files
The following is an analysis (so far on a theoretical basis) about why LOD meshes absolutely kill performance in Oblivion, but have much less impact in Skyrim for example; by Pherim in the Bethesda Oblivion Mods forum. (Used with permission.)
"First, the engine itself, of course. As you may know, Oblivion can only really use one single CPU core, with minor tasks like loading data being able to be somewhat multithreaded by enabling certain ini settings. Most of the "threaded" settings in the ini don't seem to do anything, really, but Oblivion can definitely make use of a second core, although not much. As LOD meshes increase the CPU load (more on that later), this is one factor that should definitely have an impact. Skyrim is better optimized for multiple cores - my highly modded Oblivion was pushing one CPU core to 100% all the time (in exterior cells at least), while the GPU was not nearly working to its capacity, and as a result the FPS remained pretty low most of the time. With Skyrim, no core is ever at 100%, which allows the GPU to work at maximum capacity, as it is not held back by the CPU. Additionally, they may somehow have improved the handling of LOD meshes in the engine itself.
"Second, I am not sure the polygon count of the individual LOD meshes is really that important. That performance is directly proportional to the total amount of rendered polygons is a myth from the early days of 3D graphics that is still widely believed, but not necessarily true. Instead, what is much more important is the amount of "draw calls". A draw call is basically an "object" that the CPU tells the GPU to draw. Depending on how many materials/textures a mesh uses, it can generate multiple draw calls, because every material/texture is considered as a single object. So, draw calls have to be processed by the CPU first, before the GPU can render the objects. This means, two objects with few polygons are heavier on performance than one with many polygons, because the former generate two draw calls, whereas the latter only one, which can be handled in one single "batch". The CPU can pass it faster to the GPU, which then can then render the object much faster, even if it has many more polygons than the two objects combined.
"Now look at how Skyrim's LOD works. All Tree LODs share one single texture, as do all LOD objects. This way, the amount of draw calls is significantly reduced (one 2k texture is much better than 64 256x256 pixel ones), and the GPU can render them much faster because it doesn't have to wait for the CPU to process the individual draw calls.
"This is not a thing that depends on the engine, it is how real-time 3D graphics work in general. The amount of triangles per draw call depends on the GPU, but has significantly increased since the release of Oblivion. On the other hand, CPUs have mainly increased the number of cores, but as we all know, more cores does not necessarily equal better performance, especially for games. That means individual objects can have many more polygons without really impacting performance, but you cannot have that many more different objects.
"Now, in the case of Oblivion and RAEVWD, we have a greatly increased amount of draw calls from the additional LOD objects, which all have their own textures (and often more than one in a single mesh), and all that in a game that is limited to a single CPU core. I believe this is mainly what's killing performance here. To be sure, though, it would be necessary to make the LOD meshes all use the same texture, but that would require a huge amount of work, especially as it would not be possible to use tiling textures any more, at least not without splitting up the uv map. One could try to assign a placeholder texture to all LOD meshes and see if the performance is significantly improved. If so, it may be worth a shot to make a new version with combined textures. It should even be better if the tree billboard textures could also be combined into one, but I don't know if this is possible because of the different mesh format they are using.
"I have concerned myself with this quite a bit lately and I believe I mostly got it right, but I cannot guarantee that everything I have written is 100% correct. However, the fewer textures, the better, that is for sure, and unfortunately, RAEVWD adds many, many additional textures, of which most have to be drawn at once, depending on how much of the game world you currently see."
Unusual Aspects of LOD/VWD files
Unfortunately, the Gamebryo engine does not render objects or water that are behind the _far.nif mesh. Basically, the only things that can be seen behind a transparent _far.nif are the sky and the Distant Land (not distant objects). See the hazy circle in the left half of this image for an example of the following: (Thanks to Lanceor on the Bethesda Softworks Mods forum for ferreting out this information and providing the image.)
- DistantLOD meshes can be transparent and the background land can be seen through them.
- Water inside or behind a distantLOD mesh won't be rendered though...
- Neither will other DistantLOD objects ... making transparency (the alpha property) pointless in most cases.
- If the distantLOD mesh has collision data, it won't be used by the engine. As a result, for really huge distantLOD objects, the player can walk right into them... until the regular mesh loads and the collision data ejects them all the way back out.
- If the game thinks it has to display a building or landscape, it will pick the model based on distance, and for landscape at least, will display the LOD/VWD mesh if there's no regular one, as you can see by running way past the borders when you turn them off.
- The LOD/VWD meshes will get used even when the ESP file is unchecked, or removed. Those meshes have low-res textures, of course. LOD/VWD files remain installed and will be used until they are uninstalled. This is because, in common with other texture replacers, they have overwritten the vanilla version of those files or provided new ones that the game uses simply because they are present. (Thanks to ghastley on the Bethesda Softworks Mods forum for the two aforementioned tips.)
- Some LOD/VWD files only modify textures. Others only modify meshes. Always check their documentation carefully.
Two mods commonly asked about for Oblivion are 'Qarls Texture Pack 3' (QTP3) and the various 'Almost Everything Viewable While Distant' (AEVWD) mods, especially RAEVWD.
The quick and easy answer is: QTP3 is textures. RAEVWD is meshes for objects. They mod different things and can (and should) be used together. The first post in the RAEVWD thread has suggestions for methods to improve the FPS impact when used together.
Tip: If you are wondering about the impact of LOD/VWD on your Frames-Per-Second (FPS) in a particular area, try the console command 'tll' (Toggle Land LOD) to see it's impact. This may also help you to move through exterior areas where you take a large FPS hit, if it is due to LODs. (Thanks to Ismelda Lasombra on the Bethesda Softworks Mods forum for this tip.)
Distinctions among LOD Generators
Many mods that add landmark objects such as castles and ruins come with '_far.nifs' and DistantLOD data, but if two mods both change the same area, then you will not be able to see all the correct objects from a distance. VWD mods add '_far.nif' files for many vanilla objects that previously lacked them. Even where they provide LOD files, that DistantLOD data may not accommodate other mods affecting the same cells. The true solution is to generate new DistantLOD data ('.lod' files) that reflect all the objects with '_far.nif's currently in the game.
It is also important to note that landscape files (TES4LL, TES4qLOD) are distinct from object files (TES4LODGen). Objects are placed within the landscape environment. There are separate 'near' and 'distant' versions of both.
These tools and their respective interactions are also discussed under the "LOD/VWD Generators" section of the "Utilities" page.
TES4LODGen
The primary LOD [object] generator in use today is TES4LODGen or it's later game specific variants. "The purpose of this program is to do away with pre-generated .lod's completely and have end users generate appropriate DistantLOD quad data for their specific combination of mods." - ElminsterAU
This is actually another "renamed" xEdit executable (currently aka "TES5Edit") for a specific purpose, so to update simply obtain a copy of the latest xEdit and rename for your game (i.e. "TES5LODGen", "FNVLODGen", etc.). xEdit documentation (with game specific names for the generator) can be found on the CreationKit.com site. There is also a FNVEdit Training Manual PDF file which can be downloaded from the Nexus. As xEdit is designed to work with Oblivion, Fallout 3/NV/4, Skyrim, and SkyrimSE, the manual for one works for all and this is the most recent version. However, it really is not needed for LOD Generation unless you want to restrict to only specific types of LODs, in which case you need to read the AFKMods:Works in Progress forum to learn how this is accomplished.
It's a very easy 'one-click' application that handles the placement of static objects visible when distant, such as trees, buildings, city walls, and with the addition of 'Viewable While Distant (VWD)' mods, large rocks, ruins, more buildings etc by creating replacement '.lod' files for which additional _far.nif's are made available by those mods. This helps resolve floating distant objects and adding distant objects not visible in the vanilla game. There has to be one '.lod' file for each cell that contains anything that's distantly visible (which is pretty much all exterior cell's). TES4LODGen does not create LOD landscape textures or meshes. It does NOT in any way generate new _far.nif's (low-poly meshes that are used to render objects if they are in the distance). The _far.nif's you have added need to be of high quality (meaning low poly and using low res textures) or you might see an impact on performance as '.lod' files are created for them that might not have existed previously. You should only keep _far.nif files in the '\Data\Meshes' folder for objects you want to see in the distance, and get rid of unoptimized (high-poly mesh) ones.
TES4LL
The 'new kid on the block' is Landscape LOD Generator TES4LL. TES4LL generates distant landscape LOD meshes that reflect your installed mods, therefore eliminating most floaters and 'land walls' you can get in Oblivion when you use TES4LODGen and the distant land doesn't reflect the actual land heights exactly. It can also create normal maps for the landscape, if required.
NOTE: TES4LL must be installed into the game "Data" folder (i.e. "Oblivion\Data"). Read the install instructions carefully.
To accomplish this originally TESAnnwyn was developed to get the actual land heights. Differences in land heights cause 'land tears', so this enables the creation of smoothly blended landscapes. This functionality has now been included in TES4qLOD. Since version 4 TES4LL now incorporates the source code of TES4qLOD directly, and that in turn now eliminates the need for a separate installation of TESAnnwyn to deal with 'heightmaps'. Now instead you only need the one program: TES4LL. (The handling of these individual tools previously was simplified with the Multi Purpose GUI (MPGUI), a graphical user interface for choosing among the separate TES4LL, TESAnnwyn and TES4qLOD tools. So v4+ has reduced the need for 4 apps down to 1.)
This ability of TES4LL to deal with differences in distant land heights leads to the question of whether or not the Land Magic utility is still needed. Land Magic makes an ESP file, that modifies the near view heightmap itself. TES4LL makes LOD meshes from the heightmap, so they are complimentary. You can implement the LandMagic.esp into the TES4LL procedure.
There has been some confusion as to what this tool means by the terms Medium, High, and Ultimate in the LOD generation options. Per the author: High, Medium and Ultimate corresponds to the number of vertices of the LOD meshes produced by TES4LL; they have no relation to the textures or the video quality. The textures are normally done with 1024x1024 [image resolution], which is OK (higher resolutions produce blocky textures). These resolutions (image and vertices) have nothing to do with video display resolutions.
Also: The [impact on] FPS does not depend on the number of mods [affecting LOD], as only the shape of the quad meshes is changed by those mods, but not their quality. But RAEVWD [in particular among VWD mods] can have a large impact if one has too many LOD buildings.
By definition, tes4ll is compatible with all mods which change landscapes. At present, the meshes created with TES4LL are not (yet) compatible with the new LLOD system of OBGE.
TES4LL process sequence
TES4LL consists of batch files to generate different things, so the order you run them in is up to you. These bat files are only for the Tamriel worldspace however. If you want to use TES4LL with any other worldspace, you will need to use MPGUI or manually change these parameters like so: "... _gamemode=FalloutNV _worldspace=WastelandNV _worldspaceid=894758 _worldspaceidhex=000DA726 ...". Look in the game specific version of TES4LL documentation for the correct values.
While each of these steps produces separate content, the order in which two of them are run can have an impact upon the input of the other related process in the sequence. Bear in mind we are talking about both meshes and textures for LOD files only. While related they are actually separate entities, so pay attention to which is the subject in the different steps. It can get confusing otherwise.
The downloaded package includes batch files configured to produce standard default choices. Either modify the batch files themselves with a plain ASCII text editor like Notepad according to the included documentation or use the graphical interface MPGUI to make changes.
Before generating/installing the new meshes, make a backup of data\meshes\landscapelod or the equivalent. The same is true for the data\textures equivalent. TES4LL will overwrite their contents, and you will need these backups to restore to vanilla unless you want to re-install the entire game. If you don't want to overwrite the existing LODs, per the author: "You can open the bat-files and remove the flag "overwritelods". This makes the tes4ll-script install all files in the data directory itself. Unfortunately, it does not preserve the directory structure, this means a little bit of copying around." The FNV/FO3 version has the option to change the entire installation directory keeping all sub-directories, even with a field in the MPGUI window. There is now (as of 18 Jan 2017) a new version (v5) uploaded on the Nexus with some few changes (mostly to be in sync with the Fallout versions):
- Added temporary directory (as mentioned above)
- Added some color filters (a rocky filter like in Fallout New Vegas and a general possibility to change the intensities of the RGB values)
Of course, Oblivion has only one level of LOD (and not 4 like in Fallout) so there is only a single transition between the near and the far landscape, and it does not allow to add filters gradually with increasing intensity for more distant regions.
Note that there can be differences in the batch file names depending upon the game specific version of TES4LL. Hence the need to understand the purpose of each.
1. Generate 4x4 mini bitmaps for any added texture replacements, which will be added to the LOD "texture cache" (located in "Data\tes4qlod_tex"). These are generated mainly for Vanilla textures. This step is only needed if you have added texture replacements (to avoid color differences) or need to rebuild your texture cache, as TES4LL comes with (optional download) pregenerated ones. This needs to be done before texture generation (step 3), so you can perform step 2 first without harm:
- For Oblivion: tes4ll_tes4qlod_cache.bat
- For Fallout 3/New Vegas: tes4ll_make_texture_cache.bat
- You need to stick with 1x1 mini bitmaps to get blending of distant textures (morphing of adjacent cells) if that is important to you. 2x2 and 4x4 bitmaps get tiled instead. (Tiling is sometimes referred to as "the Minecraft Effect".)
2. Choose a Vertex Resolution for your landscape LOD mesh files:
- tes4ll_midres.bat -> Mid resolution, 10000 vertex points (leads to 20% more triangles than Vanilla)
- tes4ll_highres.bat -> High resolution, 13000 vertex points (leads to 80% more triangles than Vanilla)
- tes4ll_ultimate.bat -> Ultimate resolution, 18000 vertex points, and a very detailed wall remover (something for high-end graphics cards).
- This overwrites your current LOD landscape mesh files, and creates any missing ones according to your current mod list. Here "resolution" refers to the number of vertex pointers and has nothing to do with your screen, video card, or texture resolution. The recommendation is to start with "Highres" (unless you have a really old graphics card) and reduce as you find out the impact upon your game processing (i.e. stuttering or reduced FPS). "Ultimate" is not recommended by TES4LL's author, and is only included because historically it was part of the separate TES4qLOD package. (Note that "land walls" only occur in Oblivion, and their removal can be enabled in the high- or mid-res batch files if needed.)
- In making your choice, bear in mind: The higher the vertex resolution, the longer the process AND the more likely you will see a hit to your "Frames Per Second" (FPS).
The order of the next two steps does not matter.
3. Generate LOD texture Color Maps (surface material colors without lighting or shades) for your newly created LOD meshes. These textures should be in no more than 1024x1024 resolution for high quality LODs. Higher resolutions will hurt performance for no visible gain in the distance:
- For Oblivion: tes4ll_tes4qlod.bat
- For Fallout 3/New Vegas: tes4ll_make_colormaps.bat
4. Generate Normal Maps (faked lighting/shades) for your LOD textures: tes4ll_normalmaps.bat.
From here you want to generate your new combined game LOD environment with TES4GENLod.exe. In general, your "load order" should be set before starting this process.
Here is a basic "batch file" script for TES4LL (using Oblivion as the example). Adjust pathing as necessary for your situation.
@echo off pushd "E:\Games\SteamLibrary\steamapps\common\Oblivion\Data" set tes4ll_bat=1 @echo on call tes4ll_make_texture_cache.bat call tes4ll_make_normal_meshes.bat call tes4ll_make_colormaps_with_rockyfilter.bat call tes4ll_make_normalmaps.bat @echo off set tes4ll_bat= popd pushd "E:\Games\Oblivion Mods\Tools\TESLODGen" @echo SCRIPT: Manually run TESLODGen (after LOOT) ... pause exit
The "set tes4ll_bat=" variable is a flag passed to each of the "call tes4ll_make_..." batch files, which have been modified by adding the line:
if %tes4ll_bat%~==1~ goto :EOF
just above the existing line:
@set /p dummy= Please close this window
so each called script doesn't wait for user input before proceeding. If you want to pause to view the results of each called script, just set "tes4ll_bat=0" (or any value other than "1") in the main script.
Allow TES4LL a couple of hours to process all the files. FNVLODGen usually only takes a few minutes. YMMV depending upon your hardware.
See the TESTG Glossary for the full definitions of any unfamiliar terms.
TES4QLOD
TES4qLOD quickly generates distant landscape DDS textures, the '.lod' files needed for VWD statics (but not the meshes for them), a complete textured map and normal map of your landscape by combining all of your LOD textures and normal maps into one, and now with alpha blending is capable of creating color maps. It does not add meshes to the textures. but does now include the ability to generate heightmaps, eliminating the need of using TESAnnwyn* for that purpose. But it was regarded as more of a mod maker than a player's tool, designed to overcome certain frustrations with the Construction Set (CS), until the addition of alpha blending gave more acceptable results. For example, if you use texture replacers you have to first convert them from DDS to 4x4, either 24 or 32-bit, BMP file format before using TES4qLOD on them. (You can use the free utility 'nconvert' or 'DDS Convertor 2' for this.) It does not currently blend multi-layered textures or add meshes to textures like the CS can, but is a major time saver and less stressful than the CS for quickly developing LODs to test during development. Mod developers will likely want to persevere with the CS, especially with the improvements provided by the 'Construction Set Extender (CSE)', to get that extra quality result.
It may be helpful to think of these tools as independent but complementary pairs: TES4LODGen ('.lod' files for static objects) and TES4LL (landscape meshes) can be used together, without needing to also call the functionality of TES4qLOD (distant landscape textures, and normal maps) if desired to save steps and time by living without the LOD color maps. All three tools are complementary in function, dealing with different aspects of the LOD environment. There do not appear to be any significant FPS performance issues when combining them.
Common Questions
How do I tell which pair of tools I need?
Well, it depends upon what you intend to 'fix'. Hopefully after reading the 'Overview' above you will understand the distinction, which in turn should make it obvious which pair you need in any given situation. Also, note that you don't need both parts of the pair in all situations. One is for textures and the other is for meshes.
Since you are looking here, presumably you are working on LOD/VWD issues. If you have installed several LOD mods and are now trying to 'stitch them together', suggest first checking for matching *.dds (textures) and *_far.nif (meshes) files for 'objects' and terrain you want to have visible in the distance. Wherever you have one but not the other, you need the appropriate tool to generate the missing element (see the next common question). Once you have both types of files for each distant terrain, then you can try to optimize (see the Utilities page) everything for the same resolution if you wish, and finally you must run TES4LODGen, which will build the .LOD files based upon all the '_far.nif' files it finds. (See the 'sequence summary' below for a bit more detail.)
Bear in mind that adding lots of distant static VWD objects (such as architecture and ruins from RAEVWD) WILL have an impact on FPS when outdoors in the game. VWDs are distinct from terrain objects. Prioritize what you want to see in the distance, and optimize what you can the more you want to see there. High resolution & detail in distant objects is an unnecessary FPS killer. Distant objects are supposed to be blurry and low in detail; it's how you know they are distant.
Which LOD/VWD tools are needed and compatible or work well in combination?
Bearing in mind that there may be alternatives to each of these choices, you want to use 'tes4ll' to generate distant LOD meshes, 'TES4qLOD' to generate distant landscape textures, and 'TES4LODGen' to pre-generate distant LOD static objects from _far.nif files that may have been added.
Is RAEVWD (or other VWD mods) needed any more with these new LOD tools?
VWD mods add new distant objects and/or .lod files. They are complementary to these tools. Run them after installing a VWD mod.
Is there any particular sequence in which I should run these tools?
Here is a quick summary: (Thanks to zilav on the Bethesda Softworks Mods forum.)
- tes4ll generates distant meshes for terrain only; hence the name (TES4 Landscape Lod). It can also generate normal maps for distant land textures with faked shadows. It doesn't create distant textures for terrain meshes though because ...
- TES4qLOD generates textures for distant land meshes, which work together with tes4ll meshes. A version of TES4qLOD is now integrated into tes4ll.
- None of the tools above does anything with distant objects!
- Distant objects are not the actual meshes (.nif files) you see when up close: they are low polygon versions (_far.nif files). RAEWVD (and other VWD mods) does exactly that - supplies low poly _far.nif files (meshes) and textures for distant objects. However ...
- The game does not show distant low poly objects by default. It uses .lod files in the DistantLOD folder that specify what mesh, where, and at what angle to display.
- TES4LODGen generates those .lod files in the DistantLOD folder based on distant objects in your mods and the existence of low poly distant object meshes (_far.nif files) from mods such as RAEVWD (and billboard textures to trees). The vanilla game has .lod files only for a limited number of objects like the Imperial City. Hence the need for VWD mods. If you don't run TES4LODGen, your added distant objects won't appear; unless they came with their own .lod files, and even then they may float or create land walls. TES4LODGen fixes much of that.
- Tools/mods work in pairs: tes4ll+TES4qLod and VWD mods+TES4LODGen, but those pairs don't depend on each other at all since they do completely different tasks using different resources/information.
Run TES4LODGen EVERY TIME you change your LOAD ORDER. It should be pretty much the last thing you do after running BOSS and building your Bashed Patch (assuming you are using Wrye Bash, which is recommended) before launching your game again. The others should be run (in any order) after all the altering of your mesh, texture replacement, and related normal/glow/age maps mods and prior to building your Bashed Patch.
Pages in category ‘VWD-OB’
The following 19 pages are in this category, out of 19 total.