0
\$\begingroup\$

I have this simple dice texture and would like to create a normal map for it where the black dots are are dents and the edges are trimmed(like on a actual dice) I'm using unity5. I need a explanation on how to create the normal map in PhotoShop CS5 or a code solution. Thanks in advance.

Here is the dice texture I'm using.

enter image description here

\$\endgroup\$
0
\$\begingroup\$

I won't describe how to actually use the different tools in Photoshop, because that's very much artist related and out of the scope of this site.

A (tangent space) normal-map represents the local normal, or the orientation of that part of the face. If your brain can realize it and know exactly what combination of colours to use to draw it, you can draw it manually in Photoshop. My brain can't do that, and I'm sure the amount of artists that can do it is close to zero.

Since it's an orientation, it can be inferred from height information.

This is why you need a height-map first.

A typical height map is a grey-scale image, where white colour represents the highest height, and black represents the lowest height. All the greys in-between represents various other heights.

Using your texture as a guide, you can draw something like this with Photoshop (I used line, rectangle and brush tools):

Height-map based on texture

After that, you can use a tool to easily convert the produced image from a height-map to a normal-map, I used this online tool to produce this normal-map:

Normal-map produced with a tool based on a height-map

I think you could also use NVIDIA Texture Tools for Adobe Photoshop to produce the normal-map.

Summary

  1. Use your texture as a guide
  2. Draw a height map
  3. Use a tool to convert the height map to a normal map

PS

I know the aforementioned NVidia tool can produce a texture to a normal map. It's simple and fast, but the results are of a lesser quality than producing the height-map yourself.

\$\endgroup\$
  • \$\begingroup\$ The online tool or the photoshop plugin might not actually be required. Unity can generate a normalmap from a greyscale image automatically by simply checking the "Create from Greyscale" checkbox in the import settings of the normalmap texture. However, an external tool might provide more advanced options which offer more control over the conversion. \$\endgroup\$ – Philipp Apr 19 '16 at 13:38
  • \$\begingroup\$ @Philipp I'll take your word for it as I don't know Unity. My answer here is the very generic way to do it. \$\endgroup\$ – Vaillancourt Apr 19 '16 at 13:41
1
\$\begingroup\$

Unity can create a normal map from a simple greyscale image where white is the highest and black is the lowest. That means the albedo texture you have there might already serve as a simple normal map.

Just create a copy of the image file, go back into the unity editor and drag the image into the "normal map" slot of the standard shader. There will be a warning that it is not imported as a normal map with an offer to fix it. Do that. Then go into the image asset and check "create from greyscale". For more information, check the documentation.

You should now have the dimples shaded as cylindrical holes.

To make them look more like spherical holes, go into your favorite image editing program and replace the dimples in your normal-map with radial gradients from white to black.

\$\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.