Anatomy of a Normal Map : What's Inside and What It Means

  Рет қаралды 7,799

Warren Marshall

Warren Marshall

Күн бұрын

Join the Discord server : / discord
Throw a buck in the tip jar : gum.co/MEaCQ
Enhanced MOP Boolean Assembly : gumroad.com/l/YuHJW
This is NOT a baking tutorial. This is a deep dive into what a normal map IS, what it's good for, what it's NOT good for, and what the internals look like.
I always find it valuable to have some idea what's going on under the hood with my daily work. It helps you debug problems and helps you get things done in a more efficient way because you know WHAT you're generating and, more importantly, WHY.
Let's talk about vertex normals, normal map textures, color channels, math, and flipping the green channel!
So come along - let's rip open a normal map and talk about what's in there...
---
Hi! I'm Warren Marshall!
I'm a freelance, hard surface 3D artist living in North Carolina. I specialize in hard surface work but I can do pretty much anything from environments to props.
I worked at Epic Games for over 15 years and started freelancing after that. Since then I've done prop and environment work for some fun projects, including We Happy Few from Compulsion Games and PlayerUnknown's Battlegrounds. I've also done a bunch of asset packs for the various marketplaces.
I have experience with Unreal Engine 4 and Unity and know how to put assets together quickly that look good in those engines.
Here's a link to my Art Station page where you can see a bunch of my latest work:
www.artstation.com/artist/war...
Visit my main web site here :
www.warrenmarshall.biz
You can email me directly if you'd like :
warren@warrenmarshall.biz
Questions, business inquiries, support - or just to say hi!
---
Motion Graphics : Skye Nelson, aka "SkyeShark" ( skyeshark.artstation.com )

Пікірлер: 82
@mashonoid
@mashonoid 4 жыл бұрын
Dude you deserve an award. I didnt even realise that i just watched a 20 min video on normal maps. You literally cleared everything I was wondering about normal maps. Thank you soo much.
@WarrenMarshallBiz
@WarrenMarshallBiz 4 жыл бұрын
You're most welcome!
@alexliam9786
@alexliam9786 3 жыл бұрын
pro tip : watch movies on flixzone. Me and my gf have been using them for watching all kinds of movies recently.
@eloneverett4318
@eloneverett4318 3 жыл бұрын
@Alex Liam yup, I have been watching on flixzone for since december myself :)
@karanpratapsingh5022
@karanpratapsingh5022 4 жыл бұрын
This is easily the most practical explanation of Normal Mapping for game art! A similar tutorial covering Parallax Occlusion mapping and Tesselation from a game art perspective would be a great addition to your channel. Thanks for the great tutorials as always! P.S. Glad that you didn't go off on that Tangent and stayed in MikkTSpace at 3:09, ha ha
@turkeywildman3871
@turkeywildman3871 Жыл бұрын
Been looking for this explaination of the normal map's color channels, thank you from the future!
@atkaygee
@atkaygee 5 жыл бұрын
These high-level overviews are brilliants, particularly for beginners. I wish there was more content out there that explained the "why" behind the environment art workflow instead of focusing on the "what" (the software) and the "how" (which buttons do I press). Awesome stuff Warren, thank you!
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
I really wish I had seen a video like this one when I was learning this stuff. I like knowing what's going on behind the curtain ...
@jimhinkle7245
@jimhinkle7245 3 жыл бұрын
DANG!!!! FINALLY I understand a normal!!! Thank You!!!
@WarrenMarshallBiz
@WarrenMarshallBiz 3 жыл бұрын
You're welcome! Have fun. :)
@ackmaster8050
@ackmaster8050 2 жыл бұрын
OH SHIT BRO! i haven't seen your mug in a long time! glad your doing this still. i love this!
5 жыл бұрын
You can see Warren's dedication on teaching us when you realize he changed his Photoshop default document settings to show the channels in color. 🙃
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Hahaha, totally forgot that I even turned that on! I find it useful tho ...
@hamyncheese
@hamyncheese 5 жыл бұрын
Now I can't sleep not knowing what the Blue Channel does. Why are you doing this to us!?!?
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Haha ... Well, I don't think I'm knowledgeable enough to talk about it to be honest. I never use it for anything!
@rattenschwanz-filmundfotog693
@rattenschwanz-filmundfotog693 3 жыл бұрын
Very Nice Video. I can now understand so much more whats going on in the process of creating a normal.
@Mikeygrecordings
@Mikeygrecordings 3 жыл бұрын
Came from your video on texel density. Really really valuable stuff. Always learning and you're a great teacher. Looking forward to going through your back catalogue of videos. Hope to see you back sometime. Thanks man
@Smoluck
@Smoluck 5 жыл бұрын
Excellent video Warren. Well done humorously as well precise !
@bennie.379
@bennie.379 2 жыл бұрын
FANTASTIC explanation on the topic!
@re-i-fu
@re-i-fu 5 жыл бұрын
Thank you very much for the video Warren, great stuff and very clear :)
@KC-nf7ly
@KC-nf7ly 5 жыл бұрын
Amazing stuff Warren! The finer details and the “why?” behind normals are really not talked about all that much, this clears up some of the mystery surrounding it all, I really appreciate your explanation! Cheers
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Glad it helped. :)
@tulextreme
@tulextreme 3 жыл бұрын
Sensacional. i knew most of this but having NM explained this way is soooo refreshing! thank you for the vid Marshall!
@Imissmaggie
@Imissmaggie 2 жыл бұрын
Brilliant, well done.
@voytechj
@voytechj 5 жыл бұрын
normal maps as a form of geometry compression is a great idea. People has two eyes and depth can be recognized up to a couple of meters (maybe more) but an eye has hundreds of millions of rods and cones so lighting has very important contribution for detecting depth of a surface. Normals are used for calculating lighting and every mesh have vertices composed with positions and normals together. We can flatten small surface that has a small dips and heights, and stereoscopic vision will not make much different, but when we change normals then change of luminosity of a surface will be detected very easy. So, we can remove a lots of positions (float XYZ->12bytes for each position) but need to keep normals. It can't be done in a geometry mesh because in graphics cards positions and normals are bind together, so we store normal vectors in a picture and we use texturing. That really is a form of a compression. Btw. flipping green channel has nothing to do with graphics library (OpenGL, Direct3d). Algorithm for calculation normal vector from a normal texture is implemented in pixel shader, some engines or 3d modelers have different implementation. From a mathematical point of view normal vectors in normal maps can be in right-handed or left-handed space. If something is wrong with lighting you can flip Green channel or change a pixel shader.
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Thanks for the detailed comment! "flipping green channel has nothing to do with graphics library" Literally, that's correct. But it's easier to understand for most artists to put it in OpenGL/Direct3D terms. They don't write shaders, they just bake maps. :)
@leatherandpoemscharmyman5774
@leatherandpoemscharmyman5774 5 жыл бұрын
you gained a like button Warren as usual. thanks for knowledge I learned by the force some of the stuff you mentioned.
@SirAugie
@SirAugie 5 жыл бұрын
This is really Great info! Thanks Warren!
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Thanks Ed! Good to see your name, it's been too long!
@greggjohnson621
@greggjohnson621 5 жыл бұрын
Great description! This is extremely helpful. Thanks so much.
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Thanks Gregg! :)
@Flavio_Mark
@Flavio_Mark 5 жыл бұрын
This is the best piece of information I’ve ever got about normal maps! And I even didn’t knew I needed it.Thank you so much, Warren!
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
That's high praise, thanks man! :)
@Flavio_Mark
@Flavio_Mark 5 жыл бұрын
@@WarrenMarshallBiz You're more than welcome! Keep the videos coming!
@patriotaRBC
@patriotaRBC Жыл бұрын
Amazing. Thank you very much for you time and dedication.
@DarrenLGoldsmith
@DarrenLGoldsmith 5 жыл бұрын
Ah, this is great! Thanks, Warren!
@Kingstantin
@Kingstantin 3 жыл бұрын
Thank you man!
@Pegisus2501
@Pegisus2501 Жыл бұрын
This was very helpful! 😊 Thank you for doing this tutorial. 😀👍🏽🖥
@gadzooks12
@gadzooks12 5 жыл бұрын
Thank you Warren! Very informative as always!
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Thanks Kenny!
@Wozner
@Wozner 5 жыл бұрын
I`m glad, that you keep doing videos on KZbin, I remember some months ago you said, that you stop making videos on tube.
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
No, I plan to make the YT channel a part of my "thing" for the foreseeable future. Look forward to more content!
@davidperyman
@davidperyman 5 жыл бұрын
Love your videos!
@ZsoltVajda
@ZsoltVajda 5 жыл бұрын
Now it all makes sense! Great video! Was confused how those linear gradients on the screws would translate into a dome-like shape (was still thinking in bump maps), but the demonstration with the angles made it all click, Thanks!
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Yeah, it's freaky but once you understand what the colors are doing it actually makes a lot of sense. Thanks for the comment!
@user-he1ss4gz8v
@user-he1ss4gz8v 4 жыл бұрын
Subscribed! Lucky me! Thank you Warren!
@WarrenMarshallBiz
@WarrenMarshallBiz 4 жыл бұрын
Thanks for the sub! :)
@fouadhoblos3611
@fouadhoblos3611 Жыл бұрын
Great explanation!
@codewithdarsa
@codewithdarsa 5 жыл бұрын
Really helpful information here, thanks for the video!
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Glad you liked it!
@avian980
@avian980 5 жыл бұрын
It is really important to understand this, so thank you it is much appreciated
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
You're welcome! It took me awhile to learn this stuff so if I can speed things along for other people, I'm happy...
@avian980
@avian980 5 жыл бұрын
@@WarrenMarshallBiz A true master , I am learning and enjoying at the same time. Thank you :)
@PehsA
@PehsA 5 жыл бұрын
Hey Warren! Great video as always. It's very informative so thank you :) As you mentioned you may make another video about normals, I'd like to give some topics. -Edge thickness -Sloped extrusions -Intersecting geometry -Hard edges, UVs -Waviness on cylindrical shapes. -Skewing I know some of the ways to work on them and avoid problems but as you say, 3d artist should know the working mechanism behind these, so I'd like to listen from you.
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Solid suggestions, thanks!
@egemen3d-tech89
@egemen3d-tech89 5 жыл бұрын
Thank you Warren ! ;)
@Hotrood999
@Hotrood999 5 жыл бұрын
18:16 As Jason Stokes from Futurepoly says: Green Grass grows from the bottom, Red light comes from the right Pretty catchy Great video!
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Haha, catchy. Thanks!
@joaovitors.s9643
@joaovitors.s9643 2 жыл бұрын
Thank you so much
@repositorytutorial3d50
@repositorytutorial3d50 Жыл бұрын
great content! thanks! I have an additional technical question, is there any commercial software or free software that would allow us to split high frequency details from low frequency details, or renormalize a normal map that we might have modified manually on photohop?
@cinematicfilm6559
@cinematicfilm6559 5 жыл бұрын
wow nice channel from guy who actually worked at Epic. Great.
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
:) Hope you like it!
@_MaZTeR_
@_MaZTeR_ 2 жыл бұрын
Is there a definitive way of telling if your normal is correct for which ever renderer you're using (say, for OpenGL on Blender?), like say when you press the green channel in Photoshop, there's a stat that says Y is up or down. Sometimes the textures are a mess that it's hard to tell just by looking at it where the texture is attempting to create a shadow and which side is lit up.
@hauntedshadowslegacy2826
@hauntedshadowslegacy2826 5 жыл бұрын
(checks out program online) (sees price) (chokes)
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
If you mean MODO ... well, it's a hell of a lot cheaper than Max or Maya. :) If it's still too much, there's always Blender ...
@kloworks
@kloworks 5 жыл бұрын
I watch your video about "Anatomy of a Normal Map" even I already know about normal map its nice to have more info about it. I wish you continue with part 2 . like what it mean by Sync, and what is MikktSpace. common mistake between unreal and unity. unreal use pixel shader and unity use vertex shader. so in substance painter u need to check compute tangent for unreal uncheck for unity, why ? so these may help alot of artist to solve alot of problems. like another think that until now I don't get it why when you export fbx you need to unchecked the tangents and binormals . these if got explained in next video I will be really happy and that mean I understand all about Normal map . cheer
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Good suggestions but to be honest, those topics aren't really my area of expertise. I get the job done but I can't really explain what sync is what tangent/binormal/bbq stuff does. I'm just a simple artist. :)
@RobotJeeg
@RobotJeeg 5 жыл бұрын
Well done. It took me months to understand all of that when normals were introduced centuries ago. I often rip 3d models from games...I know i know, I shouldn't do it but it's like an hobby, I don't share the models so nobody can be upset. Well in these years I found lots of strange normalmaps! Some normalmaps are totally greenish (almost brown). Some are totally pinkish. Every game engine seems to like a specific normalmap type instead of using the classic ones. Usually they just have swapped channels, or totally black blue channel or everything mess up! Strange.
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
Interesting! Yeah, I think that's the same with most game engines ... particularly internal ones ... they get customized really hard towards whatever they need for their game, and outside world be damned. :)
@voytechj
@voytechj 5 жыл бұрын
sometimes normalmaps don't store Z component, because normals by definition have length 1 and Z can be calculated from X and Y in the shader program (z = sqrt(1 - x*x - y*y)). Blue and Alpha channels can be used for different types of maps (specular, bump, etc.), or Red and Green can store 16-bit X value and Blue and Alpha 16-bit Y value. Another reason for not-bluish colour are when normals are stored in object space, when they can have any direction (X,Y,Z -> [-1...+1]). Bluish colours are mostly normals in tangent-space when X,Y -> [-1..1] but Z -> [0..1]
@mariomanganelli2607
@mariomanganelli2607 5 жыл бұрын
Very informative. Thanks Warren! ...isn’t the blue channel pretty much equal to the bump map?
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
I've never consciously used it for anything so I can't say for sure. But maybe! :)
@voytechj
@voytechj 5 жыл бұрын
no, its not. For example small flat area with high elevation and another with lower elevation will have exactly the same colour or same normal vector pointing up. Blue values are just normal vector's Z component.
@1981danielmn
@1981danielmn 5 жыл бұрын
thanks for always putting out great content, did I just see you will be at siggraph? Would love to shake your hand and buy you a beer if I get the chance.
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
I will be at Siggraph 2019, yes! I'll be doing a small talk for the Foundry...
@serefatilla
@serefatilla 5 жыл бұрын
So if the blue channel on normal map is always 255 (in most of the cases at least), is there a way that we can store some other info in it such as transparency? Then in the render engine we can just take R and G channels and mix them with solid blue and use it as a normal value. We usually do similar thing by combining roughness metallic and occlusion in a single texture. All for reducing the memory by using less maps.
@WarrenMarshallBiz
@WarrenMarshallBiz 5 жыл бұрын
That's usually the first thing most artists think of but your graphics programmers will strike you down because apparently it messes up compression and makes things more inefficient in the end. :)
@serefatilla
@serefatilla 5 жыл бұрын
@@WarrenMarshallBiz Oh, I guess we, artists, should not jump in and try to add our masks everywhere :) Thank you for the insight. The video was very helpful indeed.
@darkobakula5190
@darkobakula5190 Жыл бұрын
I'd like to add a little something to this video which maybe I missed since I was skipping over the video but I'll write it anyways. The normal map stores all of the changes in surface normals between Hipoly and Lowpoly. It stores them as unit vectors where X and Y components range from -1 to 1, Z component ranges from 0 to .1. What every baker does is, it encodes those values into RGB space where the values are transformed from 0 - 255. After transform RG values of 0 represent -1 and values of 1 represent 255 except in the case of B channel. This is quite important to know when you are overlaying normals in a compositor, Image Editor or you are making your own material to overlay normals.
@proflindenbrook
@proflindenbrook 5 жыл бұрын
First, thanks for the vid
@unfa00
@unfa00 4 ай бұрын
You're covering a rendering technique and you've gone almost 10 minutes without ever showing anything other than words. It certainly tests your audience's attention span and imagination. You're covering highly visual topics and getting into math and computer science without any kind of visual aid. I'd say that's highly suboptimal ;)
@WarrenMarshallBiz
@WarrenMarshallBiz 3 ай бұрын
Videos are a balancing act of sharing information but also the effort required to put them together. Animations and fancy editing take a lot of time. And sometimes I just don't have it.
How to Model and Texture Huge Props for Video Games
14:31
Warren Marshall
Рет қаралды 56 М.
Дарю Самокат Скейтеру !
00:42
Vlad Samokatchik
Рет қаралды 8 МЛН
Как бесплатно замутить iphone 15 pro max
00:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 6 МЛН
Quick Tip #19 : Lightmapping
21:15
Warren Marshall
Рет қаралды 13 М.
Deconstructing a Normal Map (CGC Weekly #18)
10:52
CG Cookie
Рет қаралды 80 М.
Shader Fundamentals - Normal Mapping
10:13
Dan Moran
Рет қаралды 164 М.
Tutorial : Modular Prop Building - Micro To Macro!
39:20
Warren Marshall
Рет қаралды 9 М.
OpenGL - normal maps
13:23
Brian Will
Рет қаралды 11 М.
Texel Density : What It Means & How To Use It
14:00
Warren Marshall
Рет қаралды 16 М.
The Dirty Truth About Game Art - Part 1
7:30
Warren Marshall
Рет қаралды 3,4 М.
Using Modern Tools For Classic Quake Level Design
33:40
Warren Marshall
Рет қаралды 2,2 М.
The 80/20 Mindset -or- 4/5 ain't bad! - Sunday Funday
4:37
Warren Marshall
Рет қаралды 2,7 М.
The Fundamentals of Perfect Baking
21:46
Michael Hosticka
Рет қаралды 167 М.
Дарю Самокат Скейтеру !
00:42
Vlad Samokatchik
Рет қаралды 8 МЛН