Customizing Normals - 1: Series Overview + The Problems

Поділитися
Вставка
  • Опубліковано 20 сер 2024

КОМЕНТАРІ • 56

  • @BlackVulpes
    @BlackVulpes Рік тому +41

    I was wondering what could possibly take 50 minutes to explain on a part 1 of a tutorial, but if anything, you've condensed months worth of unanswered questions into a single video. This is a goldmine! Thank you so much!

    • @aVersionOfReality
      @aVersionOfReality  Рік тому +1

      Thank you!

    • @highflyinmayan5051
      @highflyinmayan5051 Рік тому +3

      This is my 3-4th rewatch of the series. I've never fully grasped everything, but this is by far the most eloquent comprehensive blender deep dive I have ever found.
      Perhaps this is the time everything finally sinks in, let's go!

    • @euclois
      @euclois 11 місяців тому

      not only a 50 min video but 9 videos around 45m - 1h15 about normals. that's crazy

  • @sydkne
    @sydkne Рік тому +20

    This is probably the most well researched and highest quality series I’ve stumbled across for 3D content … thank you so much for making content like this, especially for free 🙏

  • @xodiach
    @xodiach Рік тому +5

    Hearing this guy describe how you'll search for months through forum posts to figure out how to do one specific thing, which all say that it's impossible, only to find the actual answer in some academic article from like 2009, and then deciding to not even do it that way anyway cuz there's a better way to achieve the effect you were going for, is a whole ass fucking mood.

  • @light3010
    @light3010 2 роки тому +7

    I finally understand why my model's shading looks so weird. THANK YOU!!!

  • @Tokaliz
    @Tokaliz 2 роки тому +2

    I’ve been searching for a video like this for the longest time. God bless you bro.

  • @phantombarru
    @phantombarru 2 роки тому +2

    absolute legend, cracked the research papers and blogs explaining all the high level math and actually made the knowledge approachable

  • @kimitalvitie
    @kimitalvitie 2 роки тому +13

    Only 5 minutes in but I can already tell this is going to be _incredibly_ interesting and helpful in the future. Thank you so much for this!

  • @highflyinmayan5051
    @highflyinmayan5051 2 роки тому +1

    1:40 and my man is already hitting all the key notes 🥰

  • @Smash_ter
    @Smash_ter 8 місяців тому

    7:34 you didn't realize it at that moment, but in regards to things that use masking or normal map manipulation, never leave the color space of those types of textures as sRGB(or gamma space colors) and use non-color (linear color space) instead.

    • @aVersionOfReality
      @aVersionOfReality  8 місяців тому +1

      It depends on what space they were baked in. Its not good to use sRGB though, yeah.

  • @JonahHache
    @JonahHache 10 місяців тому +1

    Thanks for sharing!

  • @archivosdeaunn
    @archivosdeaunn 2 роки тому +3

    This solved many questions I had about how vertex normals were supposed to work and why the shadows were so weird. Pretty nice, thanks!

  • @naddacookie
    @naddacookie Рік тому +1

    Thank you for taking the time to make these videos

  • @pikachufan25
    @pikachufan25 2 роки тому +4

    Damm What a Legend

  • @user-nh8ke2fo2m
    @user-nh8ke2fo2m 2 роки тому +1

    I found the same issue when I tried to write a natural look lineart shader with Open Shading Language in cycles. Your explanation is detailed and clear, very good job!

  • @freewaytf
    @freewaytf Рік тому +1

    This is the stuff of legends, truly incredible work

  • @riisezz0
    @riisezz0 2 роки тому +3

    Fantastic work again. Your videos have helped a lot!

  • @mvo9856
    @mvo9856 Рік тому +1

    10:30 "I didn't even know what to google to read these," It looks like Linear Algebra often referred to as "Vector Math" in Blender. In preparation for my CS degree I had to take Linear Algebra. It's very useful to know some basic linear algebra when working in Blender, especially if you dip your toes into Geometry nodes. It is essentially doing math with groups of numbers all at once, which obviously comes up a lot when vectors and positions in 3D space are all groups of 3 numbers.

    • @aVersionOfReality
      @aVersionOfReality  Рік тому

      Yup! I had actually done a lot of Linear Algebra within the blender context, but without knowing any of the terms or symbols 😅

  • @user-qr8zu1pj2v
    @user-qr8zu1pj2v 2 роки тому +2

    This is a great project, thank you so much for sharing!

  • @mobinvaryan7196
    @mobinvaryan7196 5 місяців тому +1

    a blessing from the lord. thank you

  • @LommidrusaxTheWyrm
    @LommidrusaxTheWyrm 2 роки тому +1

    Thanks so much. I'm so glad I found this, was terribly interested in WHY all this poor calculation occurs and the research you've done is commendable! Keep up the good work

  • @radicant7283
    @radicant7283 2 роки тому +1

    This is wizard shit and you're doing god's work.

  • @koganbros.9351
    @koganbros.9351 Рік тому +1

    you are my king.

  • @cupidlsu
    @cupidlsu 2 роки тому +1

    It's all vector math. So that's what you would need to look up.
    You can think of a vector as a line between 2 points, but also note it has directionality. If you have points 1 and 2 each in 3d space, going from point 1 to point 2 is not the same as going from point 2 to 1, and therefore those two vectors would be opposite.
    Dot products try to answer the question "how alike are these two vectors?" To whit, perhaps the most common use of a dot product is to calculate the angle between two arbitrary vectors. The answer to the dot product question will always be a simple number. In dot products, order doesn't matter. 2 times 3 is 6. 3 times 2 is 6. The angle between the x axis and y axis is 90. The angle between the y axis and x axis is 90.
    Cross products result in a 3rd vector. If you take two vectors and stick their "from" points together, the cross product will return a vector that is perpendicular to both vectors. E.G. if you have a vector that is parallel to the x axis, and you have a vector parallel in the y axis, the cross product will be the z axis vector. In cross products, order matters. x cross y is z, but y cross x is -z. Cross product essentially answers the question "which vector is the most unlike these two other vectors." The answer is, the one that's most orthogonal.
    The symbolism preceding the one with • and x symbols are simplified notation for that vector math.

    • @aVersionOfReality
      @aVersionOfReality  2 роки тому

      Yup, good summary! Cross product gets used a lot for TBN based things, and of course dot product is all over the place in Normals math. Will be using a lot of both when building the various GeoNodes and Shader node groups.

  • @Reda-Ou
    @Reda-Ou 2 роки тому +5

    Excellent content as usual! I'm guessing though that it will not really be possible to have the ideal 'recalculate the difference' version in a game engine, we'll have to deal with deforms breaking baked normals.

    • @aVersionOfReality
      @aVersionOfReality  2 роки тому +6

      Actually its looking like there might be some options, just not sure what the performance will be like. I'm talking with a few people who know more about game engines about it. If nothing else, the Object based Normals can work in a game engine and fill that role. So i'm not sure what form it'll take, but we should be able to figure out something!

  • @carlobarley1985
    @carlobarley1985 Рік тому

    this is amazing! now I must convert this knowledge into a game engine

  • @Arckanda
    @Arckanda 2 роки тому +3

    Finally here! The next video! Got hooked on this project since last one and it's just awesome! I do have a concern about it, though: Will it be usable with Unreal Engine?
    Anyways, awesome content! Thank you very much for sharing all this.

    • @aVersionOfReality
      @aVersionOfReality  2 роки тому +1

      Geonodes methods itself won't be. But things we make with this method and bake to textures can be used anywhere.

    • @Arckanda
      @Arckanda 2 роки тому +1

      Does make sense :D thanks for your answer!

    • @aVersionOfReality
      @aVersionOfReality  2 роки тому +1

      @@Arckanda I've put a note in the next video about this issue too. It's something we'll talk more about as we get further in.

    • @Arckanda
      @Arckanda 2 роки тому +1

      @@aVersionOfReality Suddenly I am even more excited... Which, tbh, I didn't know would be possible :D

    • @aVersionOfReality
      @aVersionOfReality  2 роки тому +1

      @@Arckanda Well now I'm worried about living up to expectations! XD

  • @shmuelisrl
    @shmuelisrl 2 роки тому +1

    Wow this is really interesting and useful keep up the good work man ( and you earned my subscription)

  • @xylvnking
    @xylvnking Рік тому +1

    this is insane lol i love it you're a legend

  • @CordadePink
    @CordadePink Рік тому +1

    when i use data transfer to my anime head everything is great UNTIL i use the shapekeys of the expressions, it then gets all messy and i dont know to fix that

    • @aVersionOfReality
      @aVersionOfReality  Рік тому

      Yes, the Normal Transfer modifier comes after the shapekey in the order of operations. It can get complicated because you're changing the shape. If you use a intermediary copy of the mesh like shown in the 2nd and 3rd video, you can control this better because that copy of the mesh could have no shapekeys or different ones.

    • @CordadePink
      @CordadePink Рік тому +1

      @@aVersionOfReality thank you!

  • @basspig
    @basspig Рік тому +1

    So about this Data Transfer modifier, if you have a clean mesh, why not use that instead of the bad geometry mesh? If you have mesh that's got bad geometry how do you make a clean mesh that has the same shape that you can copy data from? Or does the source mesh have to have same number of faces and shape at all?

    • @aVersionOfReality
      @aVersionOfReality  Рік тому

      A mesh that can give the shading you want won't necessarily be the same shape visually as you want. The rest is covered in the next video of the series.

    • @basspig
      @basspig Рік тому

      @@aVersionOfReality I tried adding a UV sphere and subdividing it and then using it as a data source for the normals on my anime character, but I got an error relating to a mismatch in number of polys. Apparently, it's not that simple.

    • @aVersionOfReality
      @aVersionOfReality  Рік тому

      @@basspig You must have it set on Topology transfer, which is only for identical meshes. Use Nearest Face Interpolated. The next video is about this.

    • @basspig
      @basspig Рік тому

      @@aVersionOfReality I tried it again just now. Made a UV sphere, subdivided it twice, and selected my character object, added the DataTransfer modifier, with my character selected, used the eyedropper tool to select the sphere. This time nothing happened. Shadows look the same, no error.
      Also, I can't find a "topology transfer" or a "nearest face" option in that modifier. There are check boxes for vertex data, edge data, face corner data and face data. Topology mapping only has Max Distance and Ray Radius. I must be missing something!

    • @aVersionOfReality
      @aVersionOfReality  Рік тому

      @@basspig Once you choose Custom Normals in the face corner area, there is a drop down for mapping type.

  • @dmitrykolganov2142
    @dmitrykolganov2142 3 місяці тому +1

    36:28 you mean subdivision not subsurf right?

    • @aVersionOfReality
      @aVersionOfReality  3 місяці тому +1

      Its Subdivision Surface, so it gets called both. Sorry if that's confusing!

  • @notronn1507
    @notronn1507 2 роки тому +1

    12:25 "its not even that complicated" 😰 what?

  • @KayseChen
    @KayseChen 2 роки тому +1

    awww $h!t here we go again