Texture Mod - Watch_Dogs Mipmap Pack

Discussion in 'Game Tweaks and Modifications' started by Thrax, Jun 13, 2015.

Tags:
  1. Thrax

    Thrax New Member

    Messages:
    7
    Likes Received:
    0
    GPU:
    GTX 970
    Use "Ultra" quality textures with "High" in-game texture setting.

    Quality: Original "Ultra" textures used. No degradation in quality.
    Customization: Use as few or as many as your system can handle.
    Performance: Changes the way textures are loaded, possibly alleviating stutter caused by separation of texture files.

    Mod features - Version 1.0:
    • Mipmaps generated for all* textures in graphics folder. A little less than 5000.
    • Retains DXT types.
    • Textures merged with current Watch_Dogs patch for easy use.
    • Textures available as separate files for easy modding.
    • Test files available.
    • Works with both "High" and "Ultra" texture settings.

    Mod description:
    A common complaint about Watch_Dogs is that selecting "Ultra" textures will cause stuttering, while "High" textures run relatively smooth. The frame-rate hit is most noticeable when driving fast, where textures need to be loaded quickly in and out of VRAM. This can occur on many systems, even those with GPU's like GTX970 whose 3.5GB VRAM exceeds the games' recommendation of 3GB.

    Watch_Dogs normally uses 2 separate texture files per texture on "Ultra" setting. This mod merges the "Ultra" texture files in to the "High" texture files. Users can include as few or as many of the modded textures as they desire. If a texture is not included, the default texture will be used as normal. The recommended way to use the mod is on "High" texture setting. However, these combined textures could potentially have better performance than the default "Ultra" textures so it is possible to select "Ultra" in game and have a better experience than without the mod.

    How is this different than just selecting Ultra textures?:
    Well, first off, you get to choose which textures you want. And secondly, depending on where your system bottlenecks, you could get a performance boost due to the different way of handling textures,

    What the mod does not do:
    - Compress textures, alter them or otherwise optimize them compared to the original ones. Quality will be the same as original "Ultra" textures.
    - Remove all stuttering or lower VRAM usage. This is not a mod directly aimed at improving performance, even if it could indirectly do so.

    Mod limitations:
    * A handful of textures are excluded. Mostly those not using DXT compression and a few with naming issues.
    - Attempting to use all textures will generate a patch file larger than the game allows for. Mod is therefore split into a main file and an add-on pack containing the characters\kits folder.
    - Textures are loaded into VRAM in a different way than normally. Load could initially appear higher than if "Ultra" textures were selected. This is perfectly normal behavior for a GPU driver however. It will attempt to use its memory as efficiently as possible and as much of it as it can. Be aware that you could potentially experience new VRAM related issues.

    Installation:
    The easy way:
    Download and extract patch.dat & patch.fat to the data_win64 folder in your Watch_Dogs directory, overwriting those already present.
    • Download Main Version 1.0: 1drv.ms/1Sd5Isw
      This file includes around 4000 "Ultra" textures added to the current Watch_Dogs patch. It does not include files from the characters\kits folder. These appear to mostly be files used by unnamed NPCs and excluding them was a quick way to reduce patch file size.
    • Download Watermark Test Version 1.0: 1drv.ms/1Sd5PEt
      This file includes a few road textures and a liquor sign added to the current Watch_Dogs patch. The textures have been modified with a different number for a few of the mipmap levels. They're easy to spot near the Owl Motel. Use them to verify that you're modifying the game correctly or if you're curious about mipmaps. You can also use them to test the effects of anisotropic filtering.

    The slightly harder way:

    This involves modding the game manually and creating your own patch file. You can add any desired textures to either vanilla Watch_Dogs or any of the fantastic community-made mods.

    • Download Separate Files - Main Version 1.0: 1drv.ms/1dDfpBl
      All files in graphics folder, except characters\kits folder.
    • Download Separate Files - Add-on Version 1.0: 1drv.ms/1dDfjcO
      Files not included in the main version. At this point, its all the textures in the characters\kits folder.
    • Download Separate Files - All Graphics Version 1.0: 1drv.ms/1dDfmW6
      All textures in the graphics folder. Its the same as downloading both the main file and the add-on file.
    • Download Separate Files - Watermark Test Version 1.0: 1drv.ms/1dDfwNc
      This file contains the watermarked test files, if you're curious.

    In-depth description:
    Mipmaps:
    Watch_Dogs uses mipmaps when displaying textures. Mipmaps are optimized, lower resolution versions of a texture, used at a distance. A mipmap level is a quarter of the size of the previous higher level.

    The use of mipmaps is affected by the in-game "Textures" setting, with the levels Medium,High,Ultra. Or the section <TextureResolution> in defaultrenderconfig.xml with the quality ids Low,Medium,High.

    Anisotropic filtering has a large effect on how mipmaps are displayed.

    DXT Compression:
    Watch_Dogs textures use DXT compression. Most textures in the game are DXT1, DXT3 or DXT5. Depending on DXT type, alpha (or transparency) information is handled in different ways. DXT1 uses the fewest number of bits for alpha and consequently file size and memory footprint are affected by DXT type. Using a DXT type that is too high (for example, if the texture is not transparent) will do nothing but needlessly increase image size with no gain in quality.

    XBT Files:
    Watch_Dogs stores its textures in XBT files. XBT files are DDS files with a header.

    There are two types of XBT files; the main texturefile, "_?.xbt", containing a texture and associated lower mipmaps. And a "_?_high.xbt" file containing an additional mipmap level, the highest quality version of the texture, from which the mipmaps in the main texture file were generated.

    The file-size of the _?.xbt files is a third of the size of its corresponding _high texturefile.
    The associated _high.xbt file to be used is referenced in the header of the main xbt file.

    Texture settings:
    The loading of _high files are controlled by the setting "SkipMipFiles" in defaultrenderconfig.xml. With a setting of 0, _high files will not be loaded.

    An additional setting, "SkipMips", will allow for the skipping of the highest available mipmap.

    "Ultra" setting loads mipmap00 from _high.xbt, as well as any additional mipmaps from main texture file.
    "High" setting loads main.xbt, with highest level being mipmap01.
    "Medium" setting loads main.xbt, but skips mipmap01.

    This is not all there is to texture handling within Watch_Dogs, but for the purpose of loading the highest quality mipmap level, this explanation will do.

    How the mod works:
    This mod combines the mipmaps from the main texture file with its corresponding _high file. The combined mipmaps are stored in the main texturefile. This allows the modded texture file to be used as a replacement, in effect adding "Ultra" textures to the files loaded when selecting "High" textures in game.

    There are several ways to do this. I've chosen to generate new mipmaps from the _high texture files, discarding the mipmaps found in the main texture file. It would be possible to combine all the original mipmaps in use by the game instead of generating new ones. The chosen method allows for the potential optimization of the original texture or adding of sharpening filters, but none have been applied so far. If time permits, or significant flaws with the used method are observed, I might choose to combine the original ones instead of generating new ones.

    Is this a new way to mod textures?:
    No, not at all.

    The most well known WD texture mod is made by Maldo. About 2200 texture files are included. And a little over 300 of those have mipmaps added. The rest have just 1 level. With only one mipmap, the textures will shimmer during movement. File size however, is reduced, allowing "Ultra" textures on a 2GB card.

    Feedback and Suggestions:
    - Please report any issues with the mod. If any textures misbehave, look strange or aren't loaded properly, please post a screenshot with a visible minimap and whatever information you find relevant.
    - If you have to choose which textures to include, those with text are recommended.
    - In-game anisotropic filtering isn't very good. Override it with GPU control panel.
     
    Last edited: Jun 15, 2015
  2. The Silver

    The Silver Master Guru

    Messages:
    602
    Likes Received:
    14
    GPU:
    GTX 770 2GB
    Very interesting work, and well written post, thanks for your effort on this game! :)
     
  3. KuroTenshi

    KuroTenshi Master Guru

    Messages:
    499
    Likes Received:
    1
    GPU:
    GTX 970 4gb @ 1177/1402
    Very interesting ! I made too an "ultra" textures pack, but completely differently (format change, resizing, reworking textures (normal, diffuse, masks, specular,...)) but I didn't really worked on mipmaps.

    I already get better performances (and reduced stuttering) and better visual. But If I can further improve that thanks to your work, it will be great !

    I currently have this (for 2000+ textures), using Definitive Mod + my Reshade preset + a customized "High" settings (with HBAO+ High and "Ultra" textures).

    [​IMG]
     
    Last edited: Jun 14, 2015
  4. Thrax

    Thrax New Member

    Messages:
    7
    Likes Received:
    0
    GPU:
    GTX 970
    Thanks, that really means a lot. I'm only able to test on one system, so if you try the mod and have any feedback, I'd love to hear it. :)

    Thank you! I saw your mod included in Definitive Mod, but haven't had the time to take an in-depth look at it. Especially with all the exciting things also happening in the mod. Looks like a lot of time went in to it from you and everyone involved.

    From what I saw you chose a top-down, opt-out approach to modding the textures by working with the _high files. I really admire that. Can only imagine the amount of work that goes in to trying to optimize the textures and testing the effects against the load of any unmodified ultra textures. Not to mention verifying that any changes made aren't just the default textures showing instead. That you're up to 2000 textures is just mindblowing. You have my deepest respect. :)

    I went with the bottom-up, opt-in approach instead. Based on my own use case, I assumed a user would be satisfied with the performance of the "High" textures, but not the quality. I figured selectively adding higher quality textures would allow the user to stop adding more if performance got too bad.

    Basically, for every texture opted in to, performance should get worse, but quality would get better. With the top down approach, every texture added will improve performance, but potentially decrease quality.

    I realise that my approach would put a lot of the workload on the user to determine what performance was acceptable. But it made it a lot easier for me, since spotting low quality textures should occur naturally. I also didn't have to modify all that many textures for it to have an effect.

    Performance-wise, I oddly enough experienced better performance on my own system, even with as many ultra textures included as the patch file size will allow. Since its just the default textures being used in a different way, I assume there's something inherently inefficient with the 2-file approach Ubisoft decided to use.

    Well, that or there's something non-obvious wrong with my mod, where certain textures aren't being loaded like they should.

    I also have no idea how the mod affects systems with less VRAM than my test system.
     
    Last edited: Jun 15, 2015

  5. The Silver

    The Silver Master Guru

    Messages:
    602
    Likes Received:
    14
    GPU:
    GTX 770 2GB
    I only have a 2Gb 770 so it's barely enough for the High textures I think, I'm not sure how useful will be to test your work on my system. :O

    Anyway, I totally agree with your approach on modding textures, actually I'm doing a very similar thing for myself! :cool:
    I'm creating a mini texture pack that only includes around 100Mb of Ultra textures (so it's suited for people that have low vram and are already satisfied with the overall look and performance of the High textures) but these textures are selectively chosen one by one. :D
    I'm sure that everyone noticed that in a lot of places the textures quality is very inconsistent, for example there's a relatively high detail texture placed near a very low res one that really stands out (it's mostly inconsistent texture density actually, due to bad texture application I'd say, however the result it's the same). So I simply take a screenshot everytime I see a very lowres texture that looks out of place and at the end of the play session I hunt them down in the files and convert their _high version so it's used without the Ultra textures setting. I focused mostly on signs and other textures with details and text since this is the first thing that is lost when lowering the resolution of an image, and I've purposedly ignored every not-bad-enough texture that didn't look too much out of place, so the filesize didn't grew up significantly. Right now I have over 200 textures and everytime I play I find new ones to include. I will create a topic and upload it as soon as I will have time if someone is interested. :)
     
    Last edited: Jun 15, 2015
  6. Thrax

    Thrax New Member

    Messages:
    7
    Likes Received:
    0
    GPU:
    GTX 970
    I did the exact same thing! Those signs would drive me crazy. The blue baseball banners in the stadium bar were hideous. I started out by converting individual textures, then the entire signs folder and finally ended up doing everything.

    Would be very interesting to see what a handpicked texture mod would look like! I hope you upload it.
     
  7. The Silver

    The Silver Master Guru

    Messages:
    602
    Likes Received:
    14
    GPU:
    GTX 770 2GB
    Hi guys, I'm slowly completing the mini texture pack that I described in my post above, however I'm really struggling to identify the name of the texture of these wooden doors, I've searched a lot in all the unpacked files but it seems that it's part of a bigger texture because it's not a single door texture like a lot of the others... :(

    Anyone can help me recognize this door texture? :)
    [​IMG]

    EDIT: Nevermind... God what a counteintuitive way of recycling assets. The wooden door of Jed's Bar apparently is an interrior door of a gunshop, it's located here "graphics\_textures\architectural\_interrior\_gunshop\door_pontiac_d.xbt"
     
    Last edited: Sep 1, 2015

Share This Page