Normal Maps to Unreal Engine: Normal Map Conversion in xNormal

Photo of John Burdock

Instructor John Burdock

Share this video
  • Duration: 05:13
  • Views: 1782
  • Made with Release: 18
  • Works with Release: 16 and greater

How to Convert a Object Space Normal Map, into a Tangent Space Normal Map.

In this video, learn how to convert a object space normal map, and convert it into a tangent space normal map, that is natively accepted in Unreal Engine.



In this video, we're going to learn how to convert our object-space normal maps into a tangent-space normal map, using a program that we learned how to download and install in a previous video called "xNormal". Now, the first step to this process is opening up xNormal, and you can do this however you would like. But for me, I'm just going to double-click the Launch icon right here. Once xNormal has fully opened up, what we need to do first is select Tools right here, and then we'll be presented with the tools interface.xNormal has a ton of different features that we can use for besides just baking or converting normal maps. For the sake of this tutorial, though, we're after the object/tangent-space converter right here. So let's select that guy right there, and that'll open up our object/tangent-space converter interface. At the very top, we have low poly mesh. This is where we're going to be importing in our FBX, and then we're going to import in our object-space normal map in Input Normal Map right here. Then, we're going to select an output normal map location, and this is how xNormal uses all this information we have to convert to a tangent-space normal map. So it actually does require you to have your original mesh FBX file that you baked out. Now, you may be wondering why it says "low poly mesh." This is simply because, in the gaming world, a lot of artists create a high polygon object and then create a low polygon object. They then take the normals from the high polygon object, and bake it onto the low polygon object. This low poly mesh here is just to make sure these artists know that they're supposed to import in their low poly mesh and not the high one. For us, though, we don't need to be concerned about this, because we only have one object. So we are going to be importing in our high poly mesh. Now, there's two ways of importing in objects in normal maps inside of the object/tangent-space converter. The first way is just selecting these three dots, and then navigating to that file and then selecting it. The second way, though, is my personal favorite. So to do that, let's cancel this and let's navigate with our File Explorer to the location of our objects, our FBX file and our normal map. Then all we have to do is simply select our File Explorer, I have Windows 10 by the way, and drag our FBX file over to Low Poly Mesh right here, and let go and it'll automatically put in that directory for us. We don't have to go through as much digging. Next up, let's apply our object-space normal map right here on our Import Normal Map. Finally, let's navigate, this is where we will have to navigate, to our output file. This is where we're going to be saving out our new baked tangent normal map. So let's select these three dots, navigate to the location where we'd like to save it, and then let's choose a file name. Let's just call this "Tangent_Normal". So that'll be the name for it there. Next we need to choose our file type. Save As Type and, for me, I'm actually going to be using a BMP, though there is many other file types we can choose from here. I do prefer the BMP file type, though, as it seems to work very well inside of Unreal Engine, and it is the default. So I recommend just choosing that there. But you're allowed and feel free to experiment in other file types. Once we have all of this done, let's click Save, and then it'll bring up the "Do you want to create this?" interface dialog here. This is just asking us would we like to create a new file, because the object that we're trying to save to, our tangent normal here, does not currently exist. So we're going to click yes, we would like to create this new file. Finally, we can end with here, edge padding. Now, in a previous video, we talked about pixel border and how it's the same thing as edge padding. So in that previous video, we set our pixel border to 10 when we baked out of Cinema 4D for our normal map. It's important that our edge padding match that exactly. So I'm going to set my edge padding here to 10, so it matches that inside of Cinema 4D where we set that as a pixel border of 10. So pixel border was 10, so that means our edge padding should be 10. At the very, very last piece here, we simply need to just double-check and make sure that we are set to convert object-space to tangent-space right here at the top. We can also do the reverse down here, where we could convert from a tangent to an object-space normal map. But for us, we want to do the top one, right up here. Now that we have all this set, all we have to do is select Generate, and it'll only take a few moments to generate our new tangent-space normal map. If we select our File Explorer here, we can actually see it has already added that in. And if I double-click it here, we can see we have a nice, amazing-looking tangent-space normal map ready to go. Now that we've done all this, it was actually a pretty quick and simple process, let's just quickly go over a review of what we just learned to finish this video off. So first up, what did we just learn? We just learned how to open xNormal, how to open the object to tangent-space converter, and finally how to bake out and convert a tangent-space normal map from an object-space normal map.
Resume Auto-Scroll?