Changing Face Normal's Direction?



  • Hi,

    Face normal's direction is computed automatically based on the average of the points, correct me if I'm wrong.

    Is there a way I can override it and compute it myself?

    Regards,
    Ben



  • Hi,

    the orientation of a face, i.e. the average of its point normals, is determined by the right-hand-rule of the cross product. Because of that, inverting the vertex order of a polygon will also flip its normal.

    Note that this order is primarily a geometric feature and not a sequential one. If you for example reflect the points of a polygon on some axis, you will also invert their geometric order by that. To have the resulting polygon to point into the same direction as the source, you will have to invert the vertex order of the polygon.

    I have shown most of this in an example for another question of yours.

    Cheers,
    zipit



  • @zipit

    Thanks for the response.
    But I think there is a misunderstanding.

    I just want to replace the face normal's direction.
    So somewhat an operation like this

    face_list = polygon_obj.GetFaces()
    for face in face_list: 
        face.normal = c4d.Vector(x, x,x) 
    

    There is a GetFaceNormal but it is on the SculptObject.
    Basically, I don't know how to access the face's normal and replace them with my own vectors.

    Here's also a demonstration of what I am after in Houdini:
    https://www.youtube.com/watch?v=GHyZVT6t0Z4



  • Normal data is stored in a Normal tag. See NormalTag Manual.

    So you can create a (new) normal tag and store any new normal data you like.

    If you look around the forum you will find threads showing how to do that in Python, e.g. Handling direction of the normal tag.



  • hi,

    everything have been said, nothing to add here :)

    Cheers,
    Manuel


Log in to reply