What options are there other than Effects?

Jul 19, 2013 at 5:03 AM
Edited Jul 19, 2013 at 5:08 AM
Effects is a higher-level API that simplifies some aspects of using the Direct3D 11 API and coordinating the various render state settings and, render pipeline stage shaders, but there are other choices.

For developers new to Direct3D and HLSL or for projects with fairly standard shader requirements, you may want to consider using the "built-in" shaders provided by DirectXTK
  • BasicEffect
  • AlphaTestEffect
  • DualTextureEffect
  • EnviromentMapEffect
  • SkinnedEffect
DGSL and Visual Studio Direct3D Starter Kit
Visual Studio 2012 and 2013 include a Shader Designer which uses a visual tool to generate Pixel Shaders. These can be used in combination with a standard Vertex Shader.


Direct to Direct3D 11
Rather than use Effects to manage your rendering configuration you can of course just use the API directly. This means compiling your Effects (.fx) file multiple times to generate each combination of Vertex Shader, Pixel Shader, etc. and then using the various Direct3D 11 APIs to set the appropriate shader blobs, constants, and related render state. This is the most flexible solution, but definitely requires more advanced experience with using Direct3D.