Skip to main content
Solved

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


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.

Best answer by virtualcitymatt

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

View original
Did this help you find an answer to your question?

2 replies

virtualcitymatt
Celebrity
Forum|alt.badge.img+35

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


  • Author
  • April 27, 2021
virtualcitymatt wrote:

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!


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings