automatically generate flat-shaded normals if not specified