0

Here is the image I want to make into a normal map:

Texture containing lighting data for LEGO-like studs

I've tried multiple tools for converting this image into a normal map, but they all seem to interpret the image wrong. The normal map is always rendered with weird ridges rather than studs with proper lighting. How do I turn this image into a normal map with the same lighting as seen in the greyscale version? (I have access to Photoshop if that helps, but I'm willing to use online tools as well.)

7
  • what does "normal map" mean? Without the pseudo lighting, it would be just a solid grey rectangle.
    – Scott
    Nov 20, 2023 at 3:36
  • Normal map, instead of bump map, for 3D rendering.
    – Rafael
    Nov 20, 2023 at 3:52
  • But this is not a bump map either. It is a shaded image.
    – Rafael
    Nov 20, 2023 at 3:52
  • @Rafael yes, but how do I turn the shading into normal information for the 3D renderer?
    – AcinonX
    Nov 20, 2023 at 4:07
  • Actually, I think I figured it out: I should make 4 different versions of this image with different lighting and feed them into the normal map generator.
    – AcinonX
    Nov 20, 2023 at 4:08

1 Answer 1

0

The shown image is a rendered 3D model. It's not a 3D model, but a 2D image which could be captured by a camera which is placed at a certain place in front of the model and there's a certain light. The reflection properties of the surface and the light conditions affect the result as much as the geometry of the 3D model.

A little general blahblah: Normal map tells with colors the direction of the surface normal more accurately than the directions of the faces of the polygon approximation of the surface. Using it to calculate the light reflection to different directions reduces substantially the rendering effort of the model. The polygon mesh can be much simpler than the actual surface texture.

Unfortunately generating the normal map needs the 3D geometry - nothing less contains the information needed to calculate directions of the surface normals. There's no method to decide which geometry is behind your image.

Proof: Let's assume the 3D model contains some bumps and dimples like the next one

enter image description here

The straight on the face projection of it looks this:

enter image description here

But the straight on the face projection would look the same also in the case the model was only a flat planar image painted on the straight planar surface. If you have only one projection image of the 3D object you have no way to decide the actual geometry and the the normal map stays unsolvable.

The situation is different if there's more shots from different directions or multiple shots from the same direction, but the direction or spatial density of the light varies in a well known and managed way between the shots. A single photo is not enough.

Or is it? If you watch my image you may easily think that it looks too familiar. I must know the 3D geometry behind your image to be able to to draw my 3D model to be able to render my higher resolution images. Very likely I look lazy, so lazy that I bothered to draw only a few bumps and dimples.

I didn't know the geometry. I guessed it. I have drawn so many elementary 3D models that I could dig from my cumulated experience a possible 3D model which generates the expected rendered image, when the material is the simplest possible and the light is simple, too (one directed, but distant light and a little undirected ambient light).

Today artificial intelligence computer sight programs can make the same guesses, but they are still under development. And they can make right guesses only of the images which contain only items they are taught to know to be worth checking. Using AI is out of the scope of this answer.

What to do: Guess the actual 3D geometry and use some capable enough artistic 3D modelling program to create the 3D model and output the wanted normal map. I cannot show an example because I do not have such 3D program.

GIMP has some tools to help if the 3D model is so close a flat plane that a bump map can present the surface elevation variations (as brightness) with good resolution. GIMP creates the normal map with few clicks. See this: https://www.youtube.com/watch?v=77Nd7yXuSgg But as I said, your image cannot be the input, your image is the starting point for guessing what's the right bump map (called also depth map). The bump map must be painted. Your geometry looks flat enough for it.

2
  • I was able to generate a normal map by making multiple versions of the image with different light angles. I made my image from scratch in Photoshop for precision reasons, so it is not a 3D render.
    – AcinonX
    Dec 10, 2023 at 19:59
  • @AcinonX So your attached image it's a flat planar painting from the start. The normal map should in that case be a single color rectangle because there's only one normal direction. And, of course, the inverse color for the back side. If it's something else it does not present the exactly revealed geometry. Dec 10, 2023 at 20:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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