Creating 2D Illustration based normal maps

Creating2dillunormalmaps


I’ve touched upon this subject before on this blog. My earlier articles around this subject are as follows:

I recently wrote 2D to 3D Laigter to Curvy 3D Dragon as well which mentions normal maps and height maps using 2D images and goes further by using them to make 3D models.

I wanted to write an updated article on the workflow of customizing a 2D Illustrated normal map because there are a few new things to mention.

This is a more time consuming technique than just generating the normal and height maps automatically (unless you are happy with that, then you are done) but it might be worth it depending on the result needed and I did still use Laigter

in the workflow. I use Krita to do the 2D artwork and I also used it in the process of creating what I needed for the customized normal map. The techniques I describe in Illuminate 2D Shape G’MIC

are also relevant to this article so you will need to read that one. As well as this you will need a method to combine the representations of the 4-5 light directions into a normal map. I used a software I’ve had for a while called Sprite Lamp (**) to do this which was made for this specific purpose and works fine with larger images. I also tried out SpriteDLight (***) for doing that part. I think there are manual ways

to do this as well using color channels.

Create your artwork

First you will need a picture with clearly defined lines and flat colors.

I tried it out with a line art Illustration of a dragon I hand drew using Krita.

dragonlineart

If you want to see a video for that process there is one below:

https://www.youtube.com/watch?v=DrZfH9_ALIU

Create normal map(s)

After some experimentation I decided the best way to go about making the initial normal map was to separate the parts of the dragon such as the body, wing, leg, arm, eye and the head and layer them so that the resulting normal map sprites I needed could look more 3D when re-composited together. I thought this would make the process a bit more effective without having to manually correct too much.

I saved the layered parts of the dragon (with transparent backgrounds) out as .PNG files, I did not crop them, I kept them in the original document size so that they would open in the correct positions in Laigter for easier use.
stages dragon laigter gmic krita

line art to layering to normal map then the next stage…

I then exported the normal maps for all of the layers out of Laigter and imported these into Krita.

Create the starting light directions from the normal map

I merged the layered normal map’s of the dragon parts back into the complete dragon (transparency masks using the layered artwork you created help with this process). Now with a normal map to work from you can use a filter in G’MIC which is included with the latest version of Krita called “Illuminate 2d Shape”. I wrote about this recently

if you need a guide on it.

Light down

After that I hand edited each light direction using a basic brush in Krita as you can see in this video below I recorded for one of the light directions.

My thought process for using the 16 colors for this was that it would be easier to edit things without having to worry about blending things at the same time.

16valuegreyscale

You can get a really smooth result for the light map directions using the G’MIC filter as well if you want to start with that instead.

My way of doing it also meant I had to find a way to smooth out the graduations of tone afterward to create a smoother normal map for each of the light directions, so maybe it wasn’t a good idea. However I eventually did that using another G’MIC filter called artistic stylize with a custom wax crayon texture I made. I’ll put that on my Gumroad when I have time if anyone wants it.

paintingcrayondrynewsprintblendbw

You can use your own textures for that as well. Here is the process for using custom textures with the G’MIC Stylize filter:

https://www.youtube.com/watch?v=EA4u9bL9IjI

Making the new normal map with the light directions

I used Sprite Lamp to import all the light directions and create a normal map from them.
Sprite Lamp dragon normal map

Normal map creation in Sprite Lamp

You can see how I did that toward the middle of this video from the Illuminate 2D Shape article, it is the same process I used for the dragon light directions I hand edited:

As for the height map (if you need it) from the normal map I actually thought Awesome Bump created a nicer height map from the normal’s exported from Sprite Lamp rather than the one from Sprite Lamp, especially for using as a 3D Bas-relief version. I changed the settings in Awesome Bump a little for that so I got more details.
dragon_awesomebump_Depth3

Recalculating a height map from the normal map using Awesome Bump

Thank you for reading.



one day. Librepay
. Buy me a coffee
. Kofi
.

Gumroad



Source link