This is super interesting to me, actually. While we won’t be able to use any code you post directly I would love to get some more information, such as what you changed exactly and for what reasons specifically.
First though, I’d like to make sure we are talking about the same things. What do you mean by “filters”? Do you mean the preset compiler settings (so like ‘Albedo’ versus ‘Reflectance’?)
The “.exportsettings” file is supposed to be used whenever asset processor crunches the file. AssetProcessor currently crunches textures by feeding them to RC.EXE, which itself is then supposed to read the .ExportSettings file in order to choose what to do with the file. The .exportsettings file is supposed to be read by RC.EXE and its supposed to override whatever presets would normally be used by default if there was no such file.
The photoshop plugin does not save any such information into the file, it just saves the TIF file normally, and then it launches RC.EXE /userdialog=1 (FILENAME) showing the same GUI.
Are these filters you mention in your post something more than than just the selection of presets and other stuff that is in the RC.EXE user dialog GUI? Maybe something beyond just a preset or other settings? What kind of files is it producing / what is the expected output?
The current expected behavior that I’m aware of is:
-
any time the .exportsettings OR the image itself changes, Asset Processor detects this and sends the image file to RC.EXE
-
RC.EXE opens the file and crunches it into DDS files. It obeys the settings in the .ExportSettings file, and places the result in the asset cache (dev/cache/…) for the game to use. No other files are created, since we don’t like to modify your source files without your permission / user input during asset crunching (since it can happen in the background, and the files may be read-only / checked into perforce / on a network drive)
-
Running RC.EXE on the file with /userdialog=1 causes it to show you a GUI that lets you change the export settings. Clicking “OK” on the GUI is supposed to cause it to overwrite the .exportsettings file. When this happens, as in the first step above, asset processor is supposed to notice the change and send the file to RC.EXE again for processing, this time with the new settings.
Maybe there is a piece of the puzzle I am missing. I appreciate the time you’re taking to look at this, and I want to to work in the right way for everyone.
EDIT: I viewed the video. I see some interesting things here, which we need to think about.
-
The expected workflow is that you modify your images in-place inside your folder. You’re not required to copy them from your desktop into your source folder every time you need to. (But you can if you want to)
-
The “preview” image that shows in the material browser prefers showing your source TIF file if possible for preview purposes. We could switch it to showing whats in the DDS file instead. So the reason you’re not seeing the highpass filter applied is because it is applied to the output DDS, but not your source file since we really don’t want to modify your source files.
-
The DDS file that is output into the cache should have the highpass filter applied. The reason it is split into multiple files is actually for reasons of texture streaming. The engine loads the smallest MIP level(s) first depending on settings, and then loads the remaining detail levels in as you move around the level, trying to keep the highest quality textures visible even if you have limited memory. RC.EXE makes this simpler by splitting the files. the .dds file has the lowest mip(s) in it, and the header, wheras the other dds files have bigger and bigger MIP levels (but not header or anything).
In other words, its probably actually working as you expect except for the preview window.
-
The actual dds the game actually uses should have the high pass filter applied, because the DDS generated in the cache were made with that option in the exportsettings file.
-
You don’t have to apply your high pass filter yourself, as long as you put the source file in the source folder with its export settings. In fact, the recommended workflow is to just keep the TIF open in your favorite DCC tool and every time you hit save/export it should just update automatically in the game as well as the editor without you having to type anything or do anything. (Because the Asset Processor will auto process).
I’ll look into that preview window. It could be confusing that its showing the actual source file when available instead of showing the output. Another possibility is that the editor is using the source file for the 3d renderer, when it should be using the processed DDS (which should include the high pass filter).
Also, if you run the runtime (ie, SamplesProjectLauncher.exe) on your terrain, the engine ONLY has access to the assets in your cache, so it definitely should be using the processed DDS, which should include the filter. If its wrong there too, it probably means RC.EXE is not applying the filter when it should. We will investigate.