Good way to create good normal map?

Hey guys, I need simple help, I read some tutorials on internet, but I want know which is best way to learn to create good normal map for exported models from 3DS max studio 2015.

So, I created some testing model in 3ds max.

8a93b28391a5668a957537b60041591dd48c408d.jpeg

Just poly modifier, and unwrap uvw modifier.

So, my question is where is the best to create normal map for this model? In 3ds max and then export it with model, or inside some other solution, like PixPlant or similar? XNormals?

This is that model in UE4, without normal map.

dca00f433708bdc7f3b5bb2ecfb7247122b5994e.jpeg

And then I created normal map in pixplant, and import that map to UE4 and to my model in blueprints code (used texchord for cordinates).

But I have little problem in finnal results, my moddel have some weird blurring in quads borders, like this in picture:

6d341f4c9b6f9a18120f8abb79924beab1388ea1.jpeg

I apologise to you, but I forget to printscreen that blurring to show you.

So after read some tutorials, I see that just must to create better normal map for this.

Little suggestion in which way to learn this?

Thank you!

I found similar problem, I have problems like this:

attachment.jpg

I will try steps like in that solution.

There’s tons of miss information in that thread.

You do not need to bevel or chamfer to avoid seams, you can get seamless results on a cube.

Always bake in a program that supports Mikk Tspace. xNormal is a cheap and free option.

Make sure you are using a synced work flow, here’s a great post explaining how http://www.polycount.com/forum/showpost.php?p=2257792&postcount=1845

The noise you are getting is normal and from compression, what you can do is bake a 16 bit normal map before down sampling to 8 bit. Basically there’s not enough color information in a standard 8 bit image to make a very glossy look smooth, a bit of roughness easily covers that up, otherwise you can either avoid using a normal map or plan with compression, or try to model and bake around avoiding gradients in your normal map.

Thank you, I will try to bake normal map in 3ds max today, and then try xNormal, to see some deeper explanation which steps are for what etc…

What about pixPlant?

Tiling textures don’t need to used a sync’d workflow, so you can use any application to create those.

Here’s the short version

  • Export as an FBX or OBJ with no tangent information included, but do export normals.
  • In Xnormal, make sure the MikkTSpace plugin has Compute Binormal checked in plug in options, bake in tangent space as X+Y-Z+. (Optional bake at 16 bit and downscale to 8 bit in a photo editor before importing to UE4)
  • Make sure Import Normals is checked when you import the mesh into UE4, and the normal map is set to TC_NormalMap.

I haven’t been able to find a good explanation for what a synched normal map workflow actually means. I never ran into this on the film side of things, can anyone clue a realtime noob in? :smiley:

Basically with a synced workflow, the baking application and the application displaying the model are interpreting the normal map in exactly the same way. This is not a concern if you are not baking normal maps from a high poly to a low poly or if you are using tiling normal maps. There’s no standard way to display or generate a normal map, so if you bake in xNormal, Max, Maya, Modo, Blender, etc, they all may give you different results.

Ok, I must apologise to you, because I’m stuck here and I really dont know what to do, because i’m watch some tutorials, and that is to complex to me for now, too much informations, i’m realy lost for now.

So, here is what I got:

1.) Created some low poly model of wooden fence in 3ds max, in second chanel, and with unwrap uvw modifier with simple texture of wood. (there are 3 different models in this, first is plank which is “instanced” 5 times, second is horizontal wooden beams, and third is vertical wooden beams)

attachment.jpg

2.) Exported it to fbx with:

  • fbx 2014 model
  • Smoothing Groups enabled
  • Tangents and Binormals disabled
  • Triangulate enabled
  • Preserve Edge Orientation enabled

3.) Imported to UE4 engine, with this settings:

b8e81dfe30d04c36b158d770fb3821ac90ff9968.jpeg

4.) Applyed normal map, which I created from texture of wood in pixPlant.

image.jpg

5.) Finally I have model like this:

image.jpg

98585ff73f4dbefeb8af56a76c6ce52f78ab9435.jpeg

5a0a5beeb4c9bb328e273efd0eec9f62cc53e8c4.jpeg

So finally I have 3 questions to you, I need some help and some advice in which way to learn.

1.) This is my low poly model of fence, what is your advice to edges look better? Just chamfer in 3ds max after the uvwrap modifier or create high poly model, and then with baking normal map transform that map to low poly?

2.) I have some strange errors in UE4 preview, look at this red circle:

image.jpg

image.jpg

A strange black line appears in second wooden plank, but when I open my model in UE4 editor - black line is not here.
I tried to switch green chanel, but nothing happened.
Why is this here? When I created my fence, I just do instance of my first plank to others, so every model of plank is created on same way (instance, not copy).

3.) Sometimes my textures are blurred when I’m look at them, is this because of texture streaming?

image.jpg

  1. There’s 2 completely valid options for that problem that can give decent results.
  • A. If you want to save texture memory and reuse that wood texture for other assets, you can do a chamfer or bevel. With a bit of vertex normal tweaking, you can get away with with just the lowest number of splits/segments for a bevel. I can do a break down of that workflow if you want

  • B. If you don’t want to reuse the texture and want to make the asset as unique and awesome looking as possible, baking from a high poly would be the way to go. You could also bevel the model and then bake a high poly if you really want to do a close up of the fence in the game. If you want to do 3d art professionally, you should probably learn how to bake a high poly model, but you can often get away with not uniquely baking every mesh.

  1. It’s really hard to tell what’s happening with the black line, I’d probably need to see it in a video, larger image, or the look at the model/texture in UE4 myself

  2. Probably, the texture streaming is a bit agressive, you can disable it with some .ini file tweaks, google should come up with a bunch of results.

Thank you ZacD.

So:

1.) Because this is only models for testing and for learning, for first time I will only create chamfer modifider on my model, and put that model in engine.
When I will have enough time to learn baking, i will re-model this low poly to high poly and to a normal baking.

Here is picture what created yestarday only to see will this works, and ih seems that works corectly.

b966597528c351ec34bb4e1170f3a159b161336b.jpeg

a17a99de888d4b9afe2d76d3d117041bb88cf44d.jpeg

2.) Sometimes is black line, sometimes are “uv are overllaping …” error after light rebuild, it seems that maybe wrong options in exporting and importing model.
UV chanel is “2” - created in 3ds max.
Ok, for “UV are overlaping” error I’m pretty sure that sometimes in exporting or importing I check wrong options or sometimes model is not good ended so I have this error.
But this black line - it’s weird to me. It’s not because of shading, sometimes I have black line in landscape, seems like some error in shading or engine.
I uses gpu from my I3 procesor, maybe GPU is not good enough to engine.

b0e4100e1dd780e2007898cb818b07bc3249de0e.jpeg

0a98c28e2e15a4a1aa9c29b25bad698b39cea0f7.jpeg

3.) Yes, I founded this, i will try with this in .ini file.

Here’s my approach

  1. Model a fence without the bevel

  2. Bevel

  3. Adjust the normals of the model so the flat faces have flat normals

  4. Find image of wood online (used http://www.cgtextures.com/ because they are free to use)

  5. Combined image of ends and image of planks

  6. Removed seams between planks

  7. removed lighting info from base texture

  8. Take base color into a normal map generation program (NDO, Crazy Bump, Substance Designer, etc)

  9. Create roughness from base color

  10. Hand drew metalness to match screw heads (if I wasn’t lazy, I’d go and move the screws to match where the overlapping boards are)

  11. Unwrapped the mesh to match the UVs (the textures tile horizontally so I can have UVs running off the sides)

  12. Export with normals to UE4, create and apply material, increase light map resolution.

  13. Done.

I would add more color variation to the wood, it’s a bit to flat and uniform right now, and like I said, fix the nail placement.

Mesh: SM_WoodFence.fbx - Google Drive

what can I say? Big thanks to you!! :slight_smile: :slight_smile:

When I now finish my fence with this steps - I will post my results!
Thank you again, I’m going to work today :wink:

On small faces like this in red circle, you dont need to have normals? Only in big faces like in green circle?

Basically a vertex can have 1 normal or multiple normals. For a real-time engine, if you have multiple normals per vertex, it’s treated as 2 vertexes. To keep the vertex count low (which is what actually effects performance, not tris or polycount), you should try to share vertexes as much as possible.

Here’s a cube example, I actually pretty much started from a cube with an extrusion for the top, and went from there.

The second and fourth cube have the same vertex count, it’s just the normals have been tweaked to align with the front faces.

I actually want to explain this a bit more, example 1 is how you’d get similar results without editing normals. Example 2 has the exact same effective vertex count as example 1 because there’s 4 normals per vertex that get split in the game engine. Example 3 looks better and has a lower vertex count.

Yes! I got it, but how you deleate normals in 3ds?

After reading some stuff on internet, I used EDIT NORMALS modifier.

Then I saw that I have 4 normals per vertex, like in you Example 2 in last picture.

Then I used “Unify” option, when a big number of vertex normals are deleated and then I have minimum number of vertex like in you last picture, example 3.

But can you manualy add or delete some normals? Edit Normals modifier can’t do that.

Yestrerday I create my new texture for planks, edit seems, deleate shadows via high pass filter and created normal maps.
Today I must learn how to cretate roughness map.

So, here is what I do:

1.) Edit Normals, with “unify” method, and allign normals to faces of object.

2.) Remove light info from texture etc (texture is 2048x2048), and Unwrap model, but didnt allign edges in unwrap to looks good, still need to works with unwrap and set that edges look beter.

3.) Created roughness map with substancer designer, and normal map with pixplant. Import model in engine, and after light rebuild I have this:

Why I have that strange shadows in back side on my model?
I imported your model, applied material and you model look god and shadows are god.

Still dont know where is my mistake, maybe convert my model to final poly before exporting?

If you are having issues after you bake lighting, then it’s an issue with your light map. Using the static mesh editor/preview in UE4, open up the fence, click on UV to view it, and then change the UV channel drop down to 1. UE4 should generate a light map on import based off your UVs.

Hm, ok, I will try, but I founded that is better to change uv channel to “2” in 3ds max and then import model with uv channel in “2”.

I can’t remember why, but I think that channel “1” is lightmap for landscape, and channel “2” is for static meshes? Or I’m wrong?

Maybe is that solution, because you model is on uv channel “1”,and shading is good.

And why this example project which comes in unreal engine need long time to rebuild lighting??
Some glitch in editor or?

I have my own project, which have few times bigger landscape, sea etc, and rebuilding light is over for about 2 minutes, and this example project needs cca 5-10 minutes?

Some time ago i found this tutorial:

Treasure-Chest—How-to-Bake-Correctly-Normal-and-Ambient-Occlusion-Maps.html

It was quite handy back then (it is also when i want to have more control over creating normal maps).

But now allegorithmic substance designer and substance painter solve my all normal map needs. Thats for models with skins,
And for any default tileable seamless materials i use Awesomebump: GitHub - kmkolasinski/AwesomeBump: AwesomeBump is a free program written using Qt library designed to
Then as base for such textures (tileable ones) i often use filterforge. I kind of do not have time for making art stuff, and we do not have any artist on team.
So filterforge + awesome bump + simple models is everything we can do, and because game is meant for mobiles it is not as visible as on PC (models are tiny on phone screen).