Is it possible to make lighting in a normal effect work like the lighting in the basic effect?
With a basic effect it's really easy:
BasicEffect effect; effect.EnableDefaultLighting();
You can make any configuration of BasicEffect
yourself, such as the so-called "default lighting". But really, XNA's BasicEffect
is not basic at all. Having so many different options means that the actual shader is constructed of many interchangeable fragments. It's quite complex internally.
However, if you don't want your shader to work in a variety of ways, it's much simpler. You can implement your own so that it combines a specific set of features and always uses them. Directional lighting plus ambient lighting is very easy, and google will surely give you a workable example.
You will have to do the work that the built-in class does for you when it prepares to use the shader. You will need to assign a light direction and color, and define and ambient color and intensity. It's more lines of code than using BasicEfect
, but the shader will be your own to customize and experiment as you please.