|On this page|
Unlike the Vertex node, it supports computing vertex normals for polygon soup primitives that were created with a PolySoup node having the Merge Identical Vertices option disabled. Existing polygon soup primitives can be passed through a PolySoup node with Merge Identical Vertices disabled to ensure that vertices are unmerged.
The subset of geometry whose normal attribute,
N, should be modified.
This can be a point, vertex, primitive, or edge group. If necessary, it will be expanded to a point, vertex, or primitive group, depending on the value of Add Normals to. If the input geometry doesn’t have a normal attribute and Add Normals to is set to Vertices, completely smooth vertex normals, as if Cusp Angle were 180, will be computed over all vertices first, and then normals will be computed for the group as specified. If the input geometry doesn’t have a normal attribute and Add Normals to is set to anything else, this group will be ignored and normals will be computed for all relevant geometry elements.
The type of group that Group specifies.
If Guess from Group is specified and the group type is ambiguous, the guess is made that Group specifies a primitive group.
Add Normals to
The type of elements to which to add or modify the normal attribute,
Normals will be computed for each point. This will be the average of the vertex normals around the point, weighted by the vertex angle for each polygon incident to the points, so that, for example, triangulating the surface won’t change the result.
Normals will be computed for each vertex. If normals of vertices around a single point are less than Cusp Angle apart from each other, they will be averaged together, weighted by the vertex angle in each polygon.
Normals will be computed for each primitive.
A single normal will be computed for the detail, being the average of the primitive normals, weighted by the primitive area.
When computing vertex normals, if normals of vertices around a single point are less than or equal to this angle (in degrees) apart from each other, they will be averaged together, weighted by the vertex angle in each polygon.
When set to By Vertex Angle, care is taken when computing normals to try to avoid issues introduced by sliver polygons and to weight contributions to normals by angle, so that triangulation won’t change normals significantly. When set to Each Vertex Equally, a faster, but less accurate, approach similar to the approach used by the Facet SOP, is used to compute normals, where each vertex is given equal weight around a point, and less checks are done for ensuring stability. When set to By Face Area, the behaviour is similar to __Each Vertex Equally_, except that vertices on faces with more area will be given more weight when computing point normals. This is often used to fake the appearance of a smooth bevel for geometry with only a simple chamfer.