I’m working on an project on the side to visualize some complex CNC machine models in Unreal Studio in VR. I have a HTC Vive and Pimax 5K+. The model I’m working with currently has approximately 4 million polygons, but could be higher. The models are created in SolidWorks. They include lots of aluminium extrusion, lots of beveled edges, parts with holes in them, all manner of screws and fasteners of various kinds and levels of simplicity. Anyway, you get it, perhaps your typical complex SolidWorks model with a hierarchy, lots of unique and duplicate parts.
I’m not the SolidWorks guy, but he was kind enough to export various model formats for me to experiment importing with. For example, a step file, various sldasm, and slprt files. Also a fbx, glb, and gltf formats. I had the greatest success with the STEP model import, but I’d love to see some time saving features there too.
The FBX was important to me because I have polygon reduction tool called polygon cruncher. It’s not the greatest and a little awkward but does a decent job. However, this turns out to be a dead end, since even if I use it or don’t use it, the fbx import into Unreal Studio doesn’t appear to do any duplicate mesh or material collapsing at all and ends up trying to compile thousands of shaders.
The STEP file was a different story and pulled into Unreal Studio without mesh or material duplication. Naturally the materials were all just colors, but I can live with replacing those as long as they are maintained upon reimporting changes. However, naturally the biggest thing is that there is no polygon reduction by default, so I would have to do all this manually on every mesh in my model, and there are lots of them.
Ideally I’d like to see more automated intelligent options. For example, a) automatic polygon reduction and re-tessellation or re-topology of meshes to remove inefficiencies and be better prepared for LOD generation, b) automatic removal or hidden visibility of 100% occluded meshes, c) automatic lod generation, d) ability to close holes on meshes at automatic lod distances and bake holes as materials instead.
I feel lots of these things are perhaps already possible and I’m just missing them because I’ve been out of the Unreal Engine workflow for far too long.
This is kind of minor too but the Product Viewer should really have a dedicated Product Viewer VR template. It looks like the current template uses deferred and temporal AA and likely lots of other not so ideal VR defaults. Its nice that you can switch easily and view in both modes, but having an additional dedicated template that was created to optimize for VR would be great.
I also tinkered with Twin motion and I have to say that I felt the performance in there was better than in Unreal Studio, but didn’t appear there was anyway to export or bridge back into Unreal Studio or Unreal Engine at all. I could actually have stayed with Twin Motion perhaps but the scale was way off in VR. Perhaps there is an option to rescale the whole model somewhere or specify it on import that I missed?
Really all this is a just a starting point. I’d like to end up making a product configurator for trade shows or as crazy as it sounds on a web page. I’d also like to be able to run this on various other VR devices and make an AR viewer for an iPad or tablet. However, I’m at the very beginning and all this depends on achieving huge performance gains on a complex model like this, while at the same time supporting SolidWorks model changes as they happen periodically.
I’d love to hear from other people who are going through the same kind of project from SolidWorks, what tools and workflow you are using, and how you are handling your complex model.
Generally though, I’d love to get some advice or hope that this post is read by people at Unreal, and more of these intelligent import features can be added to future versions.
Thanks for listening my friends.
All the best.