Solved

The Extruder's error

  • 3 December 2018
  • 9 replies
  • 3 views

Badge
The Extruder's error

 

I recently used the Extruder to process the floor plan and expect to be able to stretch it into a 3D building model, but I have encountered many problems. In the process, I used 3dsMax to generate the same model at the same time, and compared it with the model generated by Fme. I used Fme Inspster and VS Code to view the Fbx model and compare them. I got some of the following points and discussed them together.

 

1, The Location Is Wrong

 

When viewing the model with FME Inspster, the model's position is correct. However, when using VSCode's 3D Viewer for VSCode module for single display, the position of the model is tilted and inconsistent with the position of the origin!

I judge that there are two parameters "Geometry Instance Local Origin" and "Geometry Instance Matrix" missing! Because from the Fbx file generated by 3dsMax, both parameters are valued and the location is correct.

My question is, why does FME not calculate the attribute values of these two parameters when generating Fbx files?

 

2, The Normal Is Wrong

I found a problem. After Extruder, the generated Fbx file did not calculate the direction of the normal, causing the model to display the following image.

I judge that the "Vertex Normal Pool" parameter is missing!

My question is, why does FME not calculate the normal of the surface when generating Fbx files?

3. The Result of Stretching Is Wrong

As shown on this page, if it is a simple face, it can be drawn into a cube, but if it is a complex polygon, the normal direction of the partial face will be wrong.

My question is, why does FME deal with complex polygons when generating Fbx files?

 

4, Fbx Export

FME currently only supports 7.5\\6.1, and the FbxLoader module of three.js supports versions above 7.0. When exporting, you can set the unit, the up axis, and the exported version.

My question is, why is FME's handling of complex polygons simple when generating Fbx files?

 

icon

Best answer by chrisatsafe 7 December 2018, 20:49

View original

9 replies

Badge +3

..wonder what that workspace you posted does...

 

 

Userlevel 6
Badge +32

I'm afraid you should repost attachment and printscreens...

Badge

the fmw file is extruder.fmw. the other file is in the Exturder.zip file.

Badge

I'm afraid you should repost attachment and printscreens...

these files is in the Exturder.zip

Userlevel 1
Badge +10

Hi @keplerleee. Sorry, there seems to have been an issue uploading the images and Extruder.zip. Would you mind trying to upload Extruder.zip again?

Badge

Hi @keplerleee. Sorry, there seems to have been an issue uploading the images and Extruder.zip. Would you mind trying to upload Extruder.zip again?

Hi @Nampreet ,I update those files, would you try again?

Badge +2

hi @keplerleee,

I was able to track down some information about the FBX writer that might help answer some of your questions:

  1. The same position can be defined in different ways. Geometry Instance local origin and instance matrix are both optional attributes.

    Regarding "tilting" of the model when opened in VSCode's 3D Viewer, both the outlines.fbx and outlines_3dmax.fbx appeared pretty similarly oriented (both 90 degrees up from what is expected to be "flat"). Perhaps this only happens when using a third party viewer as 3D Viewer for VSCode doesn't appear to be an official MS application - when viewing both FBX files in Autodesk's FBX Review app, the models both appear to be flat and oriented similarly.

  2. The FBX writer just writes what's in the FME geometry, which in this case doesn't happen to include vertex normals. Vertex normals aren't required for a geometry to be valid. You can find additional notes about this in the Vertex Normals and Geometry Concepts documentation.

  3. / 4. Generally, an FME component will pass through what is given to it without performing too much cleanup. Neither the Extruder nor the FBX writer validates polygon boundaries for self-intersections before writing (other formats, like CityGML, have a writer parameter for this). It may be helpful to review the Data QA: Identifying Self-Intersections with FME article for tips on how to validate your geometry with the GeometryValidator before writing it.

Userlevel 2
Badge +17

Hi @keplerleee,

Just adding a little to Chris's answer with respect to vertex normals. You can add vertex normals to surfaces that are missing them with the GeometryValidator transformer. Set Issue to Detect to 'Missing Vertex Normals' and Attempt Repair to Yes. The output of the Repaired port will have the vertex normals added to them.

Badge

hi @keplerleee,

I was able to track down some information about the FBX writer that might help answer some of your questions:

  1. The same position can be defined in different ways. Geometry Instance local origin and instance matrix are both optional attributes.

    Regarding "tilting" of the model when opened in VSCode's 3D Viewer, both the outlines.fbx and outlines_3dmax.fbx appeared pretty similarly oriented (both 90 degrees up from what is expected to be "flat"). Perhaps this only happens when using a third party viewer as 3D Viewer for VSCode doesn't appear to be an official MS application - when viewing both FBX files in Autodesk's FBX Review app, the models both appear to be flat and oriented similarly.

  2. The FBX writer just writes what's in the FME geometry, which in this case doesn't happen to include vertex normals. Vertex normals aren't required for a geometry to be valid. You can find additional notes about this in the Vertex Normals and Geometry Concepts documentation.

  3. / 4. Generally, an FME component will pass through what is given to it without performing too much cleanup. Neither the Extruder nor the FBX writer validates polygon boundaries for self-intersections before writing (other formats, like CityGML, have a writer parameter for this). It may be helpful to review the Data QA: Identifying Self-Intersections with FME article for tips on how to validate your geometry with the GeometryValidator before writing it.

Add a point of view.

We need to use FME to process the 2D building plan as a 3D building model and then load the model with three.js.

The problems raised above are encountered in this process.

1. It is true that these two parameters ( "Geometry Instance Local Origin" and "Geometry Instance Matrix" ) are optional parameters, but the models we exported with 3DMax default to these two parameters are valued, but FME is not, and if you use three.js to load the model, there is no These two parameters mean that the relative position of the model is wrong.

2. We summed up in this process. The model exported by FME is that the Y axis is facing upwards, the normal direction is not calculated, and the quaternion with the origin is not calculated, the unit is cm. We need to import the results generated by FME into 3dmax, then convert to m, with the Z axis up, and calculate the normal direction and quaternion of the optional parameters ,then it can be load by three.js with the right place. I am asking questions here to help Fme optimized this tool.

Reply