In fact, the use of the .fx file is already reflected in DirectX 8.
In the .fx file, because the vertex rendering, pixel rendering, etc., what is the difference with .vsh and .psh files?
1. Two types of rendering can be implemented in the same file
2. Support rendering status and texture status expression
3. Multiple paths OK
4. D3D can access strings and functions in the file
All in all, Direct9.0.0.fx file = DirectX 8.FX file * .vsh * .psh