flatShading:true required with MeshNormalMaterial and BufferGeometry?

So “flatShading:true” is required with MeshNormalMaterial and BufferGeometry? The default is false. This should be noted in the MeshNormalMaterial docs. To be clear, without “flatShading:true”, I don’t get(see) anything.

Does your mesh have vertex normals?

1 Like

This is not true. There must be a problem in your code or file. You should be able to see a mesh with MeshNormalMaterial without set flatShading to true


Thank you’s. I do need .computeVertexNormals() using NormalMaterial and BufferGeometry.

I had individual triangles (unindexed vertices). Looking at geometry.attributes.normal, all 3 vertex normals were the same. It seems that one “face normal” would do. Is that a thing of the past?

Then I did 2 triangles, indexed vertices (012, 213) and did the .computeVertexNormals(), and the 2 shared normals looked like they were averaged, as expected. And without “flatShading:true”, the shading was not flat (good).

So is it true that BoxGeometry etc. calls .computeVertexNormals() and BufferGeometry doesn’t?
And if you use MeshNormalMaterial with BufferGeometry, you better call it yourself?
But if you want flatShading:true, you don’t need VertexNormals?

Thanks again – I’m in good shape.