Nvidia Texture Tools 2020 - It's great, but -

Hello,

I hope I’ve come to the right place to voice this.

I’m a developer and texture artist in the flight simulation scene. Today, I found the new version of Nvidia’s texture tools 2020 of which the previous version (for CS6), I found myself using almost every day with restrictions on certain features that caused endless crashing when enabled/clicked on accidentally. I prefer the newer versions of Photoshop CC to CS6 so as you can imagine, I and many other texture artists in the community were in need of a modern version of Nvidia’s texture tools.

Thus far, I’m really fond of the new innovations this plugin has brought to the export process with its new UI and options, however, the downfall is that a feature we heavily relied on upon in the past no longer exists: Save Flipped Vertically!

image
This is an essential feature for games which require the DDS to be flipped vertically on save. It would be amazing if this could be brought back so I can switch to this tool for good.

I partially echo the concerns of the individual who made this post, Nvidia texture tool exporter make bad DDS files, but I don’t wish to delve into it as it seems to be on your radar.

A feature from the previous version which I’d love to be seen brought to fruition is ‘Profiles’, I can output many contrasting textures for different game platforms requiring several parameter changes, this would be great to load in pre-saved profiles with the correct parameters selected.

Furthermore, for the standalone version of texture tools, I’d admire to see a batch texture export feature. A use case scenario for this would be that Substance Painter does not export DDS out of the box or with a readily available plugin, meaning my workflow for this would be to export to .tga, open the texture in Photoshop and save it using the old version of Nvidia Texture Tools. This is strenuous and downright boring when it comes to exporting 15 textures.

In all meaning, a feature as such would be a lifesaver for such workflows. Just load an aforementioned profile set and batch export a selection of files. I imagine this wouldn’t even take too long as from my tests, CUDA exporting is much faster and efficient when it comes to exporting heavily compressed formats.

I also come in with a question, is BC3 the exact same as DXT5 or is there some sort of difference deep down? I’ve never been faced with such terminology.

Thanks for reading and I hope this wasn’t too much of a drag.

– Max

Hi Max,

Thank you! I’ve added this feature request to the list of things to hopefully include in the next version. (Currently, the workaround for this is to flip the image manually in Photoshop using Image > Image Rotation > Flip Canvas Vertical, which can be bound to an action, then to adjust the normal map settings as needed if performing normal mapping - but it is an extra step.)

The new version of the plugin has support for Photoshop actions, which can be used for both things like profiles and for batch processing in Photoshop. (The standalone version has other automation features described below). So, for instance, if you record an action to save an image a particular way, you should be able to replay that action from the Actions palette - or even bind it to a hotkey so that you can do things like saving an image with normal mapping with a single key. Additionally, you can transfer files with actions between computers, so this replicates the things you can do with copying profiles between computers. However, modifying a recorded action can be a bit difficult at times.

The standalone version has a batch mode, in fact! We describe it a bit at https://news.developer.nvidia.com/texture-tools-exporter-2020-1/. The basic idea is that you give it a file with a series of command-line arguments, which can be almost anything that the standalone version supports. If you then run nvtt_export.exe --batch <insert-the-path-to-your-batch-file-here>, the standalone exporter will process each line of that file. This is an approach that’s flexible in that you can convert lots of different files, convert a single file to use lots of different formats, or handle lots of different files each with different settings, but is also not as streamlined as a feature that would process a set of files with a single profile. The idea, however, is that for workflows where you have to process a lot of files regularly, you can write a script to generate batch files and then send this to nvtt_export. (Batch files also have the slight advantage that the standalone only needs to open and close once to process a set of files, instead of opening and closing for each file.)

Finally, to answer your last question, BC3 is indeed the same as DXT5! Wikipedia has a good reference of the mapping between DXT1-5 and BC1-3 at S3 Texture Compression - Wikipedia. (In short, DXT1, 3, and 5 are BC1, 2, and 3 respectively, and DXT2 and DXT4 are BC2 and 3 respectively but with premultiplied alpha, which is now a setting for all formats via the “Export Premultiplied Alpha” checkbox.)

We standardized the names in the new version to hopefully make things less confusing for new users (as we can now talk about BC1-7 as opposed to DXT1-5, 3Dc+/ATI1, 3Dc/ATI2, and BC6-7, and this now also matches the DXGI formats and Khronos data format specification formats that users of new rendering APIs will be most familiar with.)

Hope this helps!

–Neil

1 Like

Hi Neil,

Thanks for your response, very detailed and just what I was hoping for! I shall be giving all of the bits you’ve outlined a try.

This has brought along some much-needed innovations from the previous tool and I look forward to permanently switching over once the new version rolls out.

– Max

Hi Max,

We just released version 2020.1.3 of the Texture Tools Exporter, which includes the ability to both import and export DDS files with the y channel flipped, which should hopefully solve this issue. Here are some more details about it:

To save a DDS file with the y channel flipped, check the “Flip Vertically” checkbox at the bottom of the left pane, or if you’re using the command line, you can use the --save-flip-y flag. (One quick design note - you’ll notice that this also flips the image preview as well, while normally the image preview stays the same for things that the engine would account for, like exporting premultiplied alpha or using a linear instead of sRGB image format. This is so that people can feel when the image is being flipped, so that they don’t accidentally save an image flipped or not flipped when they didn’t mean to.)

To read a file with the image flipped, check the “Flip Vertically” checkbox in the new dialog box when loading a file. (You can also make it so that this dialog box doesn’t show every time you load a DDS file by unchecking the “Show this Dialog” box, in which case you can re-enable it from the plugin’s About box in Photoshop, under Help > About Plug-ins… > DDS - NVIDIA Texture Tools Exporter). Or, if you’re using the command line, you can use the --read-flip-y flag.

(Of course, you have to make sure that you don’t export a flipped DDS file and then read it unflipped, or export an unflipped DDS file and then read it flipped. Unfortunately, there doesn’t seem to be a field in the DDS file format for whether or not an image uses flipped coordinates.)

Thanks again, and hope this helps!

2 Likes

Hi Neil,

This is wonderful and quite innovative in the new version, its great to see exactly what you’re going to be exporting. I’ve done some tests and everything seems to work just as intended. Great release!

Thanks for all your help and effort.

– Max