Crude shading algorithm, needs a lot of work