Guide:DDSopt/Use Case Examples

From STEP Modding Wiki

Contents

Example One: Optimizing to Reduce Texture Size

One of the most common uses of DDSopt is to optimize textures to a lower resolution, reducing the VRAM use of the mod and the file size of the mod. For this example the Whitrun_Trellis_Texture_4096 mod is used. Its textures are 4K×4K, and most users need to reduce the size of these textures.; in this example the texture size will be reduced 2K×2K. Extract the files in the mod into a folder in the "Working" directory.

DDSopt Usage Example 1 Figures with Whitrun_Trellis_Texture_4096 mod

  • Fig. 1A: Browser tab when optimizing Whitrun_Trellis_Texture_4096

    Fig. 1A: Browser tab when optimizing Whitrun_Trellis_Texture_4096

  • Fig. 1B: Constraint tab when optimizing Whitrun_Trellis_Texture_4096

    Fig. 1B: Constraint tab when optimizing Whitrun_Trellis_Texture_4096


  1. Launch DDSopt if it is not already running. [Ignore] > [Don't process any of the known file types] should be un-ticked for the optimizations in the three examples.
  2. In the Browser Tab, select the Browse button in the upper window and as the initial source folder, select the folder with the extracted Whitrun_Trellis_Texture_4096 mod in the "Working" directory, then click Use Folder
  3. If it is not already checked, check the Show Recursive box below the center text-box.
  4. In the lower window select the Browse button and then select the tmp folder in the "Working" directory as the current destination, then click Use Folder. The DDSopt Browser Tab will then look like Figure 1A.
  5. Examine the Constraints Tab in DDSopt and make the Constraints Tab settings match those in figure 1B.
  6. Click [Process] to begin optimizing the textures from Whitrun_Trellis_Texture_4096 into the tmp folder.
  7. When processing is complete, the tmp folder will have two texture files, each of which is optimized and whose size is 2K×2K.

DDSopt will have created a tmp.log file in the Working directory showing the processing done on the files. In this case DDSopt reduced the size of two files, and recomputed the mipmaps for the textures.

Example Two: Selective Optimization

Another common use of DDSopt is to optimize the color maps from a mod at one Constraints tab resolution limit value and the tangent space normal maps from the mod with the Constraints tab resolution limit at half the value used for the color maps. This is used to reduce the VRAM needed by the mod textures without suffering a significant loss in graphic quality, as discussed in the Normal Maps and VRAM Usage tab.

For this example extract the " Hybrids_Hires_Plant_and_Herb_Retexture" mod into a folder in the "Working" directory and delete any files in the "tmp" folder.

DDSopt Usage Example 2 Figures with Hybrids_Hires_Plant_and_Herb_Retexture mod

  • Fig. 2A: Browser tab prior to optimizing Hybrids_Hires_Plant_and_Herb_Retexture

    Fig. 2A: Browser tab prior to optimizing Hybrids_Hires_Plant_and_Herb_Retexture

  • Fig. 2B: Constraint tab for normal maps optimization parameters in Hybrids_Hires_Plant_and_Herb_Retexture

    Fig. 2B: Constraint tab for normal maps optimization parameters in Hybrids_Hires_Plant_and_Herb_Retexture

  • Fig. 2C: Browser tab for Hybrids_Hires_Plant_and_Herb_Retexture after Selecting Only Normal Maps

    Fig. 2C: Browser tab for Hybrids_Hires_Plant_and_Herb_Retexture after Selecting Only Normal Maps

  • Fig. 2D: Constraint tab for optimizing color maps in Hybrids_Hires_Plant_and_Herb_Retexture

    Fig. 2D: Constraint tab for optimizing color maps in Hybrids_Hires_Plant_and_Herb_Retexture

  • Fig. 2E: Browser tab after selecting the color maps in Hybrids_Hires_Plant_and_Herb_Retexture

    Fig. 2E: Browser tab after selecting the color maps in Hybrids_Hires_Plant_and_Herb_Retexture

  • Fig. 2F: Browser tab after optimizing all the textures in Hybrids_Hires_Plant_and_Herb_Retexture

    Fig. 2F: Browser tab after optimizing all the textures in Hybrids_Hires_Plant_and_Herb_Retexture

  • Fig. 2G: Preview tab for mushroom1.dds in Hybrids_Hires_Plant_and_Herb_Retexture after optimization

    Fig. 2G: Preview tab for mushroom1.dds in Hybrids_Hires_Plant_and_Herb_Retexture after optimization


  1. Launch DDSopt if it is not already running.
  2. In the Browser Tab, select the Browse button in the upper window and as the initial source folder, select the folder with the extracted Hybrids_Hires_Plant_and_Herb_Retexture mod in the "Working" directory, then click Use Folder.
  3. If it is not already checked, check the Show Recursive box below the center text-box.
  4. In the lower window select the Browse button and then select the tmp folder in the "Working" directory as the current destination, then click Use Folder. The DDSopt Browser Tab will then look like Figure 2A.
  5. Examine the Constraints Tab in DDSopt and make the Constraints Tab settings match those in figure 2B (these parameters are used in this example for the tangent space normal maps).
  6. Use the filter in the center of the Browser Tab to type in a "*.*" wildcard (if this is not already in the filter window), then click the [Apply] button.
  7. Click the red box with a white X to unselect all the files.
  8. Now use the filter in the center of the Browser Tab to type in a "*_n.dds" wildcard to select all the tangent space normal map textures, then click the [Apply] button.
  9. Click the Green Checkmark. This will select the tangent space normal maps. The DDSopt Browser Tab will then look like Figure 2C. Doing these three steps selects only the normal maps for optimization.
  10. Under the Ignore Tab uncheck the [Copy unprocessed and ignored files (passthrough)] selection if it is checked.
  11. Click [Process] to begin optimizing the tangent space normal map textures.
  12. When processing of all the normal maps is finished, recheck the [Copy unprocessed and ignored files (passthrough)] selection in the Ignore Tab if it was previously checked.
  13. Examine the Constraints Tab in DDSopt and make the Constraints Tab settings match those in figure 2D (these parameters are used in this example for the color maps).
  14. Use the filter in the center of the Browser Tab to type in a "*.*" wildcard (if this is not already in the filter window), then click the [Apply] button.
  15. Click the Green Checkmark to select all of the textures. Since the normal maps were already processed DDSopt will ignore them. The DDSopt Browser Tab will then look like Figure 2E.
  16. Click [Process] to begin optimizing the color map textures. This step will also copy the readme file. When complete the DDSopt Browser Tab will then look like Figure 2F.
  17. On the Browser Tab double click the "mushroom1.dds" texture. The Preview Tab will open and the texture will be displayed along with information about the texture, as shown in Figure 2G. DDSopt changed the compression of this texture from DXT3 to DXT1 since it determined that DXT1 was adequate for this particular texture; this also reduced the file size and VRAM use of the texture. The log file shows that DDSopt also changed the format of some other textures, reducing their file sizes.
  18. The Preview Tab can display other views of the texture which can help verify that the optimization was done properly.

Note that the Constraint tab resolution limit parameter for normal maps in this example is smaller that typically used with this particular mod when preparing it for installation into Skyrim (e.g., it typically doesn't need reduced size normal maps), but it is useful for demonstrating selective optimization as well as DDSopt capability to automatically change texture compression format when appropriate.

Example 3: Optimizing Mods with Uncompressed Textures

A few mods include uncompressed textures. As expected, uncompressed textures have better quality than compressed ones. This is especially true for normal maps. Some care must be taken when using DDSopt on mods with uncompressed textures. If the "Constraint tab" format parameters are set to format the textures as compressed, DDSopt will convert the uncompressed textures to compressed ones, losing significant quality in the process. If the mod has a mix of compressed and uncompressed textures, it is usually best to set the "Constraints tab" format parameters to those desired for the uncompressed textures. DDSopt will still process the compressed textures using the "DXTx" format; it does not convert the compressed textures into uncompressed ones.

For this example the "RSE_High" mod is used which has 2Kz2K compressed color maps and 1K×1K uncompressed tangent space normal maps. Extract the "RSE_High" mod into a folder in the "Working" directory, and delete any files in the "tmp" folder.

DDSopt Usage Example 3 Figures with RSE_High mod

  • Fig. 3A: Browser tab when optimizing RSE_High

    Fig. 3A: Browser tab when optimizing RSE_High

  • Fig. 3B: Constraint tab when optimizing RSE_High

    Fig. 3B: Constraint tab when optimizing RSE_High

  • Fig. 3C: Browser tab after optimizing all the textures in RSE_High

    Fig. 3C: Browser tab after optimizing all the textures in RSE_High


  1. Launch DDSopt if it is not already running.
  2. In the Browser Tab, select the Browse button in the upper window and as the initial source folder, select the folder with the extracted RSE_High mod in the "Working" directory, then click Use Folder
  3. If it is not already checked, check the Show Recursive box below the center text-box.
  4. In the lower window select the Browse button and then select the tmp folder in the "Working" directory as the current destination, then click Use Folder. The DDSopt Browser Tab will then look like Figure 3A.
  5. Examine the Constraints Tab in DDSopt and make the Constraints Tab settings match those in figure 3B. Note that the resolution limit parameters for compressed and uncompressed textures are different in this example.
  6. Click [Process] to begin optimizing the textures from RSE_High into the tmp folder.
  7. When processing is complete, the tmp folder will include six color map texture files and one uncompressed tangent space normal map texture file.
  8. The tmp.log file will show what DDSopt did with every texture in the file. For example, the log file shows that the uncompressed texture was unchanged since it had previously been optimized with DDSopt by the mod author.

Example 4: Using DDSopt to Provide General Quality Improvements

Using DDSopt to Optimize Multiple Mods Simultaneously

Create a folder (e.g., "Working") and extract the mods into this folder, one mod per subfolder. Select this folder (e.g., "Working") as the source (upper window) when using DDSopt.

Whenever DDSopt is run it will replace the mipmaps (see Q1) in a texture file with better quality versions, unless a texture was previously optimized by DDSopt. For some mods this is the only optimization step needed. DDSopt will also change change compression formats to more appropriate ones, as it did in Example 1, when it determines this is needed.

For this example the "Detailed Rugs" mod will be used. Extract the files in the mod into a folder in the "Working" directory.

DDSopt Usage Example 4 Figures with Detailed Rugs mod

  • Fig. 4A: Browser tab when optimizing Detailed Rugs

    Fig. 4A: Browser tab when optimizing Detailed Rugs

  • Fig. 4B: Constraint tab when optimizing Detailed Rugs

    Fig. 4B: Constraint tab when optimizing Detailed Rugs


  1. Launch DDSopt if it is not already running. [Ignore] > [Don't process any of the known file types] should be un-ticked for the optimizations in the three examples.
  2. In the Browser Tab, select the Browse button in the upper window and as the initial source folder, select the folder with the extracted Detailed Rugs mod in the "Working" directory, then click Use Folder
  3. If it is not already checked, check the Show Recursive box below the center text-box.
  4. In the lower window select the Browse button and then select the tmp folder in the "Working" directory as the current destination, then click Use Folder. The DDSopt Browser Tab will then look like Figure 4A.
  5. Examine the Constraints Tab in DDSopt and make the Constraints Tab settings match those in figure 4B. Since none of the textures will be reduced in size, the Constraint tab resolution limit values can be larger than those in the figure if desired. This mod has no uncompressed textures, but if it did the guidance in Example 3 on Constraint tab format parameters should be followed.
  6. Click [Process] to begin optimizing the textures from Detailed Rugs into the tmp folder.
  7. When processing is complete, the tmp folder will have a "textures" and a "meshes" subfolder. The textures in the "textures" subfolder will have improved mipmaps.

Vanilla Texture Preparation

This page contains detailed step-by-step instructions for the initial processing of the vanilla Skyrim texture files, with some explanations of what is being done. It is the first of two sections on optimizing the vanilla Skyrim textures, and both need to be followed to optimize the textures. The actual optimization processing is described in the next section, using the files created in this section. This section is intended for all users; the explanations included are typically more useful to intermediate and advanced users.

Working Directory

Note that the term "Working" directory is used throughout this guide to denote a separate directory created for processing texture files, and it should not be inside the Skyrim directory that includes the Skyrim executable and its data. For Mod Organizer (MO) users, the Working Directory should not be in any directory that MO itself uses.

The next three tabs of the guide provides instructions for optimization of the standard (STD) textures from Skyrim - textures.bsa and the hi-res (HRDLC) vanilla textures from HighResTexturePack01.bsa (HRDLC1), HighResTexturePack02.bsa (HRDLC2), and HighResTexturePack03.bsa (HRDLC3). The vanilla textures are probably more in need of optimization than the mod textures. Vanilla texture optimization includes optimization of textures from the three optional DLC if any of these are being used.

None of the vanilla Skyrim textures are fully optimized in terms of texture compression and mipmaps (see Q1). Therefore, these are great candidates for testing the baseline effects of "DDSopt-imization." First, the textures need to be extracted. The first and most tedious steps are getting the textures into folders so DDSopt can be used with them. The vanilla Skyrim textures are archived in BSA format, so they need to be extracted before use. Textures can be processed directly from the source BSAs and into optimized (or unoptimized) destination BSAs (or loose files), but there are a few reported problems using optimized textures that are repacked into BSA format.

Extracting Textures

Figure 1. DDSopt Browser Tab

Using a fast drive with at least 45 GB of available space, create a new empty Working directory, and in this directory create a new directory named Vanilla Extracted to serve as the directory for storing the optimized textures. Inside the "Vanilla Extracted" directory create a folder to house each of the three hi-res and standard vanilla texture packs, and for each addon DLC being used. Use "STD" for the "Skyrim - textures.bsa" contents, "HRDLC1", "HRDLC2", "HRDLC3" for the contents of the three High Res DLC textures files, and "Dawnguard", "Hearthfires", and "Dragonborn" as folder names for any addon DLC being used. The resulting directory structure will look like the following (where indentation implies a lower level subdirectory):

Working
Vanilla Extracted
Dawnguard (optional) (contents of Dawnguard.bsa)
Dragonborn (optional) (contents of Dragdorn.bsa)
Hearthfires (optional) (contents of Hearthfires.bsa)
HRDLC1 (contents of HighResTexturePack01.bsa)
HRDLC2 (contents of HighResTexturePack02.bsa)
HRDLC3 (contents of HighResTexturePack03.bsa)
STD (extract 'Skyrim - textures.bsa' - only)

The folder names for the extracted BSAs from the 3 optional DLC are arbitrary. With Mod Organizer 1.2.11 or later the final names for the folders should be different than those of the original BSA (e.g., Optimized_Dawnguard or Dawnguard_opt). This name change can be done before extracting the textures or after the optimized textures are created. If the batch file for archiving the optimized textures is used, this is not an issue since "_opt" is appended to each file name.

Extracting the contents from the vanilla BSAs can be done using DDSopt, as described below, or using the somewhat simpler BSAopt instructions. It can also be done using Mod Organizer which is much faster at extraction, note that a few users have reported problems (missing textures) when doing this.


Working in the DDSopt Browser Tab

The top portion of the Browser Tab shows the BSA's tree structure but not the files. If "Show recursive" is ticked, the files are shown in the bottom portion of the Browser Tab when any of the folder structures at the top are selected. Clicking the green check mark in the middle of the two halves will select all the files listed below, and the red 'x' will unselect all. The text field dropdown next to the [Apply] button is a selection filter that may be used to filter files by certain pre-selected filters or one's own custom filters. Colors used for the files in the Browser tab were listed in the "Using DDSopt" tab; more about text colors and formats regarding these displays are available on the official guide's site.
  1. Start DDSopt, and click on [Game] in the main menu. Tick [Skyrim].
  2. Choose a source location by clicking the [Browse] button near the top of the Browser Tab (Figure 1).
  3. Select [Bethesda Softworks Archive (*.bsa)] as the file type from the dropdown menu
  4. Navigate to Steam\SteamApps\common\skyrim\Data directory (henceforth, referred to as the Data directory”). Select "HighResTexturePack01.bsa", and click on the [Open] button. It might take a minute to scan the BSA.
  5. Choose a destination location by clicking on the [Browse] button on the bottom of the Browser Tab and select the "HRDLC1" folder created previously. Again click the [Use Folder] button. It should take effect immediately, if there are no files or subfolders to scan in this directory.
  1. Click [Ignore] from the main menu and tick [Don't process any of the known file types]. This will tell DDSopt to extract the contents of the BSA without performing any optimizations. (Be certain to UNtick this option whenever finished with extraction and texture optimization is desired. This option is only used for BSA extraction.)
  2. In [Ignore] also make sure that [Copy unprocessed and ignored files (passthrough)] is checked when extracting files from a BSA.
  3. Click on the [Process] button in the lower right to extract the BSA as loose files into the "HRDLC1" folder.
  4. Repeat steps 2 - 7 to extract the contents of "HighResTexturePack02.bsa" into "HRDLC2", "HighresTexturePack03.bsa" into "HRDLC3", "Skyrim - Textures.bsa" into STD, and the contents of any of the addon DLC BSAs ("Dawnguard.bsa", "Hearthfires.bsa", "Dragonborn.bsa") used in the game into the corresponding folders in "Vanilla Extracted".
  5. When extraction is complete, in [Ignore] untick [Copy unprocessed and ignored files (passthrough] if the DDSopt guide batch files are being used to optimize textures; otherwise it is typically left as ticked.
Addon DLC BSA contents

The BSAs for the addon DLC contain multiple resource types, not just textures. Extract the files from the DLC BSAs and optimize only the texture files from the DLC BSAs, leaving the other resources in the original BSAs. The original DLC BSAs are still used; the optimized DLC textures (e.g., in a separate "Dawnguard_opt" archive file) override the textures in the DLC BSAs themself. This is also what the batch files used for optimization do.
Working Folder Screenshot.


At the end of the extraction process the "Working" directory contents should match the "Working folder file tree" screenshot.


The advantages of using the batch files provided withe the DDSopt guide for optimizing the vanilla textures, vs. alternate optimization approaches, are listed in Q3 of the General FAQ.



Vanilla HRDLC Texture Problems

The HRDLC BSAs were intended to solve some of the texture problems with the standard vanilla textures (Skyrim - textures.bsa) and the textures in the 3 addon DLC BSAs, and to provide higher resolution versions of some of these textures. Unfortunately there are problems with the contents of the 3 HRDLC. This section addresses fixing these problems. The other vanilla texture BSAs do not have the same problems as the HRDLC ones.

The main quality problems with the HRDLC BSAs are ...

... errors in either the primary or alpha channel of some textures,
... compression redundancies within BSAs, and
... texture duplicates with respect to the other vanilla BSAs.
Bethesda Hi-Res DLC Optimized

The textures in this mod don't really need "DDSopt-imization". The HRDLC tab of the Skyrim Installation Guide and the HRDLC Optimized mod page have a detailed list of options for using this mod along with the HRDLC, including options that make use of DDSopt for systems with 1 GB VRAM or less. These options also include the use of lower-resolution normal maps as discussed more below. This mod is mentioned here because any vanilla DDSopt-imization depends on choices regarding the extent to which this mod is used; in some cases the HRDLC is not used at all.

The Unofficial Patch Project team has released an Unofficial High Resolution Patch (UHRP) (one of the mods in the STEP list) which corrects many of the errors, improves upon some of the lower quality textures, and fixes some of the meshes. The UHRP does not correct all the textures addressed by the HighResTexturePack DLC Tweaks or the (now outdated) HD Textures DLC Fix. Nevertheless, all of the unaddressed textures are replaced with better textures by other mods in the STEP list. The UHRP continues to evolve to address the first of the three problems mentioned above as well as many other problems.

Before optimizing the full set of vanilla textures, several additional steps are required for the three HRDLC folders to remove duplicates and some textures that Skyrim doesn't use. If these optional steps are used then proceed with the processing in the Repair the Vanilla HRDLC Textures subsection below, otherwise skip the the next tab. Before proceeding make sure that the Vanilla Extracted folder looks like the one in the "Working Folder Screenshot" above; most of the problems reported with using the batch files are due to the extracted files or the batch files not being in the correct place.

Repair the Vanilla HRDLC Textures

  1. Download the Batch Files for DDSopt guide v2.74 referenced at the top of the page. The archive contains multiple batch files and a command line version of 7-zip; these are used to automate some of the processing associated with this guide. Make sure you are using the most current version of the batch files. For the HRDLC repair "1_HRDLC_Clean-START_2.7.bat" and "1_HRDLC_Clean.bat" are used.
  2. Extract the archive into the Working Directory beside Vanilla Extracted/.
  3. Execute"1_HRDLC_Clean-START_2.7.bat". The "1_HRDLC_Clean-START_2.7.bat" is a very small batch file that will startup "1_HRDLC_Clean_2.7.bat" and setup the error logging. "1_HRDLC_Clean.bat" will do all the actual removal of duplicate files and directories. At the start of the batch file several tests are run to make sure the batch files are in the right folder, the folder structure is correct, and the repair hasn't already been done. Read the command-window output and proceed if everything is correct.
  4. When the processing is complete the batch file pauses to allow examination of the HRDLC_Clean.log, which shows all the processing steps that the "1_HRDLC_Clean_2.7.bat" batch file performed, and "HRDLC_Clean_ERROR.log". If anything went wrong, there will be corresponding errors in the error log for each file that was not properly removed. An empty log file signifies an error-free run. Errors usually mean that the BAT commands did not find the files that were expected, which either means that the process had already been run previously or that the commands weren't interpreted correctly, which is explained more within the ReadMe.
  5. Upon completion, the Vanilla Extracted/ folder will have one folder for each of the 4-7 vanilla Skyrim BSAs and should contain 76,395 files and 2,718 folders if all three DLCs are also extracted (32,619 files and 954 folders without any DLC). These are the cleaned versions of each of the respective extracted vanilla BSAs (721 and 34 redundant files and folders removed, respectively). A more detailed picture of the folder contents is shown in the Working Folder Screenshot of repaired data below.
Working Folder Screenshot with Repaired Files

Screenshot of the Working directory showing the file and folder count for each of the folders in Vanilla Extracted after repairing the HRDLC texture repair.

Now that the vanilla textures have been prepared for optimization, continue on to the next section where the actual optimization processing will be described. The optimization processing uses the files created by the processing from this section.

DDSopt Optimization

This section, the second of two about optimizing the vanilla textures, describes a process for optimizing all the vanilla Skyrim textures in as few steps as possible. It is suggested that the reader follow each step precisely or read through it prior to customizing the process in any way. Explanations are included for interested users; earlier versions of these instructions without explanations led to large numbers of questions in the STEP forums. The optimization processing described in this section requires that the user has completed the steps in the previous section.

An alternate approach using the DDSopt GUI to achieve the same optimization results is available in the Appendices.

Organizing the Vanilla Textures for Selective Optimization

DDSopt and disk usage

DDSopt does not indicate when a processing job is incomplete due to running out of disk space. This can easily happen during the this vanilla optimization. Even without the vanilla BSAs the Working Folder uses roughly 45 GB for all the temporary folders plus the folder with the archived optimized textures. This does not include all of the backup storage that is often desirable. Using an SSD speeds up the processing, but it is easy to exceed the available space during optimization. Make sure enough HDD space is available, and if using an SSD the methods discussed in the "Using an SSD to Reduce Processing Time" sidebox below help minimize SSD space; even then SSD peak use is around 18 GB

When the processing steps in the previous section are complete all the vanilla texture resources are in the "Vanilla Extracted" folder inside the Working directory. The final organization prior to optimization can proceed. The batch file includes multiple steps to ensure the quality of the optimized vanilla textures while providing some small reductions in VRAM use, as listed in Q3 in the General FAQ.

DDSopt itself includs filtering capabilities that can be used to provide manual selective optimization of textures without using the batch file, but it can be tedious to do this, as the batch processing involves many steps. If manual processing is used, the 4 examples at the end of the section, Using DDSopt, describe how to optimize the various kinds of Skyrim textures.

Before proceeding, make sure that the Vanilla Extracted directory file and subfolder counts looks like the Working Folder Screenshot with Repaired Files (bottom of the last section; useif the HRDLC were cleaned) or like the Working Folder Screenshot (earlier in the last section; use if the HRDLC were not cleaned). Most of the problems reported with using the batch files are due to the extracted files or the batch files not being in the correct place.

  1. If this has not already been done, download the batch files referenced at the top of the page. This archive contains multiple batch files and a command line version of 7-zip; these are used to automate some of the processing associated with this guide. For this processing "2_Pre-optimization_2.78.bat" is used.
  2. If this has not already been done, make sure you have the most recent version of the batch files, then Extract the customized batch files into the Working Directory (see previous section) adjacent to /Vanilla Extracted.
  3. Run the "2_Pre-optimization_2.78.bat" batch file. At the start of the batch file several tests are run to make sure the batch files are in the right folder and the folder structure is correct. It will also indicate whether the processing has administrative privilege. The results of these tests are shown in the command window. If everything is OK then hit enter to proceed.
  4. Examine the log file. While running, the batch file will echo the commands; this allows monitoring the batch progress if desired. Before the batch file completes it will pause to allow a quick check of the log file. There should be 16 blank lines in the log file and no errors listed.
Info-Logo.png      Notice:The processing is much quicker if the Working directory is on an SSD. With some HDD drives, the command window might seem frozen since the batch file can take 30 minutes or so. Note that doing the full vanilla texture processing on this page needs a large SSD. As an alternative that provides almost all of the reduced processing time, use an HDD for the processing until the "Optimize the Vanilla Textures" section and follow the instructions in that section for SSD use.

When processing is complete, the command window will read: "When the batch file processing terminates, check the log file (log.txt)

The log file should not show any errors and should have 15 blank lines

Press any key to continue..."
Selecting the DDSopt Constraints tab Parameters for Vanilla textures

Under the Constraints tab in DDSopt are multiple optimize/compress format settings and two resolution-limit choices. The recommended initial settings for the Optimize/Compress settings were shown in the Main Menu Settings figure in the previous tab. The resolution-limit choices can also be left at the default setting of 8192×8192. DDSopt will only automatically reduce the resolution of textures whose resolution is larger than these values, so with default settings DDSopt will almost never change texture resolution. Depending on graphic card VRAM here are some recommendations for alternate settings of these parameters. If system performance is inadequate and/or there are problems with stutter consider re-optimizing the textures with lower values. The vanilla textures are not the ones most likely to cause significant VRAM use; the higher quality textures in core STEP are more likely to have greater VRAM use impact. Frequently individual mods include textures with a range of different sizes, and those textures that are not larger than the resolution-limit settings below will not be reduced by DDSopt.
  • <1 GB VRAM: textures from the Hi-Res DLC Optimized mod are often used instead of any HRDLC textures, so the Standard Quality settings may be adequate but in some cases smaller texture size (e.g., 512×512) might be needed.)
  • ≥1 GB VRAM : Use the Standard Quality settings from the figures below for the HRDLC being used. Some users will find that using textures from the Hi-Res DLC Optimized mod are needed to limit VRAM use, while for other users the High Quality settings can sometimes be used (this may require later experimentation with selecting different texture sizes during optimization for other mods used in the game), especially when using ENBoost and SKSE 1.7.1" (which includes Skyrim memory patch 3.0). The resolutions of textures used from the mods in the STEP Conflicting Graphics section are usually more important in limiting VRAM usage than the resolutions of textures used from the HRDLC.
  • ≥2 GB VRAM : Use the High Quality (or Very High Quality settings for higher end systems such as ones with >2Gb VRAM) settings from the figures below; use of reduced resolution (1K×1k) with exterior tangent space normal map textures is often desirable and also on some exterior color maps with mods loaded in the game. In some cases Very High Quality settings can be used for the Vanilla Textures.

Once complete, the "Working" directory structure should be updated to (none of these folders will be empty):

Working
Vanilla Extracted
Dawnguard (optional)
Dragonborn (optional)
Hearthfires (optional)
HRDLC1
HRDLC2
HRDLC3
STD
Vanilla Ordinary Textures
Dawnguard (optional)
Dragonborn (optional)
Hearthfires (optional)
HRDLC1
HRDLC2
HRDLC3
STD
Vanilla Normal Maps
Dawnguard (optional)
Dragonborn (optional)
Hearthfires (optional)
HRDLC1
HRDLC2
HRDLC3
STD
Vanilla Body Textures
Dawnguard (optional)
HRDLC1
HRDLC3
STD
Vanilla Exterior Textures
Dawnguard (optional)
Dragonborn (optional)
Hearthfires (optional)
HRDLC2
HRDLC3
STD
Vanilla Exterior Normal Maps
Dawnguard (optional)
Dragonborn (optional)
Hearthfires (optional)
HRDLC2
HRDLC3
STD
Vanilla Optimized
STD
HRDLC3
Working Folder Screenshot after Pre-optimization

At this point in the processing the file and subdirectory counts should match those in the corresponding folders in the 'Working Folder Screenshot after Pre-optimization.figure.

This batch processing program uses the Robocopy program which has been installed in Windows by default since Windows Vista. It is available for Windows XP as part of the free Microsoft® Windows® Server 2003 Resource Kit Tools (english language version; it is also available for other languages). Alternatively XXCOPY can be substituted for Robocopy; it supports the same syntax and is free for personal use.

Optimize the Vanilla Textures

The DDSopt batch scripts clean up and distribute the vanilla textures into several type folders to aid optimization in as few passes as possible. This infers that each separate texture-type folder may be treated differently. In general, uncompressed textures are optimally converted to the DDSopt-custom R5G6B5 uncompressed format, and this is particularly true for 'bumpy' normal maps. This reduces normal map size by 1/3 or color maps by 1/2. Compressed textures cannot be uncompressed, but they are often compressed in a wasteful DirectX (DXT) format, so DDSopt converts these accordingly.

Info-Logo.png      Notice:The bit below is under revision and parameters/images may not be final. A first step is to define the classes of textures within each of the distributed folders created by the batch script ... that work is underway, so stay tuned.

The constraint settings translate as follows:

Note that the largest vanilla textures are 2K×2K, and that there are only 10 vanilla tangent space normal maps that are 2K×2K
  • Very High Quality (VH):
    • 2Kx2K resolution cap for both compressed and uncompressed textures
    • Uncompressed textures converted from X8R8G8B8 to R5G6B5 uncompressed format (reduces size by 1/3 without perceptible quality loss)
    • Compressed textures converted to 'best' DirectX (DXT) format
  • High Quality (H):
    • 2Kx2K resolution cap for most of both compressed and uncompressed textures
    • 1K×1K resolution cap for exterior tangent-space normal maps
    • Uncompressed textures converted from X8R8G8B8 to R5G6B5 uncompressed format (reduces size by 1/3 without perceptible quality loss)
    • Compressed textures converted to 'best' DirectX (DXT) format
  • Performance Quality (P):
    • 2Kx2K resolution cap for non-exterior color maps and body-related textures
    • 1Kx1K resolution cap for most of both compressed and uncompressed textures** 1Kx1K resolution cap for exterior tangent-space normal maps.
    • Uncompressed textures converted from X8R8G8B8 to R5G6B5 uncompressed format (reduces size by 1/3 without perceptible quality loss)
    • Compressed textures converted to 'best' DirectX (DXT) format
    Note that 512×512 cap is recommended for exterior tangent-space normal maps to increase performance even further

Recommended DDSopt Constraint Menu Settings for Optimizing the Vanilla Textures

  • Body (P, H, VH); Ordinary & Exterior Normal Maps (H, VH))

    Body (P, H, VH); Ordinary & Exterior Normal Maps (H, VH))

  • Ordinary (P); Exterior Normal Maps (P, H)

    Ordinary (P); Exterior Normal Maps (P, H)

  • Exterior (H, VH)

    Exterior (H, VH)

  • Exterior (P)

    Exterior (P)


With the availability of ENBoost and SKSE 1.7.1" (which includes Skyrim memory patch 3.0) that dramatically improves memory management in Skyrim, Skyrim has a significantly better capability to handle large textures. Many users should now be able to use higher quality profiles from the above list than were previously feasible.

For all options, the DDSopt constraints tab parameters shown for uncompressed textures use lossless uncompressed parameters option. This format is used for all texture categories except exterior textures, since this folder includes a large set of terrain textures for which the compressed DXTx format parameters provide additional texture size reduction (without any problems that have been reported).

There is also a more comprehensive discussion of the DDSopt maximum resolution size options including rationale in the section, Optimizing the STEP Mods.

Using an SSD to Reduce Processing Time

Before step 1, create an additional Working directory on the SSD and move or copy the Vanilla Optimized and the other directories to the SSD Working directory. If the automated archiving batch file is being used, copy "3_Compress_Vanilla_7z.bat", "7za.exe", and "7-zip.chm" to the SSD "Working" directory. Run that copy of the "3_Compress_Vanilla_7z.bat" batch file for step 13. When the optimization is complete and the optimized textures have been moved, all of the temporary directories can be deleted.


  1. Launch DDSopt if it is not already running, and--unless experimenting--ensure that the application is configured according to the screenshots in the Using DDSopt tab.
  2. Click [Ignore] from the main menu and untick [Copy unprocessed and ignored files (passthrough)] if it is ticked.
  3. In the [Browser] tab, click [Browse] in the upper window.
  4. If the file type box in the lower right doesn't "All Documents (*).(*)" change it so this shows.
  5. As the initial source folder, select the Vanilla Ordinary Textures directory
  6. Tick the [Show Recursive] checkbox below the center text box.
  7. In the lower window click [Browse] and select the Vanilla Optimized directory as the current destination.
  8. Examine the Constraints Tab in DDSopt (see the sidebar in the section above to decide between High or Standard Quality) for the Ordinary Textures and make sure the Constraints Tab settings match the Ordinary & Exterior Normal Maps (H,VH) settings for using the H and VH quality, and the Ordinary (P) settings for those using the Performance quality.
  9. Click [Process] to begin optimizing the textures from Vanilla Ordinary Textures into corresponding locations under Vanilla Optimized.
  10. When this processing is complete, using the same procedure choose Vanilla Normal Maps as the current source in the upper window of the Browser Tab and again Vanilla Optimized remains as the current destination (lower window).
  11. The Constraints Tab settings do not need to be changed for this optimization step.
  12. Click [Process] to begin optimizing the textures from Vanilla Normal Maps into corresponding locations under Vanilla Optimized.
  13. When this processing is complete, using the same procedure choose Vanilla Body Textures as the current source in the upper window of the Browser Tab and again Vanilla Optimized remains as the current destination (lower window).
  14. Change the Constraints Tab settings to match the Body (P,H,VH) settings (same for all quality choices).
  15. Click [Process] to begin optimizing the textures from Vanilla Body Textures into corresponding locations under Vanilla Optimized.
  16. When this processing is complete, using the same procedure choose Vanilla Exterior Normal Maps as the current source in the upper window of the Browser Tab and again Vanilla Optimized remains as the current destination (lower window).
  17. Change the Constraints Tab settings to match Ordinary & Exterior Normal Maps (H,VH) settings for VH quality, or the Exterior Normal Maps settings (P,H) settings for the H and P quality choices. For some systems using performance quality settings changing the max resolution limit to 512x512 may be preferred.
  18. Click [Process] to begin optimizing the textures from Vanilla Exterior Normal Maps into corresponding locations under Vanilla Optimized.
  19. When this processing is complete, using the same procedure choose Vanilla Exterior Textures as the current source in the upper window of the Browser Tab and again Vanilla Optimized remains as the current destination (lower window).
  20. Change the Constraints Tab settings to match the Exterior (H,VH) settings for the VH or H quality choice, or the Exterior (P) for the Performance quality choice.
  21. Click [Process] to complete the optimization.
  22. Change the [Constraints] tab settings back to the default values.

After running the optimization and playing the game for a while, if the graphic card processor and VRAM use seems too high (or too low) the optimization can be redone and different choices can be made for the constraints tab settings. Often, however, the graphic card processor and VRAM use is affected more by the textures from the mods being used than by the vanilla textures.

Archiving the textures

Use 7z, WinZip, WinRar or any compression application to package into a *.7z, *.zip or *.rar archive. The archive package can then be dropped into the "Bash Installers" directory and installed (if using Wrye Bash) or the "Mod Organizer\downloads" if using Mod Organizer. If 7z compression is used to archive textures (or other files for Skyrim) the non-solid option should always be chosen and LZMA2 compression chosen which allows multiple cores to be used. Non-solid compression may slightly increase the size of the archive file, but the benefit is huge when (un)installing upstream packages, which can include re-unpacking from the huge vanilla archive; the result is the extraction goes much faster. In order to use these options in 7zip, when using the 7zip right click context menu select the Open Archive option and the options will be shown in the GUI. Note that if textures are optimized the UHRP files, and many other BSAs as discussed in the BSAs vs. loose files sidebar, also need to be extracted from the BSA and used as archived set of loose files (vs. leaving the UHRP and the other files as BSAs).

When the DDSopt vanilla texture optimization is complete, the "STD" and "HRDLC" folders in "Vanilla Optimized" should have the same number of files and folders as the corresponding folders in "Vanilla Extracted" that were present after running the HRDLC repair. The sizes and number of files/folders for all the directories used in vanilla optimization are shown in the figure below. Note that the sizes of folders in "Vanilla Optimized" depends on the DDSopt parameters used, so this may vary across users. Also, as mentioned above, most of the files in the DLC folders in "Vanilla Extracted" are not textures so they are not copied to the any of the other folders. They remain in the DLC BSAs, of course, and Skyrim gets these resources during the game from the DLC BSAs.

Working Folder Screenshot after Optimization.









Archiving or Moving the Optimized Vanilla Textures

'Repackaging Resources into BSAs

To move the optimized textures back into BSA(s), the safest way is to use Archive.exe which is part of the Creation Kit (see the BSA Extraction and Optimization Guide for details).
DDSopt can be used, but there are sometimes problems when doing this. DDSopt can be used by setting [Ignore] > [Don't process any of the know file types] and pointing the output to YourOutputPath\YourFileName.bsa. This is not recommended for the four vanilla BSAs that contain only textures, as then BSA(s) will need to be registered in Skyrim.ini, and this option is more complicated. Using the recommended approach for the addon DLC BSAs, the DLC BSAs are not moved from Data directory. Instead the textures are extracted, and the optimized versions of these DLC textures are stored as archive files similar to those of HRDLC. The primary contents of the DLC BSAs are resource types other than textures. The ideal approach would be to optimize the textures and replace them in the DLC BSAs; unfortunately Skyrim has problems when that is done (e.g., CTDs in various places in Skyrim). We don't really understand the cause. The default compression level used by DDSopt is higher than that used for the Bethesda files, but even if the DDSopt compression level is changed to the same level as Bethesda uses there are apparently still problems.

The 1-7 optimized vanilla texture folders inside Vanilla Optimized\ can be archived or moved to where Mod Organizer or Wrye Bash will use them. Archiving is quite time-consuming, so some users prefer to move them rather than archive them. If Mod Organizer is used move the 1-7 folders inside Vanilla Optimized\ to the directory where Mod Organizer stores mods (the Mod Organizer\mods\ folder); if Wrye Bash is used they can be moved to the Bash Installers\ folder.

Some users prefer to put these optimized textures into an archive file to ensure that the original unaltered copy of the optimized textures is available in case there are future problems with the copy used by the mod management program.

    If the textures are archived
  1. Package the contents of the 1-7 directories in Vanilla Optimized into ...
    ... (recommended) 1-7 archive files corresponding to each vanilla BSA with optimized textures,or
    ... a single "complex BAIN archive" file if using Wrye Bash as discussed in the Archiving the textures sidebar.
  2. This can be done manually or, optionally, using the 3_Compress_Vanilla_7z_2.75.bat batch file which allows the process to complete fully unattended. and produces one 7zip archive file for each vanilla BSA with optimized textures as in the first example above. Processing can take quite a while especially if the files are not on an SSD.
  3. The 3_Compress_Vanilla_7z_2.75.bat' file when run creates one 7zip archive file for each vanilla BSA with optimized textures, and puts these optimized archive files in the "Working" directory.
  4. These archive files should be moved to the folder used by the mod manager (Mod Organizer or Wrye Bash) being used (typically the Mod Organizer\downloads folder for Mod Organizer or the Bash Installers folder if Wrye Bash is used. If the optimized STD archive file is being used, it should be the earliest of these optimized texture archives in installation order (highest in the left window (lowest relative priority) with Mod Organizer or highest in the list in the "Installers" tab in Wrye Bash relative to the other optimized archives). Any optimized DLC texture archives would be next, followed by any archive files for HRDLC textures. Details of the proper installation order can be found in the detailed instructions on the DLC Mod pages on the STEP Wiki
  5. After installation, with Mod Organizer the esp plugins for any HRDLC that now have an archive file of optimized textures should be unchecked in the "plugins" tab in the right window. The esm plugins for any DLC should remain checked. With Wrye Bash, esp plugins for any HRDLC that now have an archive file of optimized textures should be unchecked in the "Mod" tab while the esm plugins for any DLC being used remain checked. With Wrye Bash, the esp plugins for the HRDLC can optionally be moved out of the Skyrim\Data folder as mentioned below; if this is done these HRDLC esp plugins will not show up in the "Mods" tab.
  6. With Mod Organizer the original vanilla BSAs are left in place and MO takes care of them. If Wrye Bash is used for mod management it is recommended that the original Skyrim - textures and HRDLC BSAs (any DLC BSAs being used are left in their original location) are moved into a new folder (e.g., "Original Vanilla BSAs") outside the Skyrim directory. The HRDLC esp plugins can optionally be moved to this same folder. This avoids the need to re-download these BSAs and esp plugins if there are problems, as mentioned in the BSA Extraction and Optimization guide.
  7. After all archives have been created and confirmed, the entire Working Directory can be deleted to reclaim roughly 50 GB of drive space (if all 7 optimized folders are created). Some users might want to also save the "Vanilla Extracted" folder on a hard drive.

Optimization Products

At the beginning of this optimization process, the Data directory included a number of vanilla BSAs (these are not changed during optimization):

  • Skyrim - textures.bsa,
  • 3 HRDLC BSAs containing textures,
  • addon DLC BSAs (if there are any) containing a mixed set of resources, and
  • 8 additional Skyrim BSAs each containing a different resource type.

If the recommended choices were followed then the Data Directory isa unchanged.

If Wrye Bash used, there is also potentially now an Original Vanilla BSAs folder, located somewhere outside the Skyrim directory, that has some copies of the original vanilla BSAs:

  • Skyrim - textures.bsa, and
  • 3 HRDLC BSAs containing textures.

If "Wrye Bash" is used, there are 1-7 archive files (in 7zip, zip, or rar format) containing the optimized textures originally located in Skyrim - textures.bsa, the 3 HRDLC BSAs (if these were optimized), and any addon DLCs. These files are typically in the "Bash Installers" folder.

If "Mod Organizer" is used, there are 1-7 archive files (in 7zip, zip, or rar format) containing the optimized textures originally located in Skyrim - textures.bsa, the 3 HRDLC BSAs (if these were optimized), and any addon DLCs. The file names for the archive of optimized textures for any addon DLC are different than those of the original BSAs. These files are in the input folder used by "Mod Organizer" (e.g., "Mod Organizer\downloads").


Texture Fixes

There are two additional vanilla textures that are broken in the standard vanilla textures due to improper compression, and DDSopt does not seem to take care of them... yet. These are textures\architecture\solitude\smanhole.dds (manhole covers in Solitude) and "textures\landscape\roads\roaddetails01.dds" (road lining along bridges). Since they are included in the Unofficial Skyrim Patch (USKP), the two broken textures will be overwritten so this will not be a problem.

In addition, the Dawnguard textures\dlc01\architecture\snowelfruins\seruinsmarble01_n.dds texture is bad; the correct version is available in "textures\dlc01\architecture\snowelfruins\seruinsmarble01_n.tga". Since this is fixed by the Unofficial Dawnguard Patch, which also fixes many other problem textures, it does not be to be fixed here.


STEP recommends using Skyrim with the optimized vanilla textures for a while before optimizing mods.

Optimizing the STEP Mods

This section discusses optimizing textures in mods such as the STEP mod textures discussed later in this guide. It is intended for intermediate and advanced users; a number of the comments included expect an understanding of issues in texture optimization. Explanations are included since it is often difficult to decide whether or not to optimize a mod, and if so what parameters to use. The value in optimizing textures in other mods varies significantly depending on the capabilities of the system and the number and complexity of the mods being used. STEP recommends using Skyrim with the optimized vanilla textures for a while before optimizing mods.

The section includes automated tools to assist in mod optimization. The basic process in these tools is similar to that used for the vanilla textures. The tools are designed to work with sets of mods to help reduce the effort required to optimize. Optimization can potentially be quite useful with mods where, unlike those in the STEP guide and packs, high quality textures weren't as important as other aspects of the mod.

Introduction and Background

    The previous two tabs in this guide discuss using DDSopt with the texture files provided by Bethesda. This tab and the next one discuss using DDSopt with mods created by the user community, in particular those in the STEP mod list and STEP packs. Note that the procedures described below are intended for use with all Skyrim mods, not just STEP guide and pack mods. For optimization purposes mods can be categorized into 5 types:
    1. Mods for which DDSopt use isn't recommended unless additional texture size reduction is needed: typically these are mods that are already optimized or would not be improved by DDSopt. For the STEP guide mods the second column in the STEP Mod Texture table in the next tab has NO if DDSopt use isn't recommended.
    2. Mods for which selective optimization (different DDSopt parameters for different texture types) isn't needed or isn't feasible (e.g., mods that include multiple resolution versions and a fomod/wizard for selecting the desired resolution), or that get improved quality mipmaps from DDSopt optimization but otherwise don't don't gain any noticeable improvements.
    3. Mods that include exterior textures (textures in the architecture, landscape, and terrain directories): Reducing the size of the tangent space normal maps (textures with names ending in "_n.dds"), or both normal map and color map exterior textures is the easiest way to reduce VRAM use without noticeable graphic quality loss. Note than many of the large mods with exterior textures provide different texture resolutions. If the mod author provides lower or higher resolution textures it is usually better to use these vs. using DDSopt to provide reduced resolution; DDSopt is then used when these are not available
    4. Mods with normal maps: Normal map textures, especially tangent space normal maps, can often be reduced to a lower resolution than the associated color map textures without much graphic quality loss. Doing this reduces VRAM use in some cases.
    5. Mods with uncompressed textures: uncompressed textures will be converted to compressed textures if they are optimized along with compressed textures using the DDSopt "Constraint" tab settings intended for compressed textures (when DDSopt is initially started after installation it will have these values). Uncompressed textures have better quality than compressed ones, and converting them to compressed textures can cause noticeable quality loss. If size reduction is needed for these textures to improve game performance they should be still be kept as uncompressed textures. Many mods with body-related textures provide some uncompressed textures to ensure graphic quality, and these should typically not be optimized with the same parameters as are used with the compressed textures.
    If any testing is done to compare performance gain/loss vs graphic quality gain/loss using normal map size reduction, or other techniques, please post the results in the DDSopt and Texture Optimization forum so the guide can be improved.

    Organizing the Mod Textures for Selective Optimization

    Current Overall Recommendations for Selective Optimization of Mod Textures

    • to reduce VRAM use optimize exterior tangent space normal maps, and color maps if necessary, with the constraint menu resolution limit set to half of the value used for ordinary color map textures;
    • optimize non-exterior normal maps at either the same resolution limit value used for non-exterior (ordinary) color maps or at half this value; note that VRAM usage doesn't drop much when doing this.
    • don't reduce the size of textures that are 512×512 or smaller (except for DDSopt collapsing of monocolor textures to save space); and
    • when optimizing uncompressed textures don't change them to compressed, consider changing format from lossless to lossy vs. reducing texture size, and be particularly careful with any changes to model space normal maps (files with names of the form *_msn.dds) and textures in textures\actors\character and any other *\actors\characterdirectories containing textures. These directories often contain a mix of compressed and uncompressed textures.

    It can be fairly tedious to manually optimize the STEP mods using DDSopt, especially for mods in the last three categories mentioned above, since different constraint menu processing parameters are used for different texture types to ensure that the optimized textures retain as much quality as possible when their size is reduced. This has been the major complaint about using DDSopt - it can be tedious to use and it isn't easy to know what processing parameters to use for the optimization. Fortunately, it is now possible to optimization a large set of mods at the same time without as much tedious effort. A batch file, 4_Mod_Sorting_Pre-optimization_2.73.bat, has been developed to simplify optimizing the textures in mods, and processing parameters to use with these batch files are available in screenshots in this section. The batch file is similar to the one used for vanilla textures in that it will sort the textures in mods into different folders, each of which is optimized separately with DDSopt so that different DDSopt processing parameters can be used with each texture category if desired. It is available in the same archive file that includes the batch files used for vanilla textures.



    Follow the steps below to use the batch files. The processing in the batch files could also be done manually using filters in DDSopt while optimizing the textures, expanding on the steps used in Example 2 in Using DDSopt, but it would likely be quite tedious to do this.


    Note about Uncompressed Texture Files, Body textures and the Batch file

    The body-related textures (textures in "character" folders and subfolders) are separated out by the batch file since these textures are particularly sensitive to optimization parameters. Uncompressed body textures can sometimes be corrupted when reducing resolution; changing format to a different precision doesn't seem to cause problems. The batch files currently mix compressed and uncompressed textures and use the built-in capability of DDSopt to optimize these simultaneously without converting all the uncompressed textures to compressed. Note that this requires that the "Constraint" tab format settings are set to an uncompressed format. If a compressed format is specified in the "Constraints" tab then all uncompressed textures are converted to compressed!

    First, extract the mod files into folders in the Mod Extracted directory in the Working directory,with one folder per mod. Put as many mods as desired in the Mod Extracted. The batch file is designed to handle multiple mods simultaneously; optimizing multiple mods simultaneously reduces the large number of tedious steps otherwise needed to optimize a large set of mods. Don't put in any mods that are already sufficiently well optimized or for other reasons don't benefit from texture optimization. Any mod in the STEP Mod Texture Properties table in this tab with No in column 2 should not be further optimized unless there is need to reduce texture sizes; even then it may be better to avoid additional optimization if possible.

    All textures need to be extracted from any BSAs in the mod. If BSA(s) present have a substantial amount of non-texture data present it is best to leave these in the mod folder after extracting the textures (as was done with the vanilla DLC BSAs). If texture files are the bulk of the BSA it is best to fully extract the files from the BSA and then remove the BSA from the extracted mod folder.

    The instructions in the rest of this subsection use a batch file to initially separate the textures from mods into 3-5 folders. The optimization steps in the next subsection using DDSopt recombine optimized versions of these textures into individual mod folders in a new Mod Optimized directory created by the batch file. The resulting mod folders in Mod Optimized are then archived and used with mod management programs instead of the original unoptimized version of each mod.


    Additional Batch File Capability

    The batch file has one additional capability, although users might prefer to bypass this capability when initially using the batch file as it adds some complexity. A few mods with a mix of exterior and non-exterior textures are available in multiple versions, each with a different maximum texture resolution. The STEP guide shows which STEP mods are available at multiple resolutions. Current STEP mods with a mix of exterior and non-exterior textures and different resolutions are:
    • Serious HD Retexture,
    • Skyrim HD,
    • Trees HD, and
    • Mushroom Retexture Pack.

    With these mods the batch file can take the exterior textures from a version of the mod with lower resolution textures and the rest of the textures from a version of the mod with higher resolution. This eliminates the need to use DDSopt to reduce the resolution of the exterior textures for these mods; instead, textures provided by the mod author are instead used which presumably will have better quality. While the four mods above may seem like a small set, they account for well over half of all the exterior textures in the STEP mod list (not counting textures from Skyrim Realistic Overhaul for which the available version already includes optimized textures).

    To use this feature, create two new directories in the Working directory, Higher Res Mod Files and Lower Res Mod Files. Extract the higher resolution version of the mod(s) into the Higher Res Mod Files folder, and the lower resolution version of the mod(s) into the Lower Res Mod Files directory. Use the same names for the folders with the high and low resolution versions of the mod so their will automatically be recombined after optimization. For these mods nothing needs to be extracted to the Mod Extracted directory.
    1. If this has not already been done, download the Batch Files for DDSopt guide referenced at the top of the page. This archive contains multiple batch files and a command line version of 7-zip; these are used to automate some of the processing associated with this guide. For this processing "4_Mod_Sorting_Pre-optimization_2.75.bat" is used.
    2. If this has not already been done, Extract the customized batch files including 7zxa.exe into the Working Directory (see previous section) adjacent to \Mod Extracted.
    3. Run the 4_Mod_Sorting_Pre-optimization_2.75.bat batch file. At the start of the batch file several tests are run to make sure the batch files are in the right folder and the folder structure is correct. The results of these tests are shown in the command window. If everything is OK then hit enter to proceed, and again after the next set of tests complete.
    4. Soon after starting the batch file will ask "To separate external textures from other textures enter "Y" at the prompt". If the user has a mix of exterior and non-exterior textures in the mods being optimized, and the user wants to have all the exterior textures in separate folders so they can be optimized with a lower resolution limit (the typical situation) then the input should be Y. After entering this the batch file will continue running, providing output to the command window showing which batch file step is in process.
    5. When the batch file has completed running it will put The batch file processing is complete. Check the log file (log.txt) for errors. on the command window. As noted in the command window, ignore any errors in the log file with ERROR level of 3 or less as these are normal for this particular batch file.


    Once the batch file has completed processing, the Working Directory structure should have been updated to (none of these folders will be empty):

    Working Directory
    Mod Extracted
    (one folder for each mod that has been extracted)
    Mod Optimized
    (one folder for each mod being optimized)
    Mod Ordinary Textures
    (one folder with for each mod being optimized that has textures)
    Mod Normal Maps
    (one folder with normal map textures for each mod being optimized that contains normal map textures)
    Mod Body Textures
    (one folder with body-related textures for each mod being optimized that contains body-related textures)

    If Y was entered to the question of separating exterior textures, there will be two additional folders

    Mod Exterior Textures
    (one folder with exterior textures for each mod being optimized containing exterior textures)
    Mod Exterior Normal Maps
    (one folder with exterior normal maps for each mod being optimized that contains exterior normal map textures)

    If any multi-resolution mods were used there will be two additional folders

    Higher Res Mod Files
    (one folder with the higher resolution extracted version of each multi-resolution mod being optimized)
    Lower Res Mod Files
    (one folder with the lower resolution extracted version of each multi-resolution mod being optimized)


    Optimizing the Mod Textures

    Non-square textures

    Note that DDSopt isn't always able to resize some of the non-square textures. This seems to happen particularly with some of the landscape textures. If DDSopt can't resize a texture it notes this in the log. When this happens there is nothing a user can do; it isn't a problem with the run setup. Across a large set of mods the total number of textures that can't be optimized is quite small, so it is probably not something to worry about.

    As was done with the vanilla textures, separating mod textures into color maps and normal maps is desirable since different DDSopt processing parameters are used for these texture types. Few Skyrim mods provide uncompressed normal maps, but when available they should be processed with different DDSopt constraint tab parameters, as was done for optimizing the vanilla textures. Separating the exterior textures, when present, from the other textures in the mod is also useful so that a different maximum resolution can be used for these. There are game stability tradeoffs between keeping more of the color map textures, especially exterior ones, at a higher resolution and the use of graphic effects plugins (e.g., Enhanced Blood Textures, Burn Freeze Shock Effects) that have high short duration VRAM and CPU use. Mods with high short duration script engine use can also impact game stability, and their use can affect how much VRAM the game can effectively use. As mentioned previously, these settings are maximum values, and DDSopt will only reduce the resolution of textures that are larger than these settings.


    Recommended DDSopt Constraint Menu Settings for Optimizing STEP Mod Textures

    • V1: Very High Quality, Ordinary textures

      V1: Very High Quality, Ordinary textures

    • H1: High Quality, Ordinary textures

      H1: High Quality, Ordinary textures

    • S1: Standard Quality, Ordinary Textures

      S1: Standard Quality, Ordinary Textures



    The current recommended constraint menu settings for DDSopt are given below:

    • Very High Quality recommends up to 4K×4K resolution limit for non-exterior color map textures, 2K×2K exterior color map textures (4K×4K for a selected subset of exterior color map textures when feasible), 2K×2K Body-related textures (using 4Kx4K for the textures used for the head and body models can noticeably increase VRAM use), and 2K×2K resolution limit for normal map and exterior normal map textures (use 1Kx1K for exterior normal maps if exterior VRAM usage seems high);
    • High Quality recommends 2K×2K resolution limit for non-exterior color map textures, 2K×2K exterior color map textures (1K×1K for a exterior color map textures if VRAM use is too high), 2K×2K Body-related textures (use 1Kx1K if high VRAM use is seen when many NPCs are on screen), 2K×2K normal map textures for non-exterior textures in "Mod Normal Maps", and 1K×1K maximum resolution exterior normal map textures;
    • Standard Quality recommends 1K×1K resolution limit for non-exterior color map textures. 1K×1K maximum resolution exterior color maps (512×512 if VRAM use is too high), 1K×1K Body-related textures, and 512×512 maximum resolution normal map and exterior normal map textures (1K×1K for a selected subset of normal map textures in "Mod Normal Maps" when feasible). Many users of the standard quality parameters, depending on monitor resolution and system capability and the number of textures provided by mods, can use larger resolution limit parameters especially for the non-exterior textures.

    With the availability of ENBoost and SKSE 1.7.1" (which includes Skyrim memory patch 3.0) that dramatically improves memory management in Skyrim, Skyrim has a significantly better capability to handle large textures and textures used for short term effects. Many users should now be able to use higher quality profiles from the above list than were previously feasible.

    For all options, the DDSopt constraints tab parameters use the lossless uncompressed format parameters. These allow DDSopt to properly handle the various uncompressed texture formats. DDSopt also handles compressed textures properly when these formats are chosen in the "Constraints" tab. To avoid any potential quality problems the recommended values for body-related textures generally use full precision and size since these textures, especially uncompressed textures, can easily be corrupted when reduced in size. The uncompressed color map textures are typically saved at the same resolution as the other color maps, and it is usually easiest to save the uncompressed normal maps at this same resolution.

    Using an SSD to Reduce Processing Time for Mod Optimizion

    Using an SSD is less important with Mod optimization than it was with vanilla texture optimization. The number of textures in mod sets is typically much smaller than those in the vanilla texture.

    Before step 1, create an additional "Working" directory on the SSD and move or copy the Mod Optimized and Mod Ordinary Textures folders to the SSD "Working" directory. In steps 2 and 4 select these vs. the ones on the HDD. After step 6 this Mod Ordinary Textures folder can be moved or deleted. Then move or copy the Mod Normal Maps folder to the SSD and use this folder in step 7. After step 9 this Mod Normal Maps folder can be moved or deleted. Then move or copy the Mod Mixed Uncompressed Textures folder to the SSD and use this version in step 9. When step 12 is complete move or delete this Mod Mixed Uncompressed Textures folder. If separate processing of exterior textures is used, move or copy the Mod Exterior Textures folder to the SSD and use this folder in step 14. When step 16 is complete move or delete the Mod Exterior Textures folder. Move or copy the Mod Exterior Normal Maps folder to the SSD and use this folder in step 17. When step 19 is complete move or delete the Mod Exterior Normal Maps folder.

    If the optimized mods are being archived and the automated archiving batch file is being used, copy "5_Compress_Mods_7z_2.71.bat", "7za.exe", and "7-zip.chm" to the SSD "Working" directory. Run that copy of the "5_Compress_Mods_7z_2.71.bat" batch file for step 1 in the next list of steps. When finished move or delete the temporary folders. Using these steps the peak SSD use will be reduced to a minimum for this processing
    1. Launch DDSopt if it is not already running, and--unless experimenting--ensure that the application is configured according to the preceding screenshots. [Ignore] > [Don't process any of the known file types] should be un-ticked for the optimization.
    2. Click [Ignore] from the main menu and untick [Copy unprocessed and ignored files (passthrough)] if it is ticked, and tick [Don't process any already processed files (DDS only)] if it is unticked.
    3. In the Browser Tab, select the Browse button in the upper window and as the initial source folder, select the "Mod Ordinary Textures/" directory
    4. If it is not already checked, check the Show Recursive box below the center text-box.
    5. in the lower window select the Browse button and then select the "Mod Optimized/" directory as the current destination. The DDSopt Browser Tab will then show the mods being optimized that have ordinary textures.
    6. Examine the Constraints Tab in DDSopt (see the sidebar in the section above to decide between Very High (V), High (H), or Standard Quality (S)) for the Ordinary Textures and make sure the Constraints Tab settings match those in figure V1, H1, or S1, depending on the quality choice.
    7. Click [Process] to begin optimizing the textures from "Mod Ordinary Textures" into corresponding locations under 'Mod Optimized/'.
    8. When processing is complete, use the same procedure to choose Mod Normal Maps/ in the Browser Tab as the current source (upper window) while Mod Optimized/ remains the current destination (lower window). The DDSopt Browser Tab will then show mods being optimized that have normal maps.
    9. Change the Constraints Tab resolution limit settings to 2048×2048 (V and H) or 1024×1024 (S).
    10. Click [Process] to begin optimizing the textures from all sources under Mod Normal Maps/ into corresponding locations under Mod Optimized/.
    11. When this processing is complete, using the same procedure choose Mod Body Textures/ as the current source in the upper window of the Browser Tab and again Mod Optimized/ remains as the current destination (lower window). The DDSopt Browser Tab will then include mods with body-related textures.
    12. Change the Constraints Tab resolution limit settings can be left at the current values.
    13. Click [Process] to complete the optimization.
    14. When processing is complete, if Y was entered at the batch file prompt, continue; otherwise go to the paragraph after this set of steps.
    15. Use the same procedure as before to choose Mod Exterior Textures/ in the Browser Tab as the current source (upper window) while Mod Optimized/ remains the current destination (lower window). The DDSopt Browser Tab will then show mods being optimized that have exterior textures.
    16. Change the Constraints Tab resolution limit settings to 2048×2048 (V and H) or 1024×1024 (S).
    17. Click [Process] to begin optimizing the textures from all sources under Mod Exterior Textures/ into corresponding locations under Mod Optimized/.
    18. When processing is complete, use the same procedure as before to choose Mod Exterior Normal Maps/ in the Browser Tab as the current source (upper window) while Mod Optimized/ remains the current destination (lower window). The DDSopt Browser Tab will then show mods being optimized that have exterior normal maps.
    19. Change the Constraints Tab resolution limit settings to 2048×2048 (V), 1024×1024 (H), or 512×512 (S).
    20. Click [Process] to begin optimizing the textures from all sources under Mod Exterior Normal Maps/ into corresponding locations under Mod Optimized/.

    At this point the optimization is complete. The 3-5 temporary directories created earlier will still have folders with unoptimized textures, and the Mod Optimized directory will now have folders with optimized textures for all the mods that were extracted. The temporary directories will be the same as the list in the previous subsection, but the contents will be different since optimized textures have been added to the Mod Optimized directory. It is recommended that unless additional mod optimizations are taking place that the DDSopt settings be returned to values from the initial DDSopt setup.

    Archiving the Optimized Mods

    Mods with BSAs and Fomods when Mod Organizer is used

    Mod Organizer can use Fomods when installing mods, and frequently mods that include Fomods package resources in BSAs. These BSAs need to be unpacked before optimizing the textures. After the resources are unpacked and the textures are optimized, the resources including textures can be archived as described in the main description to the left or they can be repackaged into BSAs (using the same file names as the original BSAs) using DDSopt or BSAopt. The Fomods typically expect resources to be in BSAs, and repackaging the optimized textures along with other resources back into the original BSA format allows the Fomod scripts to work with Mod Organizer. MO will then install the mods and extract the contents of the BSAs. Since MO extracts the BSAs (vs. the Skyrim executable), this is an exception to the recommendation that loose files should always be used after optimizing textures.

    The next task is to package the contents of the mod directories in Mod Optimized/ into archive files corresponding to each mod folder. This can be done manually or, optionally, using the 5_Compress_Mods_7z_2.71.bat batch file from the Batch files for the DDSopt guide batch file referenced at the top of the page. As with the other batch files, this file should be installed the Working Directory. It expects the 7-zip archive program 7zxa.exe to also installed in the Working Directory. Processing can take a while especially if the files are not on an SSD. Using the "5_Compress_Mods_7z_2.71.bat" batch file allows the process to complete fully unattended and automatically create 7-zip archives of each individual mod, add "_opt" to the end of each mod file name, and move all the archived mods into a new Mod Optimized Archive directory.

    After a set of mods has been optimized, the content of all folders except Mod Optimized Archive need to be moved or deleted if the user want to optimize another set of mods. In addition, after all mods have been optimized and the archives of optimized mods have been created and confirmed, the entire Working Directory can be deleted to reclaim drive space. Some users might want to also save the Mod Extracted folder on a hard drive.

    STEP Mod Optimization Examples

    The purpose of this section is to provide several examples of optimizing mods to better show how this is done and the issues with mod optimization. This section includes detailed explanations for advanced users, but these can be ignored by other users who are just following the steps in the examples.

    Example 1: Optimizing Mods with Exterior Textures

    One of the main uses of DDSopt is to allow game performance improvement by reducing the sizes of selected texture types, thus reducing VRAM use, while maintaining as much graphic quality as possible. Exterior textures (textures in the "architecture", "landscape", and "terrain" texture folders) require the most VRAM. Reducing the size of exterior textures provides almost all of the improvement in VRAM use that can be achieved through optimization and texture size changes. The batch files for sorting mods can sort exterior textures into different folders than those used for other textures, simplifying the task of selectively optimizing the textures in a mod with different DDSopt resolution limit parameters for different types of textures.

    This example shows how to optimize all the mods in STEP 2.2.8 that include exterior textures. Most of these mods have both exterior textures and other textures.

    The mods in STEP 2.2.9 with exterior textures can be categorized into 4 categories.

    1. Mods for which DDSopt use isn't recommended unless additional texture size reduction is needed:
      • "Skyrim Realistic Overhaul" (recommended version is already optimized and landscape textures already have reduced size (1K×1K))
      • "Skyrim Flora Overhaul" (optimization can sometimes cause noticeable quality loss; many rectangular textures that DDSopt can't optimize; basic version can be used when needed to provide game performance improvement)
      • "Terrain Bump" (choose regular or performance version, little additional performance improvement feasible)
      • "Realistic Water Two" (optimized versions of this mod haven't been compared to the original versions yet; the alternative WATER mod doesn't seem to gain much VRAM reduction when optimized; several issues reported for WATER about optimization reducing quality)
      • "Enhanced Distant Terrain 2" (optimized versions not tested by STEP as selection of best textures is already difficult, little improvement in VRAM use when optimized)
      • "HD Enhanced Terrain and map snow" (optimized versions not tested by STEP as selection of best textures is already difficult, little improvement in VRAM use when optimized)
      • "Enhanced Distant Terrain - Earth" (optimized versions not tested by STEP as selection of best textures is already difficult, little improvement in VRAM use when optimized)
      • "Vivid Landscapes - Tundra Moss Revised" (already optimized by mod author)
    2. Mods for which selective optimization (different DDSopt parameters for different texture types) isn't needed or isn't feasible (e.g., mods that include multiple resolution versions and a fomod/wizard for selecting the desired resolution), or that get improved quality mipmaps from DDSopt optimization but otherwise don't don't gain any noticeable improvements:
      • "Improved Vanilla Mountains HD" (only 4 textures, optimized versions not tested yet)
      • "SMIM" (only a few external textures and STEP recommends the smaller sizes of these; optimized versions of these exterior textures haven't been tested)
      • "Real Ice" (All in one version has multiple resolutions in single archive file)
    3. Mods that include exterior textures for which reducing the size of the tangent space normal maps (textures with names ending in "_n.dds"), or both normal map and color map exterior textures can be used to reduce VRAM use without noticeable graphic quality loss:
      • "Hybrid's Plants & Herbs"
      • "Realistic Mushrooms"
      • "Serious HD"
      • "Skyrim HD"
      • "Trees HD" (using mod version created using STEP BCF)
    4. Mods with uncompressed textures:
      • "Visible Windows" (normal maps are uncompressed, texture size reduction yields only small effect on VRAM use since windows don't use much of the screen)

    The mods in category 2 can be optimized using the process described in Example 4 in Using DDSopt.

    There are 6 remaining mods in category 3 and 4 of this set that will be optimized, but several of them have large numbers of textures so this set has a fairly large set of textures. There are two approaches to using the batch files to optimize the textures in these mods.

    The first approach is compatible with any version of each mod; it isn't necessary to use the highest quality version. Extract the appropriate version (most of these mods have multiple versions) of the 6 mods in categories 3 and 4 above into subfolders in the Mod Extracted folder in the Working folder. Make sure to follow the detailed instructions on the STEP mod wiki page for Trees HD which will remove some of the texture files from the file, or wait and do this with Mod Organizer when installing the mod. The file tree screenshots shown below for this approach used the highest quality version of these 6 mods. Follow the 5 steps in "Organizing the Mod Textures for Selective Optimization" in the previous section using the 4_Mod_Sorting&Pre-optimization_2.73.bat batch file. When this is complete the file tree of the "Working" folder will look like the screenshot in "Approach 1 Figure 1".

    Then follow the detailed steps in "Optimizing the Mod Textures". For this approach of the example the High Quality Constraint Menu settings were used.

    Approach 2 makes use of the method described in a sidebox in the previous section. With the mods used in this example this approach is only useful when using 2K×2K versions of the non-exterior textures and 1K×1K versions of both the exterior color map and exterior normal map textures. Extract "Hybrid's Plants & Herbs" and the highest resolution version of "Visible Windows" to "Mod Extracted" as was done in Approach 1. For the other 4 mods extract the highest resolution version to subfolders in a new folder "Higher Res Mod Files" in the "Working" directory. Extract the next highest resolution version to subfolders in a new folder "Lower Res Mod Files" in the "Working" directory. "Trees HD" is the only mod with 3 versions; the lowest resolution was not used for this example. Follow the 5 steps in "Organizing the Mod Textures for Selective Optimization" in the previous section using the 4_Mod_Sorting_Pre-optimization_2.73.bat batch file. When this is complete the file tree of the "Working" folder will look like the screenshot in "Approach 2 Figure 1".

    Then follow the detailed steps in "Optimizing the Mod Textures". For this approach of the example the High Quality Constraint Menu settings were used except that exterior texture resolution limit was set to 1K×1K..


    Working Folder Directory Tree Screenshots for Example 1 Approaches, Counts of Files and Folder in each Directory

    • Approach 1 screenshot after batch file sorting

      Approach 1 screenshot after batch file sorting

    • Approach 1 screenshot after optimization is completed

      Approach 1 screenshot after optimization is completed

    • Approach 2 screenshot after batch file sorting

      Approach 2 screenshot after batch file sorting

    • Approach 2 screenshot after optimization is completed

      Approach 2 screenshot after optimization is completed



    When the optimization and archiving described in this example is complete, there is no longer a need to answer "Y" in the subsequent batch file runs with other mods when asked about exterior textures; this example included all the mods with exterior textures in the STEP guide. Moreover, any other STEP mods that are optimized with the batch files will not likely provide a substantial improvement in VRAM use.

    STEP Mod Texture Properties

    The purpose of this section is to provide key information on the textures in mods that are useful in deciding whether to optimize a mod and if so what parameters to use. Much of this information is not readily available. Eventually it is hoped that this information will be moved to the individual STEP Wiki mod pages. This page is intended for intermediate and advanced users.


    Example: Optimizing Real Ice

    The following example depicts how to set up DDSopt for a run on an extracted Wrye Bash BAIN repack of Real Ice (a mod with many options). DDSopt can be used in several ways, and below are some examples of its uses with this mod; however, the same process applies to any situation, be it mod, loose textures, BSA archives, or even the Skyrim directory itself. Before that, it is necessary to understand how to load textures into the program properly:

    1. Unpack the mod into its own directory (in this example, Real Ice is unpacked into a directory called "in").
    2. Run DDSopt and click on the [Browse] button in the top right corner of the Browser Tab (Figure 1).
    3. If the file type box in the lower right doesn't say "All Documents (*).(*)" or "DirectDraw Surface (.dds)", change it so one of these shows.
    4. Navigate to the folder location (in these examples, D:\Skyrim Mods\Mod_Working\DDSopt\in). Select the "in" directory and click on the [Use Folder] button. The folder structure will appear in the top browser pane (Figure 2).
    5. Click on the second [Browse] button located in the lower right corner of the Browser Tab and repeat step #2 but instead select the destination directory to where the processed textures (and corresponding folder structure) should be written (in this case, and "out" directory adjacent to "in"). If files are detected and "Show recursive" is selected, then there should be a list of files (including paths) of varying colors in the bottom pane (Figure 3).

    The same applies to running DDSopt using a BSA "directory" (remember, it is a file representing an archived directory) as source and destination:

    1. As the input source, be sure to first select from the file types dropdown menu, "Bethesda Software Archive (*.bsa)" (Figure 4). Any BSAs in the directory can now be selected. (Figure 5)
    2. As a destination, select any directory, or add a backslash followed by a file name (e.g., "\my bsa.bsa") to repackage as a BSA
    • <b>Figure 1.</b> Click on the [Browse] button at top right

      Figure 1. Click on the [Browse] button at top right

    • <b>Figure 2.</b> The source directory listing appears in the upper pane

      Figure 2. The source directory listing appears in the upper pane

    • <b>Figure 3.</b> The destination file listing appears in the lower pane

      Figure 3. The destination file listing appears in the lower pane

    • <b>Figure 4.</b> Select the *.bsa file type from the dropdown

      Figure 4. Select the *.bsa file type from the dropdown

    • <b>Figure 5.</b> Any existing BSAs can be selected now

      Figure 5. Any existing BSAs can be selected now

    Introduction

    This table shows key properties of the texture-containing mods in STEP 2.2.7 as well as those of some mods in previous versions of the STEP list. The mods from the Unofficial Skyrim Patch team are not included in this list since they are expected to already be adequately optimized. If the Unofficial High Resolution Patch (UHRP) is used, and the optimized HRDLC are used as archived loose files as recommended, the UHRP also needs to be used as an archived set of loose files (vs. using it as a BSA).

    Using DDSopt with foliage textures

    Based on recent testing, the suggested setting for [Behave] > [Raise foliage-map opacity each mip level] is checked for vanilla textures but unchecked for textures from STEP mods. Having this checked seems to cause a "painted look" with mods like Skyrim Flora Overhaul.

    STEP Mod Table Column Descriptions

    The data on STEP mod textures is contained in a table in the next tab in this guide. Each row in the table has information about one of the STEP mods with texture files, in the order in which they appear in the STEP guide. Like the STEP guide, this table has information relevant to computers running Skyrim with different computation and graphics hardware capabilities.

    DDSopt creates logs that include some properties of each texture file in the mod along with any changes that DDSopt makes to each texture file. These textures can be loose files or in a BSA archive. The first column in the table below contains summaries of the DDSopt logs for each mod in the STEP list as well as some additional data on each mod. The column is marked Yes if DDSopt Improved the textures by noticeably reducing the size of the textures or replacing missing mipmaps.

    The second column indicates whether DDSopt is recommended for use with this mod. It is marked No if DDSopt is not recommended, except to reduce texture size to values not available in the mod, because the original mod author has already done sufficient optimization of the textures.

    The third column indicates whether the mod has exterior textures (files in textures\architecture, textures\landscape, or textures\terrain). When VRAM reduction is needed these are usually the best candidates for size reduction, particularly the tangent space normal maps, since the highest VRAM use occurs when exterior textures are in use. Reducing the normal map texture size for this mod, if this is not already included in the mod, will typically provide a useful reduction in VRAM use without much loss of graphic quality.

    The fourth column indicates whether optimizing the mod is best done in several steps, each with different DDSopt processing parameters. This is typically true for mods with a mix of exterior textures and other textures, mods with at least one uncompressed texture, and mods that have normal maps that benefit from having different resolutions for normal maps and color maps. It is only marked Yes if it is recommended in column two that the mod be optimized. There isn't significant value in having different resolutions for color maps and normal maps with clutter and similar objects, for textures that are already at fairly low resolution, and for mods with only a single texture, so mods with only these types of objects don't typically benefit much from multi-step optimization.

    The fifth column, Maximum Resolution, provides information on the maximum resolution of the textures in each available version of a mod. It provides information about the size of textures in different versions of the mod that can be used to help decide whether to reduce the size of some of the mod textures. The column does not provide recommendations on DDSopt constraint tab parameters; there are recommendation in the previous tab on constraint tab max resolution values. If only a small portion of the textures are at max resolution the column will include the max point resolution of the bulk of the textures. When a mod has textures greater than 2K resolution the Notes column will include note 2, and when the mod has 2k textures in the lowest resolution version of the mod the Notes column will include Note 3. With Note 3, users with less than 2 GB VRAM will often use DDSopt for some mods to reduce the texture resolution of the mod textures to the size needed (e.g., 1K×1K). While most of the mods that have large collections of textures provide alternate texture sets at different resolutions, a number of the mods with smaller sets of textures do not. Performance effects from reducing texture size depend on the type of textures as well as its use (e.g., textures used for LOD (Level of Detail) generally provide limited performance improvements when reduced in size, tangent space normal map textures and exterior color map textures can sometimes provide improved performance without noticeable quality loss when reduced in size).

    STEP Mod Table Notes

    There are several comments on DDSopt processing that are specific to a portion of the mods; these are included in the comments column by note identifier. These are intended to be useful in deciding which mods to optimize with DDSopt and the DDSopt parameters used for this optimization.

    1. In this mod many of the normal map textures are uncompressed, providing improved graphic quality but potentially decreasing processing performance. Using DDSopt on this mod will thus compress the normal maps without significant loss of graphic quality. The resulting smaller map textures will improve processing performance. For mods with uncompressed normal maps the recommendation is to leave the normal maps uncompressed when using DDSopt. The format of the normal maps can be changed from R8G8B8 to R5G6B5 to gain a 33% savings in size; typically there is no noticeable change in the graphic quality when doing this format change. This is discussed in more detail here.
    2. This mod has some textures that are larger than 2K×2K resolution which can cause performance problems even with high end computers with graphics cards that have 2 GB or more VRAM. DDSopt can be used to automatically reduce the size of these textures to smaller resolutions to preserve game processing performance.
    3. This mod either has only one resolution version and that version has some textures with 2K resolution, or the lowest resolution version of this mod has some textures with 2K resolution. Users with computers that cannot handle 2K×2K texture resolution might want to run DDSopt on this mod to reduce the texture sizes to a value that the computer can use effectively with Skyrim. As mentioned previously, one useful option is to initially reduce the sizes of only the normal maps to see whether this yields sufficient performance improvement.
    4. all textures in this mod are uncompressed, and if feasible all the textures should remain uncompressed even if reduced in resolution. This is especially true for any normal maps and any face or body-related textures.
    5. Use the guidance and options list in the Skyrim Installation Guide HRDLC tab and on the HRDLC Optimized mod page along with earlier discussions in this guide to determine which options of this mod to install since the choices are system dependent.
    6. Using DDSopt to reduce the size of the tangent space normal maps (files ending in *_n.dds) in this mod to half of the resolution of the standard color maps, or using the normal maps from a lower resolution version of this mod, will likely lead to reduced VRAM usage without much graphic quality degradation.
    7. The normal maps included in this mod are already at half the resolution of the standard color maps; typically there is no need to make further changes in the format or resolution of the normal maps.
    8. This mod includes some color map textures with the same color in every pixel. DDSopt will collapse these textures into 1x1 textures to reduce the size of the texture and save VRAM. The game engine handles this properly and most graphic hardware also handles it properly, but some graphic hardware produces bad textures with some of these collapsed textures. When this occurs the original textures can be copied over the optimized ones in the mod archive files used with a mod manager, or optimization of these textures can be avoided when running DDSopt.
    9. This mod includes body textures used for character and/or NPCs. Some of these textures are sensitive to format and resolution changes, and some care must be taken whenever format and/or resolution is changed while optimizing these textures. If there are problems, there are usually posts in either the Support & Troubleshooting or Mod Anthology forums. When these problems are identified a note is added to this table.

    STEP Mod Optimization Recommendations

    The STEP guide already has recommendations on which version of a mod to use initially. The Maximum Resolution column is primarily useful after Skyrim is setup using the STEP guide and a user wants to make some changes to fine tune the installation

    • to reduce the resolution of the textures from a few mods to get a small performance improvement, or
    • to add some higher resolution textures to get better quality for some important objects.

    The table can be used to infer specific recommendations on which mods to optimize using DDSopt as per the comments in the last paragraph prior to the table. When Notes 2 or 3 apply most users will likely want to use DDSopt to reduce the resolution while optimizing the textures in the associated mod. There is almost always benefit in using DDSopt; even if the texture sizes are unchanged DDSopt recomputes an improved set of mipmaps. Some mods in the table are from previous versions of STEP.

    Info-Logo.png      Notice:The tables below include recommendations for using DDSopt to optimize a mod. These recommendations are based on using DDSopt to improve texture quality (or repair textures) without changing texture format or resolution. DDSopt is of course often used to change texture format and/or resolution, and for the vast majority of textures it does not introduce problems (artifacts, etc.). Whenever problems with texture reformatting or resizing have been posted in the STEP forums, comments are added to these mod tables noting the issues. Body textures, especially skin-related textures, are the most sensitive to such changes.

    The recommendations for each mod in the table are:

    • DDSopt use is strongly recommended if column 1 is Yes;
    • DDSopt use is recommended unless Column 2 is No (in which case it should be used carefully if used at all). For most of these mods DDSopt is used only to replace mipmaps with improved versions; and
    • DDSopt can be particularly useful for VRAM reduction with mods having a Yes in column 3 whenever the desired reduced texture resolution is not already provided by the mod.

    Note that the recommendations are based on comments from STEP forum participants and examination of DDSopt logs. There can be always be problems with textures after optimizing mods. If this happens post the problems in the DDSopt guide thread in "Support & Troubleshooting" or "Guides and Resources" and this DDSopt guide will be updated to note the problems.

    Table

    Mod DDSopt Improvement DDSopt Recommended Exterior Textures Multi-step Optimization Value Highest Texture Resolution in Mod Notes
    Fixes N/A N/A N/A N/A N/A '
    Consistent Older People No No No No 256×256 Note 4, Note 9
    Interface N/A N/A N/A N/A N/A '
    Lockpicking Interface Yes Yes No No 1K×1K '
    Race Menu Yes Yes No No 2K×2K (1 texture), 512×512 (rest) Note 9, Some users have reported problems when this mod is optimized (actors\character\overlays\default.dds)
    Skill Interface No No No No 4K×1K No noticeable value in optimizing textures used only for interfaces
    Conflicting Graphics N/A N/A N/A N/A N/A '
    Bethesda Hi-Res DLC Optimized No No Yes No 1204x1024 and 512×512 Note 5
    Ruins Clutter Improvement No Yes No Yes 2K×2K Note 3
    Realistic Smoke & Embers No Yes No No 2K×2K (High), 1K×1K (Medium) Note 1
    Ultimate HD Fire Effects No Yes No No 4K×4K (Ultra), 2K×2K (Med), 1K×1K (Low) '
    SkyFalls and SkyMills No Yes No No 1K×1K (1 texture) '
    Static Mesh Improvement Mod No Yes No No 1K×2K; some textures have optional higher resolutions of 2K×2K or 4K×4K. Note 8
    Serious HD No Yes Yes Yes 1K×1K (1024 version), 2K×2K (2048 version) Note 6
    Skyrim Realistic Overhaul No No Yes No 1K×1K (1024), 2K×2K (2048) Note 2, Note 3. Assumes SRO+DG_v1.6_Optimal_(1k-2k) version which is already optimized.
    HD Miscellaneous Items No Yes No No 2K×1K Note 3
    Tobe's Hi-Res Textures No Yes No No 1K×1K (1024 version), 2K×2K (full version) '
    Food & Ingredients Yes Yes No No 1K×1K (Performance repack), 2K×2K (Cumulative version) '
    Enhanced Distant Terrain 2 No No Yes No 256×256 '
    Quality World Map Yes Yes No No 1K×1K (DDSopt flattens 2 2K×2K textures) Note 8
    Landscape & Environment N/A N/A N/A N/A N/A '
    Skyrim Flora Overhaul No No Yes No 2K×2K Note 3, note 7 (for some of the textures)

    }

    AmidianBorn Caves No No No No 1K×1K (with compressed normal maps), 2K×2K (with 1K×1K uncompressed normal maps) Note 1, note 7 (2K×2K version only)
    AmidianBorn Solstheim Landscape No No No No 1K×1K (with compressed normal maps), 2K×2K (with 1K×1K uncompressed normal maps) Note 1, note 7 (2K×2K version only)
    Dragon Glyphs-Fixed No Yes No No 2K×2K Note 3
    HD Enhanced Terrain and map snow No Yes Yes No 1K×1K (1K version), 2048×2048 (2K version) New version (PRO) available but not tested yet
    Enhanced Distant Terrain - Earth No No Yes No 1K×1K (1K version), 512×512 (512 version) '
    Enhanced Night Skyrim No Yes No No 1K×1K '
    Footprints No Yes No No 256×256 '
    HiRes Road Signs No Yes No No 1024×512 '
    HQ Snow No Yes No Yes 2K×2K (2048), 1K×1K (1024) '
    Hybrid's Plants & Herbs Yes Yes Yes Yes 1K×1K '
    Improved Vanilla Mountains HD No No No No 2K×2K Note 3
    Legible Road Signs No Yes No Yes 1K×512 '
    Moss Rocks No No No No 2K×2K (normal version), 4K×4K (4096×4096 version) Note 2
    Real Ice Yes Yes Yes Yes 1K×1K or 2K×2K can be selected (All-in-one) Note 6
    Realistic Mushrooms Yes Yes Yes Yes 2K×2K (standard version), 1K×1K (low res version) Note 3
    Realistic Tundra Moss Yes Yes Yes Yes 1K×1K (1K version), 2K×2K (2K version) '
    Re-Defined Dungeons Yes Yes No Yes 1K×1K (1K version), 2K×2K (normal version) Note 6 (perhaps, not tested yet)
    Realistic Water Two No No Yes No 2K×2K (High), 1K×1K (medium), 512×512 (low) '
    Skyrim Improved Puddles No Yes No Yes 1K×512 '
    The Beauty of Skyrim-Dungeons No No No No 2K×2K Note 3
    Telvanni Reborn No Yes No Yes 2K×2K Note 3
    Terrain Bump No No Yes No 1K×1K Note 4; includes reduced size normal maps
    Trees HD Yes Yes Yes Yes 2K×512 (High), 4K×1024 (Ultra), 1K×512 (Low) Note 6
    Visible Windows No Yes Yes Yes 2K×2K (High), 1K×1K (Medium) Note 1
    Vivid Landscapes-Tundra Moss Revised No No No Yes 1K×1K (1024), 256×256 (256) already optimized
    Whiterun Trellis Redesigned No Yes No Yes 512×512 (512 version), 1K×1K (1024 version), 4K×4K (4096 version) Note 2 (4096 version)
    Characters & Creatures N/A N/A N/A N/A N/A '
    Bellyache's Creature Pack No Yes No Yes (High res), 1K×1K (Medium res) '
    101 Bugs Yes Yes No No HiRes 1024×512, low res 640x320 '
    Antz in my Pantz Yes Yes No No 512×1K '
    Realistic Hair Yes Yes No Yes 1K×1K Note 9
    Beards No Yes No No 1K×1K (normal), 2K×2K (high) Note 9
    Bellyache's Dragons No Yes No Yes 4K×2K Note 3
    Better Beast Races No Yes No Yes 4K×4K (standard), 2K×2K (lite) Note 1, Note 2, Note 3, Note 9
    Better Freckles Yes Yes No No 1K×1K Note 9
    Brows No Yes No No 1K×1K (normal), 2K×2K (high) Note 9
    Cover Khajiits No Yes No Yes 2K×2K Note 1, Note 3, Note 9
    Frost Atronach HD Yes Yes No Yes 2K×2K Note 3
    Ice Wraith No Yes No Yes 2K×2K Note 3
    New Children Yes Yes No Yes 2K×2K Note 3, Note 8
    PondFish and Salmon Replacer No Yes No No 1K×512 '
    Superior Lore-Friendly Hair No Yes No Yes 2K×2K Note 1 (1 texture), Note 3, Note 9
    The Elder Scrolls V Rewritten - Arvak No Yes No No 512×512, 1K×1K (HD), 2K×2K (XD) '
    Xenius Character Enhancement Yes Yes No Yes 1K×1K Note 9
    XCE-Dawnguard No Yes No Yes 2K×2K Note 3
    Better Male Feet No Yes No Yes 4K×4K (feet texture), 2K×2K (normal map) Note 1, Note 2, Note 3, Note 9
    Natural Eyes Yes Yes No No 512×512 (High Res), 128×128 (Original Size) Note 9
    Clothing & Equipment N/A N/A N/A N/A N/A '
    Accingite Vos Yes Yes No Yes 2K×2K Note 3
    Better Circlets Yes Yes No Yes 2K×1K '
    Book of Silence No No No No 2K×2K Note 3
    Daedric Armor & Weapons No Yes No No 2K×2K (3 textures), 1K×1K (rest of textures) Possibly Note 3
    Elemental Staffs Yes Yes No Yes 2K×2K Note 3
    Elven Weapons for Silence No Yes No No 2K×2K Note 3
    Explosive Bolts Visualized No Yes No No 512×512 '
    Greatsword Sheathes and Scabbards Yes Yes No No 1K×1K '
    Jewels of the Nord No Yes No Yes 2K×2K (high res version), 1K×1K (low res version) '
    Nightingale Prime No Yes No Yes 2K×2K Note 3
    Not Really HD-Mask of Clavicus Vile No Yes No No 512×512 '
    Shield of Ysgramor No Yes No No 2K×2K (1 texture) '
    Animations & Effects N/A N/A N/A N/A N/A '
    Burn Freeze & Shock Effects No Yes No No 1K×1K '
    Dawnguard Rune Weapon FXS No Yes No No 256×64 '
    Deadly Spell Impacts Yes Yes No No 2K×2K (High), 1K×1K (Medium), 512×512 (Low) Note 1
    Enchantment Effect Replacer No Yes No No 1K×512 '
    Enhanced Blood Textures No Yes No No 2K×2K (standard), 1K×1K (1024 res),, 512×512 (512 res) Note 8 (1 texture)
    Finer Dust No Yes No No 256×256 '
    Rainbows No Yes No No 2K×2K No
    Rune Weapon FX No Yes No No 256×64 '
    Shooting Stars Yes Yes No No 512×512 '
    Skyrim Performance Plus Yes Yes No No 128×128 '
    Skyrim Sunglare Yes Yes No Np 2K×2K '
    Clutter & Miscellaneous N/A N/A N/A N/A N/A '
    The 418th Step No Yes No Yes 2K×2K Note 3
    Better Bones Yes Yes No Yes 2K×2K (2 textures), 1K×1K (rest of textures) Note 4
    Better Shadowmarks No Yes No No 256×256 Note 4
    Dark Brotherhood Tenets Restored Yes Yes No No 2K×2K Note 3
    Designs of the Nords Yes Yes No No 512×1K '
    Detailed Chests No Yes No Yes 2K×2K (2048), 1K×1K (1024) '
    Detailed Rugs No Yes No No 1K×2K '
    Enhanced Dragon Bones No Yes No Yes K (1K version), 2K×2K (2K version), 4K×4K (4K version) '
    HD Baskets No Yes No No 1K×2K and 512×1K versions in file '
    HD Linens No Yes No No 1K×1K '
    HD Ore & Ingots Yes Yes No No 1K×512 '
    HD Sacks No Yes No No 1K×1K '
    HQ paper Yes Yes No No 1K×1K '
    Intricate Spider Webs No Yes No Yes 1K×1K (medium), 2K×2K (high) Note 1
    Not Really HD-Display Case No Yes No No 1K×1K '
    Not Really HD-Keys Yes Yes No No 512×512 '
    Pilgrim's Delight No Yes No No 256×512 '
    Radiant & Unique Potions & Poisons Yes Yes No No 1K×1K '
    Realistic Instruments No Yes No Yes 2K×2K Note 3
    Realistic Paper No Yes No No 1K×1K '
    Septim HD Yes Yes No No 512×1K Note 1
    Shrines HD No Yes No Yes 2K×2K Note 3
    Silly Level of Detail-Potions & Poisons No Yes No No 1K×1K '
    Silly Level of Detail-Wine Cellar Yes Yes No No 2K×2K (winebottles), 512×1K (rest of bottles) Possibly Note 3 for the winebottles only
    Skyrim Redesigned Yes Yes No No 1K×1K '
    Soul Gems Differ No No No No 900x506 Note 4, Mod texures are already optimized with DDSopt
    Super Realistic Ore No Yes No No 1K×512 '
    Sweet Mother Yes Yes No Yes 2K×2K Note 3
    Gameplay N/A N/A N/A N/A N/A '
    Lantern Caretakers No No No No 256×256 Note 4
    Candle Lanterns of the North Yes Yes No No 1K×1K Note 7
    Skyrim Coin Replacer Yes Yes No No 256×512 '
    Wearable Lanterns Yes Yes No No 1K×1K note 7
    Lanterns for Caravans Yes Yes No No 1K×1K Note 7
    Lanterns for Guards Yes Yes No No 1K×1K Note 7
    Wet & Cold Yes Yes No No 1K×1K '
    Wet & Cold - Ashes Yes Yes No No 1K×1K '
    Former STEP Mods and Skyrim Revisited Mods N/A N/A N/A N/A N/A '
    Snow & Rocks HD No Yes Yes Yes 1K×1K (1024 version), 2K×2K (2048 version) Note 6
    AOF Detailed Mountains Yes Yes Yes Yes 2K×2K Note 3, Note 6
    AOF Farmhouses Yes Yes Yes Yes 2K×2K (a few textures), 1K×1K rest of textures) Possibly Note 3, Possibly Note 6
    HD Enhanced Terrain No Yes Yes No 2K×2K Possibly Note 3
    AOF Believable Hair Yes Yes No No 1K×1K Note 9
    HQ Beards No Yes No No 1K×1K Note 9
    HQ Eyebrows No Yes No No 512×256 Note 9
    WATER No No Yes No 2K×2K (standard), 1K×1K (medium resolution) Note 1, Note 6 (perhaps, not tested yet)
    HQ Skyrim Map Yes Yes No No 1K×1K (1024), 2K×2K (2048) '
    Weapon Retexture Project No No No No 2K×2K Note 3
    Skyrim HD No Yes Yes Yes 1K×1K with a few 2K×2K textures (Lite version), 2K×2K with a few 4K×4K textures(Full version) Note 6; STEP doesn't use the Riften textures; the few textures that are larger and the dungeons folder get overwritten by versions from other mods installed later when following the STEP guide
    Real Effect Candle No Yes No No 512×512 '
    Milky Way Galaxy Yes Yes No No 2K×2K (2K), 4K×4K (4K version) Possibly Note 3
    Creepy Nightmother & Coffins No Yes No Yes 2K×2K Note 3
    Birds of Skyrim Yes Yes No No 1K×1K '
    Bumpy Inn & Shop Signs No Yes No No 512×512 '
    Pond Fish No Yes No No 512×256 '
    Rabbits Plus No Yes No No 1K×1K Note 4
    Golden Gods Shrines No No No No 1K×1K DDSopt creates artifacts when optimizing this mod
    Destructible Bottles Yes Yes No No 1K×1K '
    Yuril Rings No Yes No Yes 2K×2K Note 3

    All mods, even those which have No in all of the first 4 columns, gain benefits from DDSopt processing:

    • DDSopt replaces all mip-map levels in every texture with improved versions
    • as mentioned earlier, DDSopt can reduce texture sizes when needed. The compression algorithms, especially those used for special textures such as normal maps, provide more quality than those used in many texture creation programs. Using DDSopt to compress selected textures is particularly important when a user wants to decrease graphic card VRAM usage to eliminate stuttering and Crash To Desktop (CTD) problems caused by VRAM use exceeding the memory available on the graphic card.

    Reducing VRAM Usage

    The purpose of this page is to provide a summary of the investigations and tests by STEP participants on reducing VRAM use It is intended for intermediate and advanced users.

    Under Construction

    Using Reduced Resolution Normal Maps for Game Performance Improvement

    Some initial results of benchmark testing have shown that reducing the size of just the larger sized tangent space normal maps (files with names ending in _n.dds) to some maximum size such as 1K×1K (if typically using 2K×2K textures for the mods) or 512×512 (if typically using 1K×1K textures for the mods), provides significant performance improvements with only small graphic quality loss. The normal maps can be reduced in size by a fixed percentage (e.g., 50%) in DDSopt, but if this is done it needs to be done selectively so that normal maps for lower resolution textures ( 512×512 or less as used for small items) are not further reduced in size. Reducing the size of the model space normal maps (files with names ending in _msn.dds) typically seen in body/face/hand textures can also be done. This might help improve performance when there are a lot of NPCs onscreen. Overall, if trying to improve performance by reducing texture size then one useful option is to first try reducing the size of normal maps while leaving the regular textures at full resolution to see if there is enough performance improvement, especially with mods that have very high quality textures. Reducing normal map size has been found particularly useful for exterior textures (textures in the landscape, architecture, and terrain folders) since VRAM use is typically highest in exterior spaces.

    Generating the reduced resolution normal maps can be done two different ways.

    1. Perform the DDSopt optimization with a single resolution as would normally be done and archive the resulting textures, then run DDSopt again selecting only the normal maps and using the next size lower maximum resolution and saving these in a separate archive. With this approach the performance improvement can be determined by comparing the results with and without installing the reduced resolution normal maps file from the additional archive file.
    2. Perform the DDSopt optimization with a single maximum resolution using the DDSopt filters to eliminate the normal maps from being processed, then do another DDSopt process step with only the normal maps selected using the next size lower maximum resolution. This results in a single archive containing all the textures with the normal maps at reduced resolution. The Appendix has an Example subsection which includes a detailed examples of creating such a file.
    3. The HRDLC contains few exterior (architectural, landscape, and terrain) textures that are used with objects covering much of the display. There will thus not be as much performance gain when using reduced size normal maps with the HRDLC and the vanilla textures from Skyrim - textures as there is with the some of the STEP mod textures, especially those in the Conflicting Graphics section,.

      Some care should be taken when using reduced size model space normal maps (files ending in _msn.dds). These are used for body textures, and the smaller normal maps make the associated body parts more "angular" and less smooth. Compare the textures in-game before and after installing smaller model space normal maps to see whether the associated NPCs with smaller normal maps body-related textures are acceptable, especially faces.

      There are multiple choices for the compression used with normal maps. While DirectX compression is reasonably effective for standard texture files, it provides noticable degredation in quality when used on normal maps and some other texture file types as discussed here . Because of this issue, some mod authors provide normal maps and some other special textures as uncompressed files. In this mod many of the normal map textures are uncompressed, providing improved graphic quality but potentially decreasing processing performance. As discussed here , prior to DirectX compression processing DDSopt transforms normal maps into an alternate form that suffers significantly less degredation when used with DirectX comnpression. Using DDSopt on this mod will thus compress the normal maps without significant loss of graphic quality. The resulting smaller map textures will improve processing performance. This is also discussed in Q3 here

      In the typical case when the normal maps use DirectX compression, the compression choices for reduced size tangent space normal maps are:

      • use default DDSopt DirectX compression at half the resolution of the associated colormap texture,
      • use a normal map from a lower resolution (half resolution) version of the mod (if available).

      If uncompressed normal maps are available, the recommendation is to keep these uncompressed. The optimization choices are then:

      • use a normal map from a lower resolution (half resolution) version of the mod (if available),
      • use R5G5B5/A4R4G4B4 DDSopt compression at half the resolution of the associated colormap texture, or
      • use R5G5B5/A4R4G4B4 DDSopt compression at the same resolution as the associated colormap texture.

      User musicdemon provided a benchmark comparison in the DDSopt and Texture Overhaul forum using the vanilla and STEP mods. The comparison includes three cases:

      • unoptimized textures,
      • DDSopt optimized textures (100 MB VRAM reduction), and
      • DDSopt optimized textures plus reduced size normal maps (half resolution) from the STEP mods with Note 6 (30 MB additional VRAM use reduction).

      The screenshots below show the results of this processing for each of the three cases.

      • normal map from a lower resolution (half resolution)

        normal map from a lower resolution (half resolution)

      • R5G5B5/A4R4G4B4 DDSopt compression at half resolution

        R5G5B5/A4R4G4B4 DDSopt compression at half resolution

      • R5G5B5/A4R4G4B4  DDSopt compression at full resolution

        R5G5B5/A4R4G4B4 DDSopt compression at full resolution


      Performance Comparisons

      The purpose of this section is to show the results of tests comparing the Skyrim game performance with and without optimization of some of the major vanilla and mod texture sets. It is intended for intermediate and advanced users.

      Benchmarking Conditions

      Test System

      • Motherboard: Intel DP55KG
      • CPU: i5-760 OC 4.0 GHz
      • GPU: ATI 6850 1 GB (Crossfire2X)
      - 1920×1200
      - TESV v1.5.26.0
      - Driver v12.3 + TESV App Profile

      Data Collection

      1. Start GPU-Z, start Skyrim via SKSE
      2. Load savegame1, wait 50 seconds, capture screen
      3. Load savegame2, wait 50 seconds, capture screen
      4. Load savegame3, wait 50 seconds, capture screen
      5. Load savegame4, wait 50 seconds, capture screen
      6. Load savegame5, wait 50 seconds, capture screen
      7. Quit Skyrim, open GPU-Z log
      8. Copy last line - 20 of log block representing savegames (easy to tell in log)
      Tested using GPU-Z 0.6.0
      NOTE:
      Each data row represents the GPU-Z output recorded 20 seconds prior to the end of the 50s benchmark run. This ensures that no anomalies associated with menu access during savegame loading or quitting affected the recording. Waiting at least 25-30s into benchmark runs also allows Skyrim and the GPU to equilibrate to ensure stable and representative values.

      Vanilla Textures

      Benchmarka GPU Load [%] Dedicatedb Memory [MB] Dynamicc Memory [MB] Combinedd Memory [MB]
      Windows Baseline 0 32 25 57
      STD - Whiterun 53 520 41 562
      STD - Riverwood 48 511 47 558
      STD - White Phial 40 483 50 533
      STD - Windhelm 50 546 52 598
      STD - Markath 49 532 56 588
      HRDLC - Whiterun 52 782 47 830
      HRDLC - Riverwood 49 705 49 755
      HRDLC - White Phial 39 649 50 699
      HRDLC - Windhelm 50 848 52 900
      HRDLC - Markath 49 793 55 848
      OSTD - Whiterun 52 521 39 560
      OSTD - Riverwood 48 510 41 552
      OSTD - White Phial 38 489 43 532
      OSTD - Windhelm 49 548 46 594
      OSTD - Markath 49 532 52 584
      OHRDLC - Whiterun 53 755 46 802
      OHRDLC - Riverwood 50 678 52 730
      OHRDLC - White Phial 40 635 53 688
      OHRDLC - Windhelm 50 823 54 877
      OHRDLC - Markath 50 765 59 824
      OHRDLC + Vano89 (Hy) - Whiterun 51 04 40 744
      OHRDLC + Vano89 (Hy) - Riverwood 49 634 46 680
      OHRDLC + Vano89 (Hy) - White Phial 40 605 49 653
      OHRDLC + Vano89 (Hy) - Windhelm 50 747 51 798
      OHRDLC + Vano89 (Hy) - Markath 48 713 54 767
      OHRDLC + Vano89 (HyN) - Whiterun 52 592 43 636
      OHRDLC + Vano89 (HyN) - Riverwood 49 558 46 605
      OHRDLC + Vano89 (HyN) - White Phial 39 538 49 587
      OHRDLC + Vano89 (HyN) - Windhelm 50 646 50 697
      OHRDLC + Vano89 (HyN) - Markath 48 609 53 662
      a: STD = vanilla, OSTD = optimized vanilla, HRDLC = hi-res vanilla, OHRDLC = optimized hi-res vanilla | [Hy = hybrid 1024 + 2048, HyN = hybrid + vanilla normal maps
      b: on-card VRAM graphics-memory allocation (very fast; lower = better)
      c: system RAM graphics-memory allocation (very slow; causes stuttering if > approx. 0.5x max VRAM capacity; lower = better)
      d: combined graphics-memory allocation, stuttering is pronounced when > approx. 1.5x max VRAM capacity; lower = better)

      Skyrim HD Texture Overhaul

      Benchmarka GPU Load [%] Dedicatedb Memory [MB] Dynamicc Memory [MB] Combinedd Memory [MB]
      Windows Baseline 0 32 25 57
      SKYHD 1k - Whiterun 52 831 48 879
      SKYHD 1k - Riverwood 51 768 54 822
      SKYHD 1k - White Phial 40 702 54 756
      SKYHD 1k - Windhelm 50 893 57 950
      SKYHD 1k - Markath 48 857 59 916
      SKYHD 2k - Whiterun 51 978 45 1,023
      SKYHD 2k - Riverwood 51 954 50 1,005
      SKYHD 2k - White Phial 40 793 51 844
      SKYHD 2k - Windhelm 50 959 52 1,012
      SKYHD 2k - Markath 50 983 134 1,117
      OSKYHD 1k - Whiterun 51 786 43 830
      OSKYHD 1k - Riverwood 51 716 50 766
      OSKYHD 1k - White Phial 39 673 53 726
      OSKYHD 1k - Windhelm 50 854 55 909
      OSKYHD 1k - Markath 49 820 57 877
      OSKYHD 2k - Whiterun 51 978 51 1,029
      OSKYHD 2k - Riverwood 51 865 54 919
      OSKYHD 2k - White Phial 40 716 54 771
      OSKYHD 2k - Windhelm 50 908 56 964
      OSKYHD 2k - Markath 50 969 128 1,097
      OSKYHD1k + Vano (HyN) - Whiterun 52 646 51 698
      OSKYHD1k + Vano (HyN) - Riverwood 49 621 57 678
      OSKYHD1k + Vano (HyN) - White Phial 40 577 58 635
      OSKYHD1k + Vano (HyN) - Windhelm 50 679 60 739
      OSKYHD1k + Vano (HyN) - Markath 48 702 61 763
      OSKYHD2k + Vano (HyN) - Whiterun 51 863 42 905
      OSKYHD2k + Vano (HyN) - Riverwood 50 868 45 913
      OSKYHD2k + Vano (HyN) - White Phial 40 682 48 730
      OSKYHD2k + Vano (HyN) - Windhelm 50 769 52 821
      OSKYHD2k + Vano (HyN) - Markath 49 953 60 1,013
      a: SKYHD = Skyrim HD, OSKYHD = optimized Skyrim HD
      b: on-card VRAM graphics-memory allocation (very fast; lower = better)
      c: system RAM graphics-memory allocation (very slow; causes stuttering if > approx. 0.5x max VRAM capacity; lower = better)
      d: combined graphics-memory allocation, stuttering is pronounced when > approx. 1.5x max VRAM capacity; lower = better)

      Skyrim Realistic Overhaul

      Benchmarka GPU Load [%] Dedicatedb Memory [MB] Dynamicc Memory [MB] Combinedd Memory [MB]
      Windows Baseline 0 32 25 57
      SROHD 1k - Whiterun 51 829 44 874
      SROHD 1k - Riverwood 51 724 50 774
      SROHD 1k - White Phial 39 681 51 732
      SROHD 1k - Windhelm 50 886 53 939
      SROHD 1k - Markath 48 832 53 885
      SROHD 2k - Whiterun 51 969 42 1,011
      SROHD 2k - Riverwood 50 811 47 858
      SROHD 2k - White Phial 39 708 48 757
      SROHD 2k - Windhelm 53 972 59 1,032
      SROHD 2k - Markath 49 921 58 979
      OSROHD 1k - Whiterun 52 796 45 841
      OSROHD 1k - Riverwood 50 699 51 750
      OSROHD 1k - White Phial 40 667 52 719
      OSROHD 1k - Windhelm 50 861 53 915
      OSROHD 1k - Markath 49 806 54 861
      OSROHD 2k - Whiterun 57 975 50 1,025
      OSROHD 2k - Riverwood 49 772 51 823
      OSROHD 2k - White Phial 39 702 53 755
      OSROHD 2k - Windhelm 61 958 69 1,027
      OSROHD 2k - Markath 48 907 61 969
      OSROHD1k - Vano (HyN) - Whiterun 51 677 41 718
      OSROHD1k - Vano (HyN) - Riverwood 49 611 47 658
      OSROHD1k - Vano (HyN) - White Phial 40 588 48 636
      OSROHD1k - Vano (HyN) - Windhelm 50 724 50 774
      OSROHD1k - Vano (HyN) - Markath 49 692 54 746
      OSROHD2k - Vano (HyN) - Whiterun 51 878 42 920
      OSROHD2k - Vano (HyN) - Riverwood 50 731 48 780
      OSROHD2k - Vano (HyN) - White Phial 40 710 50 760
      OSROHD2k - Vano (HyN) - Windhelm 51 959 52 1,011
      OSROHD2k - Vano (HyN) - Markath 48 862 54 916
      a: SROHD = Skyrim Realistic Overhaul, OSROHD = optimized Skyrim Realistic Overhaul
      b: on-card VRAM graphics-memory allocation (very fast; lower = better)
      c: system RAM graphics-memory allocation (very slow; causes stuttering if > approx. 0.5x max VRAM capacity; lower = better)
      d: combined graphics-memory allocation, stuttering is pronounced when > approx. 1.5x max VRAM capacity; lower = better)

      Serious HD Retexture Skyrim Overhaul

      Benchmarka GPU Load [%] Dedicatedb Memory [MB] Dynamicc Memory [MB] Combinedd Memory [MB]
      Windows Baseline 0 32 25 57
      SERHD 1k - Whiterun 53 760 46 806
      SERHD 1k - Riverwood 51 678 48 726
      SERHD 1k - White Phial 40 648 51 698
      SERHD 1k - Windhelm 51 840 53 893
      SERHD 1k - Markath 48 771 54 825
      SERHD 2k - Whiterun 53 813 44 857
      SERHD 2k - Riverwood 51 734 48 782
      SERHD 2k - White Phial 40 700 49 749
      SERHD 2k - Windhelm 51 885 52 936
      SERHD 2k - Markath 49 829 54 882
      OSERHD 1k - Whiterun 53 765 42 807
      OSERHD 1k - Riverwood 50 687 47 734
      OSERHD 1k - White Phial 40 646 49 695
      OSERHD 1k - Windhelm 51 834 52 886
      OSERHD 1k - Markath 49 768 54 822
      OSERHD 2k - Whiterun 54 814 45 859
      OSERHD 2k - Riverwood 51 746 49 795
      OSERHD 2k - White Phial 40 702 50 752
      OSERHD 2k - Windhelm 51 887 52 939
      OSERHD 2k - Markath 49 831 54 885
      a: SERHD = Serious HD Retexture Landscape Skyrim, OSERHD = optimized Serious HD Retexture Landscape Skyrim
      b: on-card VRAM graphics-memory allocation (very fast; lower = better)
      c: system RAM graphics-memory allocation (very slow; causes stuttering if > approx. 0.5x max VRAM capacity; lower = better)
      d: combined graphics-memory allocation, stuttering is pronounced when > approx. 1.5x max VRAM capacity; lower = better)

      Insanity's Texture Pack Overhaul

      Benchmarka GPU Load [%] Dedicatedb Memory [MB] Dynamicc Memory [MB] Combinedd Memory [MB]
      Windows Baseline 0 32 25 57
      ISTPS 2k - Whiterun 53 931 45 976
      ISTPS 2k - Riverwood 52 825 50 876
      ISTPS 2k - White Phial 40 672 51 723
      ISTPS 2k - Windhelm 51 846 53 899
      ISTPS 2k - Markath 49 818 55 873
      OISTPS 2k - Whiterun 52 930 43 974
      OISTPS 2k - Riverwood 51 819 49 868
      OISTPS 2k - White Phial 40 665 50 716
      OISTPS 2k - Windhelm 51 843 54 897
      OISTPS 2k - Markath 50 818 55 873
      a: ISTPS = Insanity's Texture Pack - Skyrim, OISTPS = optimized Insanity's Texture Pack - Skyrim
      b: on-card VRAM graphics-memory allocation (very fast; lower = better)
      c: system RAM graphics-memory allocation (very slow; causes stuttering if > approx. 0.5x max VRAM capacity; lower = better)
      d: combined graphics-memory allocation, stuttering is pronounced when > approx. 1.5x max VRAM capacity; lower = better)

      Example: Creating Optimized Reduced Resolution Normal Maps

      To create a file of DDSopt-optimized reduced resolution tangent space normal maps from a mod file use the following steps:

      1. Extract the mod files into a folder in a Working directory. If the mod is an archive then simply dearchive the mod. If the mod has its resources as a BSA then extract the BSA into a folder using the process described here.
      2. Launch DDSopt if it is not already running.
      3. As the source folder, choose the folder from step 1 as current source, create a new oupput folder, and select this folder as the destination for the result of the DDSopt pcocessing.
      4. Use the filter in the center of the Browser Tab to type in a "*.*" wildcard (if this is not already in the filter window), then click the [Apply] button
      5. Unselect all the files by clicking the red box with a white X.
      6. Now use the filter in the center of the Browser Tab to type in a "*_n.dds" wildcard to select all the tangent space normal map textures, then click the [Apply] button and then click the green checkmark. Doing these three steps selects only the normal maps for optimization
      7. Read and follow the previous guidance in the Selecting the DDSopt Resolution Limit Parameters sidebar here; typically the value should be 512×512 if the mod textures are primarily 1024×1024, or if the mod textures are primarily 2048×2048 the resolution limit should be set to 1024×1024.
      8. Under the Ignore tab uncheck the [Copy unprocessed and ignored files (passthrough)] selection if it is checked.
      9. Click [Process] to begin optimizing the tangent space normal map textures.
      10. When processing of all the normal maps is finished, redo the check mark on [Copy unprocessed and ignored files (passthrough)] under the Ignore tab if it was previously checked. Change the DDSopt Resolution Limit Parameters back to the value it had before doing the normal model processing. If this processing is being done for multiple mods, wait until completing this processing for all mods before doing both of these changes.

      The optimized tangent space normal map textures are now in the output folder, ready to be archived.


      An Alternate Approach to Optimizing the Vanilla Textures

      Some people may prefer to use DDSopt itself for the vanilla optimization. The results of using the "2_Pre-optimization_2.78.bat" batch file and the associated optimization steps with DDSopt yield the identical result to that of the process shown below which uses the DDSopt GUI.

      These instructions assume that DDSopt is setup with the parameters shown in the screenshots during initial setup of DDSopt. The resolution limit parameter choices assume a graphics card with at least 1.5 GB VRAM, although some users with 1 GB cards may also be able to use these settings especially with the use of the newly available memory management mods as described in the STEP guide. The recommended settings are usually adequate for almost all users with systems that support including the High Resolution Texture Packs. It assumes that the extracted vanilla textures are in "Vanilla Extracted" and that the HRDLC cleaning process has been completed. When these steps are completed, the textures still need to be archived (if this is being done), and the steps in the main guide and QuickStart guide can be used for this.

      DDSopt will take a fairly long time to complete optimization for several of the steps below.

      1. Launch DDSopt if it is not already running.
      2. If it is not already checked, check the Show Recursive box below the center text-box.
      3. Click [Ignore] from the main menu and tick the 2nd item [Don't process any of the already processed files (DDS only)] if it is unticked.
      4. Click [Ignore] from the main menu and untick [Don't process any of the know file types (DDS, PNG, etc.)] and [Copy unprocessed and ignored files (passthrough)] if they are ticked.
      5. Click [Behave] and then [Textures] and tick [Raise foliage-map opacity ...] if it is not checked.
      6. In the Browser Tab, select the Browse button in the upper window and as the initial source folder, select the "Vanilla Extracted/" directory
      7. In the lower window select the Browse button and then select the "Vanilla Optimized/" directory as the current destination.
      8. In the center text box type "*.*" then click [Apply]
      9. In the center text box click the [Red X] to unselect all the files

      Now that DDSopt is setup for this task, the first step is to optimize some uncompressed terrain color maps in HRDLC2 into compressed textures.

      1. In the upper window click the "+ box" on the line with "HRDLC2" if it the "textures" directory is not showing below it
      2. In the upper window click the "+ box" on the line with "textures" below "HRDLC2". This will expand the display this directory
      3. In the upper window click the word "terrain" (not the "+ box" ) and the textures in this directory will be shown in the lower window.
      4. In the center text box type "*.dds" then click [Apply]
      5. In the center text box click the [Green checkmark] to select all the files
      6. In the center text box type "*_n.dds" then click [Apply]
      7. In the center text box click the [Red X] to unselect all the tangent space normal maps
      8. On the Constraints Tab the resolution limit values in DDSopt can be left at the default 8192×8192. The format options should all be "DXTx".
      9. Click [Process] to begin optimizing the textures from Vanilla Extracted into corresponding locations under Vanilla Optimized/.

      Now the compressed and uncompressed tangent space normal maps will be optimized.

      1. In the center text box type "*_n.dds" then click [Apply]
      2. In the center text box click the [Green checkmark] to select all the TSN files
      3. Change the Constraints Tab format settings to the uncompressed lossless formats as in Figure H3 . The resolution limits values should be set to 1024×1024.
      4. Click [Process] to begin optimizing the compressed and uncompressed TSN textures from Vanilla Extracted into corresponding locations under Vanilla Optimized/.

      Now the compressed and uncompressed model space normal maps will be optimized

      1. In the center text box type "*_msn.dds" then click [Apply]
      2. In the center text box click the [Green checkmark] to select all the MSN files
      3. Leave the Constraints Tab format settings at the uncompressed lossless formats, but change the resolution limits values to 2048×2048.
      4. Click [Process] to begin optimizing the compressed and uncompressed MSN textures from Vanilla Extracted into corresponding locations under Vanilla Optimized/.

      Finally, the compressed and uncompressed color map textures will be optimized.

      1. In the center text box type "*.dds" then click [Apply]
      2. In the center text box click the [Green checkmark] to select all the remaining DDS texture files
      3. Leave the Constraints Tab format settings at the uncompressed lossless formats. Leave the resolution limits values set to 2048×2048 (this can be set to a lower value if desired).
      4. Click [Process] to begin optimizing the compressed and uncompressed color map textures from Vanilla Extracted into corresponding locations under Vanilla Optimized/.
      5. Change the Constraints Tab settings back to the default values from the screenshots during initial DDSopt configuration.
      H1 Constraints tab settings

      The optimization task is not quite complete. Windows Explorer is much easier to use for simple copy operations than DDSopt. There are two additional steps.

        First step
      1. Open the "STD" folder in the "Vanilla Extracted" directory. Then open the "textures" folder and then the "landscape" folder.
      2. Copy the following 12 tangent space normal map texture files from the STD\textures\landscape folder in "Vanilla Exracted" to the STD\textures\landscape folder in "Vanilla Optimized", overwriting the existing versions of these files in "Vanilla Optimized". When optimized these files make a vanilla artifact look worse.:
        coastbeach01_n.dds
        coastbeach02_n.dds
        dirt01_n.dds
        dirt02_n.dds
        dirtpath01_n.dds
        dirtpath02_n.dds
        dirtsnowpath01_n.dds
        dirtsnowpath02_n.dds
        snow01_n.dds
        snow02_n.dds
        tundra01_n.dds
        tundra02_n.dds

      If the optimized vanilla textures will be installed using Mod Organizer the second step isn't necessary, although it may still be useful for completeness. This step is needed if another mod management program is used. Doing so does not affect the textures used by Mod Organizer; it also gets these same textures from Skyrim-textures.bsa . This step copies PNG files used for book interfaces to the output folder to preserve the quality of non-DDS textures (DDSopt does not automatically handle optimizing PNG files properly).

      1. Copy the entire "STD\textures\interface" folder in "Vanilla Extracted" to the "STD\textures" folder in "Vanilla Optimized".