add shading option and fix shading