this code will add a plane:
import bpy verts = [[1,1,0], [1,-1,0], [-1,-1,0], [-1,1,0]] normals = [[0,0,1], [0,0,1], [0,0,-1], [0,0,-1]] faces = [[0,1,2],[2,3,0]] me = bpy.data.meshes.new("test") me.from_pydata(verts, , faces) #add normals (no effect at all) for i in range(len(normals)): me.vertices[i].normal = normals[i] ##me.vertices.foreach_set("normal", bpy_extras.io_utils.unpack_list(normals)) bpy.context.scene.objects.link(bpy.data.objects.new('test', me)) #add created obj to scene
as you can see in code - two normal vectors are pointing up and two down, but blender is showing me this picture in which all normals are pointing down:
blender ignores(?) the imported normals, and calculate the normals from the triangle winding. and i’m trying to import from a format that has random triangle winding.
though from the python console i can see that the imported normals are here.
what’s going on. how do i force blender to use imported normals instead of triangle winding to calculate the face direction ?