Generic shader with diffuse and normal mapping