The Direct3D API defines several API elements to help you create and manage the effect system.
The effect system encapsulates state assignments in an effect. Each effect is a collection of pipeline state which can be broken down into state assignments using state blocks, resources, and shaders. Depending on the size of an effect, you can choose to implement one in an ASCII text string or an effect file (.fx). To organize information in an effect, see the effect format.
Having designed an effect, use the effect API to set state in the device during rendering. As well, the effect system supports a series of reflection API's for getting and setting effect data. For more information, see Effect System Interfaces (Direct3D 10).