I meant an actual .fx file. I think it's cleaner to have all the associated shaders (vertex, pixel, etc.) in one file, as that system does. If you work with bare shaders alone in their own files then you even more badly need some kind of metadata-driven approach to keep them all organized.
But in a multiplatform context will I have equivalents for .fx files if I might want to use them?
PS3 -> *.cgfx ?
DX11 -> *.fx
iOS -> ? Cgfx maybe?
I'm thinking to switch to fx files for the benefit of having annotations and techniques. Otherwise if go with bare shaders I can see that I have to add extra data by myself anyway...
Are there any cons in using fx files like approach in a multiplatform engine?
I find useful to annotate pass to be sure that a given pair pixel/vertex shader is going to be rendered in a well defined pipeline stage. Also the use of annotations to link the shader params to the materials ones etc.
I find wasteful, to write a parser by myself to do the same exact things in the end ...
What do you think? Do I really have to go with bare shaders if I have to add all of that stuff? Why I would ?