Solved

Is there a way to recalculate vertex normals when these measures already exist?

  • 27 April 2021
  • 2 replies
  • 12 views

I am working with a 3D city model (composed of meshes), where the vertex normal pool is simply a copy of the vertex pool. Obviously, this is incorrect and I do not know why that is the case, as I was simply handed the model ready-made. I am wondering therefore if there is a possibility to do a reset for these measurements? To calculate the vertex normals in some automatic way anew? I appreciate any input on this matter! Many thanks.

icon

Best answer by virtualcitymatt 27 April 2021, 13:18

View original

2 replies

Userlevel 4
Badge +26

Try the MeshMerger - the mesh merger contains post processing steps.

https://docs.safe.com/fme/2021.0/html/FME_Desktop_Documentation/FME_Transformers/Transformers/meshmerger.htm

I think it should work even when there is just one mesh per group.

If it doesn't work then you can use a GeometryCoercer to coerce the mesh into a composite surface, then you can use the MeasureRemover to remove all of the normals. After removing the normals, coerce back into mesh with GeometryCoercer and the run through the GeometryValidator where issue to detect is set to MissingVertexNormal

Try the MeshMerger - the mesh merger contains post processing steps.

https://docs.safe.com/fme/2021.0/html/FME_Desktop_Documentation/FME_Transformers/Transformers/meshmerger.htm

I think it should work even when there is just one mesh per group.

If it doesn't work then you can use a GeometryCoercer to coerce the mesh into a composite surface, then you can use the MeasureRemover to remove all of the normals. After removing the normals, coerce back into mesh with GeometryCoercer and the run through the GeometryValidator where issue to detect is set to MissingVertexNormal

The latter solution worked splendidly.

I used GeometryPartExtractor first to extract the mesh parts and then removed all measures, as it did not work with the coercion to a composite surface. Running GeometryValidator then created the new vertex normals.

Thanks a lot!

Reply