An absolutely wonderful tutorial once again, thank you. Something I picked up recently is that instead of separating XYZ, inverting a channel then combining them again, you could instead just add a Vector Curves node and flip the desired channel from there. Saves a bit of setting up time and brings the node count from 3 to 1 :)
Just BRILLIANT! That's all I have to say. BRILLIANT! Thank you for sharing your knowledge. I look forward with great anticipation to your next tutorial. THANK YOU. Dg
On the topic of combining normal maps, there actually does exist a completely mathematically accurate way to combine as many as you wish with individual controls for the strength of each one. Search for 'Combining Normal Maps Procedurally with Node Groups in Blender 2.81', download the file and append NormalMap_Scale & NormalMap_Combine-PD, for a quick overview jump to 10:45. If you can already do this with just a few nodes I'm just absolutely baffled how something like this hasn't been already implemented by default.
Hello all! Chapter list is in the description as well as below, here I'll be sure to put any corrections/updates required! CHAPTERS 00:00 - Overview 01:06 - Bump to matcap style 05:47 - Making it work from all angles 07:51 - Geometry + Textures = WOO! 09:09 - Node groups 10:41 - The global switch 14:01 - Mixing 2 normal map textures 17:20 - End As ever if anything doesn't make sense or needs clarification please let us know we'll jump in on the comments to try to help! :) Aidy.
Will you get around to making another backing video but then on non planar geometry? This video was very helpful. Ps backing 2 normal maps would also be very handy.
This is a brilliant technique, thank you, Aidy, for this detailed video! I'm also wondering if it is possible to bake *JUST the texture's normals* from a material applied to a character, *WITHOUT* baking the character mesh's normals. For example, I have a single character mesh unwrapped with stacked UVs. Different parts of a character's clothing share the same material, so those UV islands are layered and share the same texture space. The clothing's material uses a procedural texture to create a bump map. When baking the base color for this character, everything works perfect, and I get one seamless pattern in my texture atlas, despite the stacked UVs. However, when I try to bake the normal map, the character's normals are taken into account where I have physically modelled seams or pleats, and thus those unwanted details show up in the bake, breaking the seamless pattern of the texture. Is there a way of subtracting the character's normals from the texture's procedural bump map, so only the texture's normals show up in the bake (the same as if I had applied the material to a flat plane and baked the result)? Thanks so much for any advice or ideas you might have on this... 😀
SOLVED!! I just want to thank the Lord Jesus Christ for showing me a wonderful solution to this issue! There are a couple of ways to deal with baking normals on stacked UVs (first make sure to combine all objects that share that material into ONE object, otherwise each island will bake and bleed separately instead of as one seamless pattern): 1. For any stacked UVs that are *ALL* identical and perfectly aligned on top of each other (ie. from a mirror modifier), you shouldn't have any issues baking the normal map by selecting your Bake Type to be "Normal" and hitting "Bake". 2. For any stacked UVs that are *NOT* identical, and their material only uses a pre-existing normal map (not a bump map), you can just Ctrl-Shift click on the Normal Map texture (with Node Wrangler addon enabled) and then select "Emit" in the bake settings and bake the normal map as non-color data. Otherwise, doing a regular "Normal Map" bake may result in seams or natural bumps in the geometry showing up. 3. For any stacked UVs that are *NOT* identical, and their material uses a bump map, you may notice some "seams" appearing in the baked image along the real UV seams. This is most noticeable along any UV island edges that have some *stretching*, and becomes VERY noticeable if your normals are not too strong (not very bumpy). You can fix this by baking a perfectly flat proxy with your material applied, rather than the stacked UVs of your real object! - In edit mode, add a plane to your object that you are trying to bake and scale it to fully encompass the width of whichever part of your object has the widest UV. - Now in the UV Editor, with your source UV selected, use the Texel Density Checker add-on to calculate the TD of the widest UV in your object. After doing so, press "Calc -> Set Value" to copy that value to be the active Texel Density. Next select your plane's UV map and press "Set my TD" to set the Texel Density of your plane to match your original object. - If the plane's UV map now becomes too small to encompass your original UV, then scale the plane's UV up again until it just covers the widest part of your original UV, and pay attention to the value you scaled it by. Now scale the plane's geometry by the same amount. This will ensure the same Texel Density you selected earlier is maintained. - Now you need to copy the plane's UV into the UV map you will be using for baking. Make sure MagicUV is enabled in the addons. Press "U" in edit mode with only your plane's geometry selected. Choose "Copy / Paste UV" > "Copy" > and select your *source* UV map. Now press "U" again and choose "Copy / Paste UV" > "Paste" > and select your *baking* UV map. In Blender 3.1 you will get a python error message, but don't worry, everything still worked, you just need to exit edit mode and re-enter. - With the plane's UV copied in, you will need to scale it to the same equivalent texel density it had before. If your baking UV is going to be using a texture atlas, there's a good chance your texel density will be lower than in your source UV. If you already had the original object's UV scaled to the right size in your baking UV map, then you can use that as a reference. Select one of your object UVs in the source UV map, measure the TD and write it down. Select your plane's UV in the source map, measure the TD and write it down. Now go to the baking UV map, select the SAME object's UV you had previously measured, measure it again, and write down the TD value. Now you only need to find the TD value for the plane to use in this baking UV map. - Find a ratio calculator online (like from calculatorsoup) and input the first two TD values you wrote down from your Source UV map (Plane TD : Object TD), then leave the next slot blank (we will be solving for the Plane's new TD) and in the last slot input the Object TD from the Baking UV map. Hit calculate and copy the answer and paste it into the Set TD box in the Texel Density Checker add-on in Blender. Now with your baking UV active, and the plane's UV selected, hit "Set my TD". Make sure the plane's UV fully encompasses the original object's UV. - Now, subdivide the plane a bunch of times (I used 30 times). Enter Face select mode, turn on "UV sync selection", and in the UV editor brush select over any faces that are not needed to fully cover the shape of the original object's UV map. Delete these faces in the 3D view. You can also add loop cuts where needed if you need to crop in tighter and avoid overlapping any existing UVs in your baking UV map. - Finally you can separate this plane from your original object (P > Separate by Selection), and then bake the normals on it into your baking UV map. When you use that baked map on your original object, the normals will show perfectly on your stacked UVs without any seams!
That is technically correct! :D I didn't mention it in this video but due to the way the roughness map was created it can be set as sRGB in this case, there's more about that in the previous video... ruclips.net/video/YsXe11YA7AM/видео.html Hope that makes some kind of sense! :D
@@eugeniopignataro2208 Hahaaa, yeah it's a super easy thing to miss, I should have repeated a bit of that section in this video to make sure at least it got mentioned for roughness too. :D Also, you make very cool stuff by the way! :D
For anyone looking for zuggamasta's autobaking addon, it's here I think github.com/zuggamasta/BlenderPrincipledBakeNode but it doesn't seem maintained. If interested the other free addon is here: github.com/danielenger/Principled-Baker
Thanks! Next big tut will likely be a Space-ish follow up for 2.8 :) But then it possibly makes sense to do some more hard surface in 2.8 but then follow that up with some texturing. :D We'd quite like to do some environment work too that we can tie into a game idea. Lots of options! :D
@@AidyBurrows3D it would be epic if you and Gleb did a hard surface environment with space ships on a planet environment with the option of an in space fight type thing?
Hi Aidy! Big fan of what you do! Hard Surfaces is amazing! Right now, I'm looking for a way to clone several image maps simultaneously, for things like texture tiling. Say I did the photogrammetry of the bark of a tree, and I want to use the actural height map of the tree that I baked from the multires (instead of whatever Materialize would come up with). I thought materialize would do the tiling part of the trick if I brought the displacement I created with Blender, but it only does it to the generated images taken from the diffuse map, it does not do it to the displacement map. This cloning simultaneous layers should be somewhere in Blender, and if it doesn't exist yet, it might be a step closer to make Blender more like Substance. The other idea would be to automate, like Photoshop does. I could save the actions of cloning the diffuse and then applying them to the other maps, but I would like to be able to do this in open source software too.
Hi! Thanks for the kind words! :) That would be a great thing to be able to do in paint, I haven't thought too much about cloning multiple textures at once at this point, however, one option that often works is to use 2 separate texture coordinates for the same textures, and then use a black and white map to blend between those 2 materials - which are just materials of the same texture sets but just aligned differently so that you can paint over the seams and show the other material that doesn't have a seam in those areas. Using multiple uv sets helps with all this too, there are other thoughts that spring to mind. Hopefully Gleb and I can get around some shading and texturing things and stick a massive load of those sorts of ideas in a big course, and give a load of chapters away free for everyone too. :) Anyways, hopefully that sort of makes sense, oh also there is an addon and developer that I remember talking about this sort of stuff with, but I haven't had chance to check the current progress check out Andreas here!... ruclips.net/video/7n_bGhcLnWE/видео.html Stay safe!!! :)
@ Andy Burrows: comment, in addition to watching this video tutorial, telling you that: since I use Blender; I would like to ask you some questions; even if for those who know Blender as a professional, they know many shortcuts, in the sense of spending less time on their project; my question is this; since I have, so to speak, a low-pc and I know the material in applying the normal map on a low-poly object, to highlight the sculpture itself, my problem, which would be the question, is how to succeed in creating from nothing and for the first time a normal map, to be compared as a 4K or UHD image, if my cpu processor does not allow me to then make a low-poly uv map.obj?!; thank you if you answer me, if you understand my question, even with a short answer from you.
Hello! :) The Principle Baker add-on is still in development. Expect bugs! I just found a but with the detection. I saw your previous Video with the road. The shader looks really good! (and it's not a big giant bowl of noodle saled) I though about putting the alpha/transparency in the Principled Baker add-on to make baking with alpha for several planes selected to active possible. I’m not sure, if this will work for the normal map, too. I haven’t tested it. To make a road texture seamless in one direction, you could bake with a cylinder. To make a seamless texture from procedural textures, you could bake with a torus. The downside is the distortion from the geometry.
Hello Mr Engler! :D Ah yes, that's a good point about tiling! I've seen a couple of tiling methods, one from Simon Thommes, I made one myself actually, the general idea of it can be seen on an old blender conference talk i did, i've refined it since then though but it just feels like too many nodes. I'll probably revisit that subject for another chapter though, so please feel free to suggest any further ideas! :D
Hi! Apologies for the delay, just getting round to everything now after an extensive crunch period of the new hard surface 2.8 update! Anyways, to answer your question I just bake out the textures in Blender, then drag them in from a file browser into UE4 and then manually rebuild the material there. Incidentally I'm aware there are several people working on an auto procedure for converting blender materials into UE4, will have to try and track them down! :)
I am a beginner, I have a question, can I create my detail by modellino some pattern designs with actual geometry and then create height map to mimic detail as texture on low poly surface ?
Just use addon called ShaderNodesExtra? It lets you bake bump node as a normal map just like any other emission shader. github.com/Secrop/ShaderNodesExtra
That should be on the main article page, though I think blend swap might have been down for a while today, there's also the blend file of the road and pavement in the links section too. Let me know if any probs 🙂
it would be awesome if we had an automatic way of combining normal maps, and hopefully things of this nature (and more noises, always more procedural noises! :D ) will be more likely developed with more people pushing and prodding it in that direction. :D
An absolutely wonderful tutorial once again, thank you. Something I picked up recently is that instead of separating XYZ, inverting a channel then combining them again, you could instead just add a Vector Curves node and flip the desired channel from there. Saves a bit of setting up time and brings the node count from 3 to 1 :)
Thanks! Aaaah of course the vector curves node! That would be less nodes of course, great point! :)
i know Im quite randomly asking but does anyone know of a good website to watch new tv shows online?
@Gianni Conor flixportal :D
@Aiden Samuel thanks, I went there and it seems like a nice service :) I appreciate it!!
@Gianni Conor You are welcome :D
I'm going to have to watch this several times to really absorb the workflow, but great tutorial.
Oh sweet Jesus, getting better every day ❤️
Just BRILLIANT! That's all I have to say. BRILLIANT! Thank you for sharing your knowledge. I look forward with great anticipation to your next tutorial. THANK YOU. Dg
On the topic of combining normal maps, there actually does exist a completely mathematically accurate way to combine as many as you wish with individual controls for the strength of each one. Search for 'Combining Normal Maps Procedurally with Node Groups in Blender 2.81', download the file and append NormalMap_Scale & NormalMap_Combine-PD, for a quick overview jump to 10:45. If you can already do this with just a few nodes I'm just absolutely baffled how something like this hasn't been already implemented by default.
Sensational, thanks very much for this set of tips as they are extremely handy for creating Normal maps.
Your videos are awesome Aidy, they alway make me realise how much I have yet to learn about Blender :)
Thanks so much! I have much to learn too though! :D
Thank you
Well done tutorial really helpful.
I don’t know what to say but thank you very very very much
Hello all! Chapter list is in the description as well as below, here I'll be sure to put any corrections/updates required!
CHAPTERS
00:00 - Overview
01:06 - Bump to matcap style
05:47 - Making it work from all angles
07:51 - Geometry + Textures = WOO!
09:09 - Node groups
10:41 - The global switch
14:01 - Mixing 2 normal map textures
17:20 - End
As ever if anything doesn't make sense or needs clarification please let us know we'll jump in on the comments to try to help! :) Aidy.
thanks for the tutorial
thx!!!!!!!
Will you get around to making another backing video but then on non planar geometry?
This video was very helpful.
Ps backing 2 normal maps would also be very handy.
This is a brilliant technique, thank you, Aidy, for this detailed video! I'm also wondering if it is possible to bake *JUST the texture's normals* from a material applied to a character, *WITHOUT* baking the character mesh's normals. For example, I have a single character mesh unwrapped with stacked UVs. Different parts of a character's clothing share the same material, so those UV islands are layered and share the same texture space. The clothing's material uses a procedural texture to create a bump map.
When baking the base color for this character, everything works perfect, and I get one seamless pattern in my texture atlas, despite the stacked UVs. However, when I try to bake the normal map, the character's normals are taken into account where I have physically modelled seams or pleats, and thus those unwanted details show up in the bake, breaking the seamless pattern of the texture. Is there a way of subtracting the character's normals from the texture's procedural bump map, so only the texture's normals show up in the bake (the same as if I had applied the material to a flat plane and baked the result)? Thanks so much for any advice or ideas you might have on this... 😀
SOLVED!! I just want to thank the Lord Jesus Christ for showing me a wonderful solution to this issue! There are a couple of ways to deal with baking normals on stacked UVs (first make sure to combine all objects that share that material into ONE object, otherwise each island will bake and bleed separately instead of as one seamless pattern):
1. For any stacked UVs that are *ALL* identical and perfectly aligned on top of each other (ie. from a mirror modifier), you shouldn't have any issues baking the normal map by selecting your Bake Type to be "Normal" and hitting "Bake".
2. For any stacked UVs that are *NOT* identical, and their material only uses a pre-existing normal map (not a bump map), you can just Ctrl-Shift click on the Normal Map texture (with Node Wrangler addon enabled) and then select "Emit" in the bake settings and bake the normal map as non-color data. Otherwise, doing a regular "Normal Map" bake may result in seams or natural bumps in the geometry showing up.
3. For any stacked UVs that are *NOT* identical, and their material uses a bump map, you may notice some "seams" appearing in the baked image along the real UV seams. This is most noticeable along any UV island edges that have some *stretching*, and becomes VERY noticeable if your normals are not too strong (not very bumpy). You can fix this by baking a perfectly flat proxy with your material applied, rather than the stacked UVs of your real object!
- In edit mode, add a plane to your object that you are trying to bake and scale it to fully encompass the width of whichever part of your object has the widest UV.
- Now in the UV Editor, with your source UV selected, use the Texel Density Checker add-on to calculate the TD of the widest UV in your object. After doing so, press "Calc -> Set Value" to copy that value to be the active Texel Density. Next select your plane's UV map and press "Set my TD" to set the Texel Density of your plane to match your original object.
- If the plane's UV map now becomes too small to encompass your original UV, then scale the plane's UV up again until it just covers the widest part of your original UV, and pay attention to the value you scaled it by. Now scale the plane's geometry by the same amount. This will ensure the same Texel Density you selected earlier is maintained.
- Now you need to copy the plane's UV into the UV map you will be using for baking. Make sure MagicUV is enabled in the addons. Press "U" in edit mode with only your plane's geometry selected. Choose "Copy / Paste UV" > "Copy" > and select your *source* UV map. Now press "U" again and choose "Copy / Paste UV" > "Paste" > and select your *baking* UV map. In Blender 3.1 you will get a python error message, but don't worry, everything still worked, you just need to exit edit mode and re-enter.
- With the plane's UV copied in, you will need to scale it to the same equivalent texel density it had before. If your baking UV is going to be using a texture atlas, there's a good chance your texel density will be lower than in your source UV. If you already had the original object's UV scaled to the right size in your baking UV map, then you can use that as a reference. Select one of your object UVs in the source UV map, measure the TD and write it down. Select your plane's UV in the source map, measure the TD and write it down. Now go to the baking UV map, select the SAME object's UV you had previously measured, measure it again, and write down the TD value. Now you only need to find the TD value for the plane to use in this baking UV map.
- Find a ratio calculator online (like from calculatorsoup) and input the first two TD values you wrote down from your Source UV map (Plane TD : Object TD), then leave the next slot blank (we will be solving for the Plane's new TD) and in the last slot input the Object TD from the Baking UV map. Hit calculate and copy the answer and paste it into the Set TD box in the Texel Density Checker add-on in Blender. Now with your baking UV active, and the plane's UV selected, hit "Set my TD". Make sure the plane's UV fully encompasses the original object's UV.
- Now, subdivide the plane a bunch of times (I used 30 times). Enter Face select mode, turn on "UV sync selection", and in the UV editor brush select over any faces that are not needed to fully cover the shape of the original object's UV map. Delete these faces in the 3D view. You can also add loop cuts where needed if you need to crop in tighter and avoid overlapping any existing UVs in your baking UV map.
- Finally you can separate this plane from your original object (P > Separate by Selection), and then bake the normals on it into your baking UV map. When you use that baked map on your original object, the normals will show perfectly on your stacked UVs without any seams!
Hi Aidy! the roughness is a scalar map, not a color data!
That is technically correct! :D I didn't mention it in this video but due to the way the roughness map was created it can be set as sRGB in this case, there's more about that in the previous video... ruclips.net/video/YsXe11YA7AM/видео.html Hope that makes some kind of sense! :D
@@AidyBurrows3D hehe !
I saw "sRGB" and I say: "don't do that!!!!"
heheheeh, greetings, and nice doc.
www.oscurart.com
@@eugeniopignataro2208 Hahaaa, yeah it's a super easy thing to miss, I should have repeated a bit of that section in this video to make sure at least it got mentioned for roughness too. :D Also, you make very cool stuff by the way! :D
For anyone looking for zuggamasta's autobaking addon, it's here I think
github.com/zuggamasta/BlenderPrincipledBakeNode
but it doesn't seem maintained. If interested the other free addon is here: github.com/danielenger/Principled-Baker
Thanks Aidy yet again cool tips, Any big Tut's in working progress ?
Thanks! Next big tut will likely be a Space-ish follow up for 2.8 :) But then it possibly makes sense to do some more hard surface in 2.8 but then follow that up with some texturing. :D We'd quite like to do some environment work too that we can tie into a game idea. Lots of options! :D
@@AidyBurrows3D it would be epic if you and Gleb did a hard surface environment with space ships on a planet environment with the option of an in space fight type thing?
Hi Aidy! Big fan of what you do! Hard Surfaces is amazing! Right now, I'm looking for a way to clone several image maps simultaneously, for things like texture tiling. Say I did the photogrammetry of the bark of a tree, and I want to use the actural height map of the tree that I baked from the multires (instead of whatever Materialize would come up with). I thought materialize would do the tiling part of the trick if I brought the displacement I created with Blender, but it only does it to the generated images taken from the diffuse map, it does not do it to the displacement map. This cloning simultaneous layers should be somewhere in Blender, and if it doesn't exist yet, it might be a step closer to make Blender more like Substance. The other idea would be to automate, like Photoshop does. I could save the actions of cloning the diffuse and then applying them to the other maps, but I would like to be able to do this in open source software too.
Hi! Thanks for the kind words! :) That would be a great thing to be able to do in paint, I haven't thought too much about cloning multiple textures at once at this point, however, one option that often works is to use 2 separate texture coordinates for the same textures, and then use a black and white map to blend between those 2 materials - which are just materials of the same texture sets but just aligned differently so that you can paint over the seams and show the other material that doesn't have a seam in those areas. Using multiple uv sets helps with all this too, there are other thoughts that spring to mind. Hopefully Gleb and I can get around some shading and texturing things and stick a massive load of those sorts of ideas in a big course, and give a load of chapters away free for everyone too. :) Anyways, hopefully that sort of makes sense, oh also there is an addon and developer that I remember talking about this sort of stuff with, but I haven't had chance to check the current progress check out Andreas here!... ruclips.net/video/7n_bGhcLnWE/видео.html Stay safe!!! :)
Aidy Burrows 3D Oh! That could do the trick! Thank you Aidy!
To bake normals (selected to active) the low poly mesh must be inside or outside from high poly?
no links to any of the resources?
Hee hee hee, YEAH !!! Thx.
@ Andy Burrows: comment, in addition to watching this video tutorial, telling you that: since I use Blender; I would like to ask you some questions; even if for those who know Blender as a professional, they know many shortcuts, in the sense of spending less time on their project; my question is this; since I have, so to speak, a low-pc and I know the material in applying the normal map on a low-poly object, to highlight the sculpture itself, my problem, which would be the question, is how to succeed in creating from nothing and for the first time a normal map, to be compared as a 4K or UHD image, if my cpu processor does not allow me to then make a low-poly uv map.obj?!; thank you if you answer me, if you understand my question, even with a short answer from you.
Hello! :)
The Principle Baker add-on is still in development. Expect bugs! I just found a but with the detection.
I saw your previous Video with the road. The shader looks really good! (and it's not a big giant bowl of noodle saled)
I though about putting the alpha/transparency in the Principled Baker add-on to make baking with alpha for several planes selected to active possible. I’m not sure, if this will work for the normal map, too. I haven’t tested it.
To make a road texture seamless in one direction, you could bake with a cylinder. To make a seamless texture from procedural textures, you could bake with a torus. The downside is the distortion from the geometry.
Hello Mr Engler! :D Ah yes, that's a good point about tiling! I've seen a couple of tiling methods, one from Simon Thommes, I made one myself actually, the general idea of it can be seen on an old blender conference talk i did, i've refined it since then though but it just feels like too many nodes. I'll probably revisit that subject for another chapter though, so please feel free to suggest any further ideas! :D
@Aidy how do you get your materials nto unreal?
Hi! Apologies for the delay, just getting round to everything now after an extensive crunch period of the new hard surface 2.8 update! Anyways, to answer your question I just bake out the textures in Blender, then drag them in from a file browser into UE4 and then manually rebuild the material there. Incidentally I'm aware there are several people working on an auto procedure for converting blender materials into UE4, will have to try and track them down! :)
Why don't you render out normal mat-cap in workbench renderer and use as normal map
I am a beginner, I have a question, can I create my detail by modellino some pattern designs with actual geometry and then create height map to mimic detail as texture on low poly surface ?
Absolutely! That is a perfectly acceptable way of creating detail. 🙂
Just use addon called ShaderNodesExtra? It lets you bake bump node as a normal map just like any other emission shader. github.com/Secrop/ShaderNodesExtra
Awesome! Do you know if it bakes through alpha too? I'll look into more and share it out on the main page, thanks for the heads up! 🙂
You did not share the link to the resources about adding normal maps together.
That should be on the main article page, though I think blend swap might have been down for a while today, there's also the blend file of the road and pavement in the links section too. Let me know if any probs 🙂
@@AidyBurrows3D Thanks
It’s too complex for me right now..... I will comeback later
what about now 🙂🙂
Blender is really not made for this workflow, i hope in the future it will become alot more streamlined
it would be awesome if we had an automatic way of combining normal maps, and hopefully things of this nature (and more noises, always more procedural noises! :D ) will be more likely developed with more people pushing and prodding it in that direction. :D
@@AidyBurrows3D yep! And in the meantime keep making awesome tuts and keep breaking the blender boundries!
@@AidyBurrows3D Indeed. One of Substance designer's strength is that they have more procedural materials.