При работе с геометрией меша через объект bmesh мы можем “пересчитывать” нормали – разворачивать нормали в противоположную сторону, отталкиваясь от направления нормалей соседних полигонов.
Создадим объект bmesh и перенесем в него геометрию текущего выделенного меша.
1 2 |
bm = bmesh.new() bm.from_mesh(bpy.context.object.data) |
Для того чтобы выровнять направление нормалей, воспользуемся оператором recalc_face_normals().
1 2 3 4 |
bmesh.ops.recalc_face_normals( bm, faces=[face for face in bm.faces] ) |
В параметрах в оператор передаются объект bmesh и список полигонов, для которых нужно пересчитать нормали.
После чего вернем исправленную геометрию обратно в текущий меш.
1 2 |
bm.to_mesh(bpy.context.object.data) bm.free() |