# Does geometry.computeVertexNormals() use weighted normals?

**URL:** <https://discourse.threejs.org/t/does-geometry-computevertexnormals-use-weighted-normals/87203>\
**Category:** Questions\
**Tags:** vertexnormal, attributes, normals, computevertexnormals\
**Created:** [September 26, 2025, 6:24pm UTC](https://discourse.threejs.org/t/does-geometry-computevertexnormals-use-weighted-normals/87203 "2025-09-26T18:24:52Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![torrent](https://avatars.discourse-cdn.com/v4/letter/t/4bbf92/32.png) [@torrent](https://discourse.threejs.org/u/torrent)\
**Post date:** [September 26, 2025, 6:24pm UTC](https://discourse.threejs.org/t/does-geometry-computevertexnormals-use-weighted-normals/87203/1 "2025-09-26T18:24:52Z")

</div>

I understand that when calculating vertex normals, one can get the “weighted” average of normals attached to a vertex versus “unweighted” average of normals. With a “weighted” average, “bigger” triangles have a higher weight when calculating the average normal for a vertex. With an “unweighted” average, all the triangles attached to a vertex have equal weight, no matter their size.

Programmatically, a “weighted” average does **not** normalize each triangle’s normal vector before averaging, whereas an “unweighted” average normalizes each triangle’s normal vector before averaging.

Does the calculation for `geometry.computeVertexNormals()` use weighted normals?

---

<div class="post-metadata">

**Author:** ![vielzutun.ch](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/vielzutun.ch/32/21366_2.png) [@vielzutun.ch](https://discourse.threejs.org/u/vielzutun.ch)\
**Post date:** [September 26, 2025, 6:39pm UTC](https://discourse.threejs.org/t/does-geometry-computevertexnormals-use-weighted-normals/87203/2 "2025-09-26T18:39:21Z")

</div>

Looking at the [source code](https://github.com/mrdoob/three.js/blob/0af9729d0c143a86a1d725d6e2c3ad83301f3f34/src/core/BufferGeometry.js) of computeVertexNormals(), the answer is NO. No weighted normals, just the plain average of the face normals of the faces sharing a vertex.

---

<div class="post-metadata">

**Author:** ![torrent](https://avatars.discourse-cdn.com/v4/letter/t/4bbf92/32.png) [@torrent](https://discourse.threejs.org/u/torrent)\
**Post date:** [September 26, 2025, 9:38pm UTC](https://discourse.threejs.org/t/does-geometry-computevertexnormals-use-weighted-normals/87203/5 "2025-09-26T21:38:00Z")

</div>

You mean it _is_ weighted, since the normals of the faces connected to a vertex are not being normalized before being averaged?

not normalized before averaging → weighted  
normalized before averaging → unweighted
