0
$\begingroup$

I designed a complex model in Freecad and now I want to add textures and render it for a product page.

This has ~350 solids. It's a machine which has subassemblies.

This is what I tried:

  1. Exporting as STEP file and importing in Fusion360 and add textures there PROS: Works great and fusion has a good amount of materials CONS: The textures I want to apply are custom (i.e image/maps) and fusion doesn't support that.

2.1) In Freecad - export the whole file as OBJ as is and import in blender

  • Here the export contains a single element that only accepts one texture

2.2) In Freecad - convert solids to mesh and export meshes as obj

  • The good part is that this works and keeps the objects separate
  • The bad part is that I have 350+ solids and this is tedious.

What would you do?

Here rendering in Fusion to grab your attention enter image description here

$\endgroup$
4
  • $\begingroup$ "Here the export contains a single element that only accepts one texture" blender.stackexchange.com/questions/516/… $\endgroup$ Commented Nov 16, 2021 at 22:05
  • $\begingroup$ Unfortunately adding texture to individual parts of a single mesh is not feasible here. The model has literally millions of triangles. $\endgroup$
    – bem22
    Commented Nov 16, 2021 at 22:29
  • $\begingroup$ @bem22 I'm sorry I have to tell you although you might find the methods "tedious" or "not feasible", there is no magic spell to properly transfer highly complex models between different softwares without any compromises or manually improving the result. And even if the model has millions of triangles, you don't have to select each single triangle - there are ways like box select, circle select, select linked etc. to select larger amounts or areas of a mesh that should share the same material. $\endgroup$ Commented Nov 17, 2021 at 9:16
  • 1
    $\begingroup$ @GordonBrinkmann Thank you for your input. I found a solution for my problem and I'm going to create a write-up. $\endgroup$
    – bem22
    Commented Nov 18, 2021 at 4:33

1 Answer 1

0
$\begingroup$

I spent some time working on this issue and here is an answer that is fully open source. Yes, you can create great renders of your models freely, with some effort.

This solution is focused on improving solid model to beautiful render workflow

TLDR; and jump to 3) Solution if you are not interested in the synthesis

1. Create/Import your model

You are likely reading this because you either created a model in a CAD software or you have found STEP files for a model you would like to shade and render.

In my case, I designed the model using Freecad 0.19.2 and I also merged some models that were already available.

2. Problems with .obj + .mtl export

If you try to export your multi-component model as an .obj file and then import it to blender, you will face one of the following issues: a) Blender will see a single unshaded mesh object and texturing this is imposible, considering that the model has 350 parts enter image description here

The example above is a singular mesh with no shading and is rendered with using Cycles render and standard lighting

b) You export your model as obj + mtl and every component is shaded. However, when you import this to Blender, Blender will assign all of your materials to a single mesh, respecting the position of the materials on the individual parts (parts of the single mesh) enter image description here

The black plate and the coloured components in the green highlight are all part of the same mesh. The element in the red rectangle shows this. You can also see that there are 26 materials applied on this mesh. Adding customization to this is close to impossible for more components because it's hard to which one you are editing.

c) You can also export all objects individually and then "assemble" them in Blender, which even sounds hard - however, with this you lose the hierarchy you have in the CAD software and management and workflow, again, broken

3. Export your models using glTF

Read more about glTF here

This file format is going to achieve the following:

  • The solid/body to mesh conversion from the exporting software is automatic based on global settings that you can play with (for max number of vertices/triangles etc)
  • Keep meshes separate
  • Retain your object hierarchy from CAD
  • Retain your material properties, for each object in the hierarchy

Unfortunately Freecad 0.19.2 doesn't offer this out of the box, BUT I found out that Freecad 0.20 is being prepared and there are weekly builds.

My solution was to use Freecad 0.20 (mid-November release) which supports exports to glTF 2.

To do this, select your model and go to File -> Export and select glTF.

Here's what my hierarchy looks like in Freecad enter image description here

And here's the model after shading in Blender.

enter image description here

I altered the hierarchy in Blender a bit to improve my workflow

Although I don't understand the algorithm behind the glTF 2 export from Freecad, I can tell that for my model which is fairly complex, the process is almost instant (unlike exporting to obj or first creating meshes and then exporting)

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .