   Need advice on a game engine shader system.
  I have started up a game engine project that uses dx10 and one thing that i was having trouble deciding on was how to handle the shaders. The options that i have thought of so far are: having the user assemble there own shaders using a shader library that will be packaged with the engine; have a shader fragment assembler inside the engine that assembles shaders based on certain parameters; use and ubershader system.I would appreciate any input on these systems and other options.Thanks. :)   
  What kind of game is the engine going to be used to make?   ;  Not really sure at the moment. Sort of planning for a generic 3d game engine.   ;  Anyone? :(   ;  If your users aren't going to be graphics programmers, then just implement bump mapping, specular mapping, etc (whatever effects you want), and then let the user choose their shader with an enum or flags, etc...But if your users are going to be graphics coders, then perhaps they will be comfortable plugging their own .fx files into the engine...If you take the custom-shader route, it's probably wise to have a bunch of "standard uniforms" that the engine will send to shaders, like lighting or material properties.Another issue to consider is how you are going to implement lighting in your engine (because this will affect how the users will have to write their shaders).Forward or deferred? Multi-pass or multi-shader? If forward will you z-pre-pass? If deferred will you light-pre-pass?   