Shader Fundamentals - Normal Mapping

Shader Fundamentals - Normal Mapping

Dan Moran

7 лет назад

165,091 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

Martin Walker
Martin Walker - 12.07.2023 13:59

what a brilliant explanation....well done

Ответить
Just Luke
Just Luke - 21.05.2023 14:51

Amazing video, best tutorial I could find on here that explains normal maps

Ответить
k0walsk
k0walsk - 14.04.2023 04:01

Excellent yes I understand everything now thank you

Ответить
manonthedollar
manonthedollar - 13.01.2023 03:11

Maaaan, thank you for finally describing this in a way I can understand. I could never understand why a "flat" normal map was 0,0,1, but makes total sense now when you say we're multiplying the normal map values with the tangent/bitangent/normal.

Ответить
Tooty582
Tooty582 - 14.09.2022 02:50

I'm a bit late, but your definition of the dot product is only true for unit vectors. The dot product of two like vectors is the square of their shared length. That being said, normals will of course be unit vectors, but I mention this for the sake of accuracy.

Ответить
brad fin
brad fin - 22.08.2022 08:17

you explained dot product and I was like "cool I wondered what exaclty dot product was doing" then you said vector to a lightsource from a vertex and it was like the techno wizzardry that is how 3d models are lit became clear.

Ответить
Madhushan Siva
Madhushan Siva - 11.08.2022 12:25

Really Great!!

Ответить
Coulomb1
Coulomb1 - 23.07.2022 03:54

Why can’t we just use the normal value instead of having to calculate the tangent value?

Ответить
Scepto Mech
Scepto Mech - 09.07.2022 04:16

What a well explained video…….What ?

Ответить
Todemann
Todemann - 29.09.2021 17:01

Just watched your entire Shaders videos, thanks! I'm still super lost, but at least you encourage me to learn more about the subject :)

Ответить
jorge rivera
jorge rivera - 21.09.2021 01:10

Awsome. This is a fantastic video, thanks a lot! Subscribed

Ответить
Sparkette
Sparkette - 17.07.2021 21:04

"Tangential explanations" - I see what you did there

Ответить
jeff503pdx
jeff503pdx - 20.06.2021 20:43

What code are you showing? Python? C++?

Ответить
David Fernandez
David Fernandez - 28.05.2021 18:29

I came here to finally understand what's a normal map... and not only I didn't understand a word... but now I am even more afraid to dig in. Yes, I had problems at school and my maths level are a that of a child, but there are a lot of people like me... we also have the right to know!! Hahahaha...

Ответить
Vorr Degard
Vorr Degard - 28.04.2021 11:35

I like the intro

Ответить
Jaime Medina
Jaime Medina - 04.04.2021 16:09

Great stuff. New subscriber!!

Ответить
ShadowFlying
ShadowFlying - 28.03.2021 03:04

worldnormal=red*tengent+green*bitengent+blue*normal(blue show how much normal want to use)

Ответить
Rob Proctor
Rob Proctor - 23.02.2021 07:22

Thank you, this was very helpful.

Ответить
David Batista
David Batista - 23.02.2021 01:49

lost me at the first 30 seconds

Ответить
phương ngân đinh
phương ngân đinh - 22.02.2021 14:18

Wonderfully explained them on math. Thank you for this usefull clip.

Ответить
anzatzi
anzatzi - 13.02.2021 22:22

Finally, feeling good about my year of Linear algebra

Ответить
Battery Low
Battery Low - 14.10.2020 20:09

My brain usage reached at 15%, while watching this.

Ответить
Kasai
Kasai - 19.09.2020 20:00

How do you calculate the normal at a vertex? If a normal is usually found with a cross product, are vertex normals just averages of the normals of the faces around them?

Ответить
Zenytram Searom
Zenytram Searom - 15.09.2020 22:39

I can't concentrate DK song too distracting.

Ответить
danixadem
danixadem - 09.09.2020 01:08

great video !! Please keep uploading new videos

Ответить
Kristyan Cristi
Kristyan Cristi - 05.09.2020 21:57

Gamma correction has barely nothing to do with human vision... That's a misconception / myth, and it's making me angry whenever I see it propagated further. Our eyes, just like a camera's sensors, record values in linear space. We see linear values. We need linear values. We never see gamma values.

The only reason for gamma correction is backwards compatibility with old CRT technology. Back then, the monitor tech was so bad that it was displaying darker values than those expected and supplied to the GPU (coincidentally, in a non-linear fashion). Which meant that a value of 120 was displayed as less than 100 (not accurate, but just for example). People figured out that by supplying higher values than originally intended, they could get the monitor to display the required brightness. To do that, they started to gamma encode values to higher values (which again, works in a non-linear fashion). By supplying these gamma encoded values, the monitor was (through the nature of it's cathode ray tube) capable of decoding those values to the required lowered ones (keep in mind that this decoding was an abstract, conceptual decoding. There were no actual mathematics performed by the monitor)

After the dawn of CRT technology and the birth of LCDs, monitors were finally able to correlate the GPU supplied data with on-screen brightness (which meant that 120 was 120 on the screen). The biggest issue, however, was that the ENTIRE INTERNET was filled with gamma encoded images, and backwards compatibility was required (there was no way to purge all the servers and change the standard to no gamma correction without making all images up to that point obsolete). "Why is that?" - you might (hopefully) ask. Well, if you try to display a gamma corrected (encoded) image on an LCD with gamma correction features disabled (gamma = 1.0), you'd get a very bright and washed up image (remember, gamma encoded / corrected values are higher than those intended).

LCD manufacturers figured that the only way to keep going forward was to cancel gamma correction from images at software + hardware level. The LCD has a LUT (LookUp Table) chip which is responsible for doing gamma expansion / decoding, effectively canceling gamma correction and displaying values as originally intended (basically doing, through mathematical means, the same thing that a cathode tube was doing naturally). To enable this decoding process, you need to set your monitor to a gamma of 2.2 (the number was chosen as an average between 2.0 - 2.4, during the old CRT days, because it was giving the best results for a wide range of monitors), because almost every artist is encoding using that value. Of course, panel quality is very important here, so a value of 2.2 might not provide the exact experience intended by the artist (the LCD panel might be bad at reproducing colors / have bad background lighting).

Basically, the entire process is like this: an image is created (values are in linear space) -> then gamma encoded (non-linear space) -> stored somewhere. Somebody comes along and downloads said image -> opens it -> (OPTIONAL STEP) if they want to alter the image, they have to do all their calculations by first decoding the image (getting it in linear space), then calculating, and after that re-encoding (back to non-linear space) -> gets sent to the GPU -> GPU sends it to the monitor -> the monitor uses its LUT chip to decode the image (linear space) -> image is displayed.

Gamma correction is at this point a useless vestigial artifact of a bygone era, on account of bad early tech.

Ответить
GD_Helper
GD_Helper - 18.07.2020 13:00

very rich content...thank you... but,please show how to make and use normal maps correctly in unity so that we can get a 3d virtual shape from a 2d surface(texture)

Ответить
willi0000000
willi0000000 - 15.07.2020 03:15

the best part of this is . . . most users of 3D creation software don't have to understand one bit of what you said . . . but we are eternally grateful that people like you do.

thank you.

Ответить
Joel Robert Justiawan
Joel Robert Justiawan - 13.07.2020 07:29

Normal map

This is your daily dose of Recommendation

Ответить
Joe Peters
Joe Peters - 06.07.2020 08:52

You should really take more time to go a little bit into details, bec you obviously know what you are talking about, but pls explain it tahn what you show

Ответить
Matthew Hart
Matthew Hart - 05.06.2020 02:59

Thank you.

Ответить
Anthony Brault
Anthony Brault - 01.04.2020 21:15

is that DK country 2 music playing??

Ответить
I am Lord Starbuilder
I am Lord Starbuilder - 14.03.2020 04:54

I feel like such a nerd understanding and feeling gratitude for this help

Ответить
Steven Russell
Steven Russell - 05.02.2020 18:45

wut

Ответить
claudius dsouza
claudius dsouza - 27.01.2020 10:23

hey nice video but is it possible to explain why more about the blueish purple color being that color? eg. when we divide 255/2 = 127.5 = results in 128 for Red and the Green Channel in the mid value but for the blue when we divide 255/1 = 255 we get a (128,128,255) value. SO my question is is 127.5 = 128 or does the dividing the R and G channels should be 256/2 = 128?
thanks

Ответить
Sabri Boughanmi
Sabri Boughanmi - 14.01.2020 18:02

Please make videos using Unity's ShaderGraph and VFX to replicate Good looking Games.
and again your Content is Amazing!

Ответить
aeonjoey
aeonjoey - 01.01.2020 07:29

This was extremely informative, and i'm not even using Unity, so though I filtered and saved for later, a lot of what you said, this helps me finally GET wtf normals are, why they're the colors they are (I was like, is there some standardized gamut everyone is using?) and HOW they work. even though directionality can change by app e.g. in Keyshot vs Blendr, there's plenty of transforms and toggles to fix em. my main confusion was why they were even necessary when you have a bump map, geometry, and in some cases a displacement map. FINALLY i feel a little less dumb today. :) thank you!

Ответить
Danny H
Danny H - 09.10.2019 12:36

Anyone who understands what your saying doesnt need this tutorial.

Ответить
Cezar Zbughin
Cezar Zbughin - 04.08.2019 13:56

Omg someone who explains shit. Not just saying we put this there and that there. This is how u explain things.

Ответить
Mr hacker
Mr hacker - 03.05.2019 16:02

Great Stuff but very less information about Normal Mapping.

Ответить
Bernard
Bernard - 04.04.2019 20:02

Thank you for that. I've been 3D modeling for years and never really got it till now. Keep it up!

Ответить
Brain
Brain - 23.03.2019 19:18

hello, good videos. i want to translate this one to russian, and upload on my chanel, any suggestion?

Ответить
Volodymyr Haivoronskyi
Volodymyr Haivoronskyi - 17.01.2019 07:26

Thank You, this was very informative to me as 3d artist. Now I see what I have to look for preparing normal maps to be used in Unity.

Ответить
TheDwarfNextDoor
TheDwarfNextDoor - 15.01.2019 22:34

What in god's name are you going on about

Ответить
Nobu
Nobu - 05.01.2019 18:12

Very educational! 👏

Ответить
Red Magic
Red Magic - 07.12.2018 10:06

Honestly, I stopped seriously listening after 4 minutes.
There is a lot being explained, but you're 15 levels above most everyone else, and giving the people who are already at level 15 the grand tour. But, you aren't offering a ladder for most average people to ascend to your level.

TL;DR, if you already have in-depth knowledge of the terms used in the video, you had a ball and learned.

If you're just a random person who wanted to know what those blue textures labeled ”NMp” in your game folder were, little to nothing was gained from this video.

Ответить