Jump to content

Issue importing mesh files from different PC


photo

Recommended Posts

Hi,

we are currently facing an issue, importing previous generated mesh files from another PC, which were generated during runtime via FBX Importer.

The main idea behind our software is importing an object during runtime (FBX/CAD...) during runtime using the proper importer plugin. No issues at all. Because of some other project related files, that will be generated within our software, and those "project" folders is not stored within the applications folder, we used the FileMount-system. Also no big deal. So users will use the following workflow:

  1. Create a new project, not within the software application folder (using Mounting-capabilities).
  2. Import another CAD/FBX file during runtime via the ImporterPlugin. The imported CAD/FBX file AND the generated .mesh/.mat-files will be also stored in the project folder.
  3. User will follow our content-workflow to generate additional information, which are also stored in the project folder.

The implementation from our side work as intended, we can even move freely the project folder around the same PC on other harddrives/folders. During startup we simply match/correct the existing mount information, so all content will be loaded properly.

The issue exists, when we are moving those project folder to another PC (user will maybe share his work with other users). Loading the project using/creating proper mount information works without any issues, all .mat files seems to work as well. However, the engine creates a lot of errors, that the .mesh file could not be loaded:

Spoiler

ERROR:    Mesh::info_mesh(): can't open "F:/example_projects/breaker_example/content/objects/internal/earth_medium_large_middle.mesh" file
ERROR:    Mesh::info(): unknown format of "../../../example_projects/breaker_example/content/objects/internal/earth_medium_large_middle.mesh" file
ERROR:    Mesh::info_mesh(): can't open "F:/example_projects/breaker_example/content/objects/internal/earth_medium_large_bottom.mesh" file
ERROR:    Mesh::info(): unknown format of "../../../example_projects/breaker_example/content/objects/internal/earth_medium_large_bottom.mesh" file
ERROR:    Mesh::info_mesh(): can't open "F:/example_projects/breaker_example/content/objects/internal/earth_medium_large_top.mesh" file
ERROR:    Mesh::info(): unknown format of "../../../example_projects/breaker_example/content/objects/internal/earth_medium_large_top.mesh" file

[... Further down the log...]

WARNING:    
WARNING:    Xml::printUnusedData(): Unused in file:"breaker_example/breaker_example.world"
WARNING:        Unused in node:"surface"    arg:"name"    value:"COFFE.001"
WARNING:        Unused in node:"surface"    arg:"physics_friction"    value:"1"
WARNING:        Unused in node:"surface"    arg:"physics_restitution"    value:"1"
WARNING:        Unused in node:"surface"    arg:"material"    value:"2df68624e4ea1b33cb23a6f60fca71ddd1a9c998"
WARNING:        Unused in node:"surface"    arg:"name"    value:"COFFE.001"
WARNING:        Unused in node:"surface"    arg:"physics_friction"    value:"1"
WARNING:        Unused in node:"surface"    arg:"physics_restitution"    value:"1"
WARNING:        Unused in node:"surface"    arg:"material"    value:"8ada53ba740b4fd16e3846fc302ef62b6f19958e"
WARNING:        Unused in node:"surface"    arg:"name"    value:"COFFE.001"
WARNING:        Unused in node:"surface"    arg:"physics_friction"    value:"1"
WARNING:        Unused in node:"surface"    arg:"physics_restitution"    value:"1"
WARNING:        Unused in node:"surface"    arg:"material"    value:"2255b9ce47ef76d5e7bdda30f4b227cf888e72e2"

The content is loaded/stored normally into the .world file so no additional data-workflow happens during startup. Also, we grab during startup the scene hierarchy via World::getNodes() which returns all objects as intended. Engine/Software version is the same, so only the PC will differ in our test.

Is this issue inteded to raise? How can we share .mesh/.node content freely to multiple client PCs to load content correct?

Any advice would be much appreciated.

Best

Christian

 

Link to comment

Hi Christian,

It's hard to tell without seeing the actual code and how you do saving / loading meshes on import and start. If you can create a really small sample that demonstrates this issue - it would be much easier to track down the root cause.

Thanks!

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

Hi silent,

thanks for the reply. I have isolated the problem for you, please look at the attached file. I have created an simplified AppWorldLogic-sample, where you can either load an existing project or create a new one (you need to create an 2.15.1 project, named "Mounting_Example" to avoid any further code modfications). Once the custom project is loaded, you can load an external fbx file (use the FbxImporter) and save the world file. Also attached is an simplified .fbx model, but works with everything else. :) When creating a new project, it will copy the template.world (also attached) file from the applications data folder and renames it.

Also attached you can see an custom "project" folder the application creates during runtime. You can test to load the example project folder to get the issue I described both.

As far as I can see during creation, the issue might be the path in the .world-file for each node-entry. The <mesh_name>-tag either stores the path to the .mesh absolute (if the mount file was created on another hard drive) or relatively (if the mount was created on the same hard drive). I maybe have to re-link those assets, when mounting a new project, but are unaware of how to do that.

Hope that helps.

Best

Christian

mounting_example.7z

Link to comment
×
×
  • Create New...