Big refactor of texture loading and saving:
- 2D texture arrays, and 3d textures can be saved and loaded, with or without mips.
- In a variety of formats, including BC6 / BC7 (dds) and raw binary.
Drag and Drop Images and Models Onto the Viewer!
- it opens images and models in an appropriate minimal render graph for them which allows you to view the assets, do analysis, or change the no-op compute shaders to modify the asset, and then save out the results.
- The model viewer by default shows the normals of a mesh, but you can change what is being viewed using the drop down. Only FBX and OBJ are supported right now.
- This should be helpful for seeing what is in a file, particularly in model files, or dds fles, which are hard to see inside otherwise.
- Editor UI improvemens
- more camera variable access from shaders
- globally coherent flag on UAVs in shader resource declarations in editor
Adam Badke:
- Resource destruction crash fix (Yay!)
- shader names now show up in debuggers instead of "hlsl.hlsl"
- Added command line option to viewer to compile shaders with debug info
- Updated a couple lines in the tutorial
Breaking Changes:
- Python function Host.SetWantReadback used to take array and mip index. Now those parameters are on Host.Readback instead.
- The interface for loading a binary texture in the viewer has changed, and it doesn't automatically update to the new fields.
- Python functions for setting imported binary texture parameters changed too.
Other:
- WinPixEventRuntime updated to latest version.
- You can now raytrace against dynamic vertex buffers. It used to disallow raytracing against a vertex buffer which was written to, but that is allowed now, and the BLAS/TLAS is updated accordingly.
- You can copy any image to the clipboard now. It will convert to RGBAU8 sRGB and put that into the clipboard.
- DX12 code gen imgui ui cosmetic improvements.
- DX12 application code gen now includes a camera class to make it easier to get running with generated code. In the future the code generator will use the viewer state in the .gguser file to make the generated code work more like the viewer out of the box - loading assets, setting up variables and the camera etc.
The texture refactor in particular touched a lot of code. The unit tests are running and succeeding, but if you hit any problems, let us know!