2
$\begingroup$

Although I do have limited experience with 3D modeling, I'm very new (about 10 days) to using Blender 2.8

I learned how to export character models from Overwatch and import them into Blender. So far so good; I can see the mesh, the UV map, the rendering pipeline, and so-forth. I would like to export the mesh to an OBJ file or an STL file for my 3D printer's slicer to work with. However I realized that a lot of the fine details were missing. That lead me down a long dark tunnel of normal (bump) mapping, rendering, and displacement maps that left me more confused than before.

Below three images are attached. You can see that the exported OBJ is identical to the original object mesh. However the rendered image has a normal map applied that provides more detail around the muzzle of the blaster.

My question is this: Does Blender (or any other 3D editing program) have the ability to export an OBJ after applying the the normal map so that the fine details are captured for printing?

UPDATE: I attempted to apply the existing normal map as a displacement per @Duarte's suggestion below. The only effect was to completely distort the model. Fourth image below shows the result.

Object mesh: Mesh

Rendered model: Render

Exported OBJ file: Exported OBJ File

Normal map applied as displacement modifier: Distorted Image

$\endgroup$
  • $\begingroup$ You have to make a really highpoly mesh by sudividing it (remesh modifier lose the UV), then use a displacement modifier with the detail masks. $\endgroup$ – FFeller Oct 7 at 16:32
  • $\begingroup$ @FFeller I tried this per Duarte's instructions below. The fourth image contains the result. $\endgroup$ – Paul Oct 7 at 17:33
  • $\begingroup$ You have to adjust the Midlevel to 1 or 0. $\endgroup$ – FFeller Oct 7 at 17:39
  • $\begingroup$ Thank you for the suggestion. I've tried both values and the only effect appears to be the entire object moving along the Z axis. The deformation is unchanged. $\endgroup$ – Paul Oct 7 at 17:51
1
$\begingroup$

Normal maps are an "effect" added on top of your model, visually changing the apparent normal (direction) of the surface at a certain point to simulate additional details.

This simulation affects shading only, like lighting, reflections effects and self shadowing (not projected shadows though). There really isn't any geometry or details there only distorted directions, so unlike displacement or bump these can't efficiently be added back as geometry.

Bump maps on the other hand store "height" values, in a black and white image. While these are also computed to affect normals only, they could optionally be used to move the mesh surface up and down according to black or white values and thus build crude geometry details, in a process often called displacement.

This process is also inefficient and a rough approximation of the original, it requires high amounts of geometry for a inferior quality result.

Bottom line is there isn't as far as I know an efficient way to add back details.

You could try and use the normal map in a displacement node, using the option RGB to XYZ and see if you get any decent results. It will require a subdivision modifier before it with a high count of subdivisions, but expect numerous artifacts and low fidelity.

enter image description here

$\endgroup$
  • $\begingroup$ Is it possible with Blender to convert a normal map to a bump map, then to geometry details? $\endgroup$ – Paul Oct 7 at 16:55
  • $\begingroup$ There may be, but it might not be necessary, I think I have found a way, See my updated answer above. $\endgroup$ – Duarte Farrajota Ramos Oct 7 at 17:00
  • $\begingroup$ I followed the instructions from your GIF. Image with distorted result was added to the original post. What are your thoughts? $\endgroup$ – Paul Oct 7 at 17:34
  • $\begingroup$ Set your subdivisions to Simple. Your mesh also seems to have uneven density which doesn't help $\endgroup$ – Duarte Farrajota Ramos Oct 7 at 17:37
  • $\begingroup$ Thank you for your feedback. I tried this and the results were unchanged. $\endgroup$ – Paul Oct 7 at 17:52
1
$\begingroup$

I would try first converting your normal map to a height map. This will always involve some guesswork on an algorithm's part - there are a variety out there - Materialize (Open Source) doesn't do a bad job, it's quite tweakable:

Normal Map:

enter image description here

Derived Height Map:

enter image description here

Used in Displacement Modifier:

enter image description here

As you can see, there are some artifacts .. this was only my first shot..

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.