# How to determine if a mesh's normals are smooth？

**URL:** <https://forum.aousd.org/t/how-to-determine-if-a-meshs-normals-are-smooth/1764>\
**Category:** USD\
**Tags:** beginner\
**Created:** [August 12, 2024, 6:43am UTC](https://forum.aousd.org/t/how-to-determine-if-a-meshs-normals-are-smooth/1764 "2024-08-12T06:43:17Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ahren](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@ahren](https://forum.aousd.org/u/ahren)\
**Post date:** [August 12, 2024, 6:43am UTC](https://forum.aousd.org/t/how-to-determine-if-a-meshs-normals-are-smooth/1764/1 "2024-08-12T06:43:17Z")

</div>

Hi all,  
I have read the description of [UsdGeomMesh](https://openusd.org/release/api/class_usd_geom_mesh.html), but it is not very clear. Under what conditions is the normal of the Mesh smooth and under what conditions is it linear? Is there an API that can directly obtain the smooth normal?

Thanks

---

<div class="post-metadata">

**Author:** ![nvmkuruc](https://avatars.discourse-cdn.com/v4/letter/n/76d3ee/32.png) [@nvmkuruc](https://forum.aousd.org/u/nvmkuruc)\
**Post date:** [August 12, 2024, 11:23am UTC](https://forum.aousd.org/t/how-to-determine-if-a-meshs-normals-are-smooth/1764/2 "2024-08-12T11:23:48Z")

</div>

They key attribute to consider is `subdivisionScheme`.

If it’s set to `loop` or `catmullClark`, the normals are generally smooth, but may be sharpened by the presence of corner and crease attributes.

If it’s set to `bilinear`, points are linearly interpolated when subdivided and the normals are generally not smooth (face normals).

If the scheme is set to `none`, no subdivision is applied and the `primvars:normals` or `normals` attributes explicitly specify the surface normal. These attributes have an `interpolation` field which specifies whether or not that the normals are per face (`uniform`), per point (`varying` or `vertex`), or per face vertex (`faceVarying`).

If the scheme is set to `none` and no attributes are specified, the fallback behavior is generally face (ie. unsmoothed) normals.
