Normal Maps for Pixel Art

Поділитися
Вставка
  • Опубліковано 1 лип 2024
  • In this tutorial, I show how to create sharp normal maps for pixel art.
    Reference Image: drive.google.com/open?id=127i...
    NormalMapTool: drive.google.com/open?id=1llz...

КОМЕНТАРІ • 185

  • @OzanSoylu
    @OzanSoylu 3 роки тому +76

    16:08 That's the biggest and most well-deserved flex I've ever seen. Good video, thanks!

  • @Plikemon
    @Plikemon 4 роки тому +217

    "To combine normal maps, I made a program which I will give away for free..."

    • @JeloOW
      @JeloOW 3 роки тому +13

      i understand what you mean by this
      because he actually gave it away for free

    • @brycea5452
      @brycea5452 3 роки тому +7

      @Mohammad Caleb fucking cancer

    • @felipe9187
      @felipe9187 3 роки тому +11

      @Mohammad Caleb scam lol

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

      @Mohammad Caleb nerd

    • @ninja_tony
      @ninja_tony 3 роки тому +1

      @Mohammad Caleb shut the fuck up you piece of shit.

  • @semirukiya5308
    @semirukiya5308 3 роки тому +54

    Now this is what I call a complete tutorial. Literally no questions left to ask... Impressive!

  • @DazzlingAction
    @DazzlingAction 4 роки тому +51

    This is the best explanation of normal maps I've seen in a while.

  • @gordorodo
    @gordorodo 3 роки тому +21

    After years this is the first time I actually get the way normal maps can be made by hand! Thanks for this awesome tut!

  • @chlbrn
    @chlbrn 3 роки тому +16

    This is very impressive, I never thought of making texture maps for 2d pixel art before

  • @majlada
    @majlada 5 років тому +64

    This is incredibly useful, thank you!

  • @flyingjudgement
    @flyingjudgement 5 років тому +57

    This Is beautiful You explained everything very clearly, I haven't got any questions left!

    • @ThePassiveAggressor
      @ThePassiveAggressor  5 років тому +2

      Great, very glad you liked it :) thanks for the nice comment!

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

    Amazing tutorial! I have never ever, through hundreds of hours of tutorials, watched such as well put, thought through and no BS tutorial. Thank you for your time.

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

    This is the best tutorial I think I've ever watched. Just, in general. It's so easy to follow along and it leaves you with everything you wanted to know and more without hurting your brain. Thank you for this :)

  • @DHofmann
    @DHofmann 5 років тому +15

    Many thanks for covering this for 2D artists much neglected but important topic with such detail.

  • @MoreNimrod
    @MoreNimrod 3 роки тому +1

    I have some pixel art that I was considering making more interesting by making normal maps for them. This helped a ton. Thank you!

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

    Great visualization of what normal map does! So clear!

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

    I wasn't looking for this specific but I was looking for a very sharp way to make normal maps for some scifi armor, and this tutorial apply perfectly, and so does the tool.

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

    Also thank you for the NormalMapTool, so intuitive and works perfectly, I use it quite often.

  • @Gameplayer555
    @Gameplayer555 11 місяців тому +1

    This is a good example of small channels sometimes having the best content. For 1 year, I didn't understand how to make normal maps or even how they work and why do they look like complicated polarized glasses, but this video made made me understand everything about normal maps I ever wished and even more!

  • @daviviana8016
    @daviviana8016 Місяць тому

    This is simply *brilliant*, it's so simple but so brilliant :O Three dimensions, three colors channels, then using a color to represent an angle, it's just genius omg

    • @ThePassiveAggressor
      @ThePassiveAggressor  Місяць тому +1

      Yeah, its really cool isn't it. There are other example of different channels being using for different things too :)

  • @naymalord9832
    @naymalord9832 4 роки тому

    Very useful not only for pixel art, but for any normal map creating in general

  • @crowcrow760
    @crowcrow760 4 роки тому +4

    This is pure gold! Thanks sir!

    • @ThePassiveAggressor
      @ThePassiveAggressor  4 роки тому

      Your very welcome :) these kind comment help me know it worth making more.

  • @Howtard
    @Howtard 5 років тому +7

    Thank you very much! This is a resource I've been looking for for a while.

  • @_raihan
    @_raihan 4 роки тому +1

    Thanks mate. Really appreciate you making this!

  • @Hario338
    @Hario338 9 місяців тому

    Oh damn!!! I've messed around with normal maps before but never quite understood how they work, thank you for this tutorial!

  • @brunch1572
    @brunch1572 7 місяців тому

    good video and thanks for that reference image

  • @erikm9768
    @erikm9768 4 роки тому

    Very clear and nice tutorial!!

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

    Amazing video! And Amazing work!
    P.S. Your voice is so calm and suitable for teaching.

  • @jonp3674
    @jonp3674 3 роки тому +1

    Awesome video, super helpful, thanks.

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

    Truly thank you, kind sir, thank you so much! really complete and comprehensible, very helpful! thank you again and have a nice day

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

      Thank you for the lovely comment, hope you have a great day too :)

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

    Just glorious.

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

    OMG, the best normal map explanation I've ever seen... working on TechArtist position for 2 years.

  • @sunsneezer
    @sunsneezer 4 роки тому +4

    With the release of Minecraft RTX this just became extremely relevant!

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

    Good video overall! Though I wanted to mention a caveat at 10:32 that creating a normal map through this process requires the Z component to be recalculated. Some of the normal vectors on the rocks are nearly white and normalization would make those vectors "flatter" than what was likely intended.

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

      This is a very good point, you'd want to send the result of that method through a re-normalising tool. thanks for the good comment :)

  • @Vagossssssssss
    @Vagossssssssss 3 роки тому +1

    Perfect video mah dude really well done :D

  • @tylergillette7050
    @tylergillette7050 3 роки тому +4

    Have you ever heard of a program called Aseprite? It's a pixel-art focused program that has a built in normal map color picker (it's a little less inclusive than your provided image, but it does have a smooth half sphere option, and a "discrete" polygonal sphere option). It also supports on-canvas alpha picking/sampling! Just thought you might be interested given the pixel art videos recently, and the alpha picking feature video.

    • @ThePassiveAggressor
      @ThePassiveAggressor  3 роки тому +11

      Aseprite is my favorite pixel art tool, I even helped a little with its development :) Cheers.

  • @josephbrandenburg4373
    @josephbrandenburg4373 3 роки тому

    Krita has a wonderful Combine Normal Maps layer blend mode. I also made a Blender NodeGroup implementation of the same algorithm.
    ... it seems you've read that blog entry on combining normal maps, too!

  • @rewindcat7927
    @rewindcat7927 3 роки тому +1

    Well done, thank you 🙏

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

    You are awesome. Thank you!

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

    Very helpful, thank you!

  • @sahlikh1829
    @sahlikh1829 4 роки тому +1

    such a good video... thank you

  • @OniMirage
    @OniMirage 4 роки тому

    Very interesting. I think I will try and take a 2d sprite and see if I can get this done. There are a few faster ways this can be done in photoshop so once I have the flow down maybe I can do an animation.

  • @Renegen1
    @Renegen1 7 місяців тому

    great explanation

  • @ollie-d
    @ollie-d 3 роки тому

    Great video

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

    Thank you for this incredibly well explained video, it helpt me quite a lot! I hand drew the normalmap, not for pixel art but for a detailed somewhat realistic style. However, I used blending tools as gradients would have been just too clumsy otherwise... I didn't notice any corruption of the normalmap afterwards. Either the problems are too small for me to see or it did work after all?

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

      Thanks Jasmin, that sounds good to me! You should be able to tell if your normal map works once you put it ingame (or render it).

  • @foreverAnkh
    @foreverAnkh 4 роки тому +4

    Thank you for the video, I just downloaded Blender for the first time to try out baking normal maps.
    I am curious on your overall procedure with Blender.
    Did you import image as a plane and then manually model each pixel?
    When importing I get a blurred image rather than a sharp pixel image.
    Since I am so new to Blender, I will take some time to figure out a solution. If you have or seen some tutorials, that would be a tremendous help.
    Again thanks for the video, very informative!

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

      If I remember correctly I just made a plane and added the texture, but "image as plane" would certainly help. To stop the blurring you need to disable texture filtering, see here: blender.stackexchange.com/questions/845/how-do-i-disable-texture-filtering

  • @garrettwidner8199
    @garrettwidner8199 3 роки тому

    Thank you!

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

    Finaly i found this!

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

    This is very nice, I would have loved seeing example sof how the different results and techniques look under a changing light setup.
    That way you could have shown the best and worst case scenario for each technique and help us visualize it more clearly.
    Otherwise great effort, great pacing & editing and very instructive

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

      Thanks, yes that's a good point. This video shows it a little: ua-cam.com/video/EA_A8qhTh-8/v-deo.html

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

      @@ThePassiveAggressor thanks, looks really good

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

    Thanks!!!

  • @idoasraff8513
    @idoasraff8513 4 роки тому

    awesome

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

    Great tutorial. Would have been nice to show the 3d result of the various methods.

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

      Thanks, yes with hindsight I should have definitly shown some results, Check out my "Experimenting with Specular Maps for Pixel Art" video get an idea of the kind of results you get.

  • @emanuelminzat268
    @emanuelminzat268 4 роки тому

    good job with this video

  • @connorshanks9931
    @connorshanks9931 9 місяців тому

    thanks x

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

    To the OP: I’m thinking Z-Brush could be really useful too depending on the subject

    • @ThePassiveAggressor
      @ThePassiveAggressor  4 роки тому +1

      I wouldn't be surprised, I don't own zbrush but from what I know its got good depth map tools.

  • @xLightcrystalx
    @xLightcrystalx 3 роки тому

    At least in the top 20 tutorials in youtube history.

  • @reddishblue7827
    @reddishblue7827 3 роки тому +1

    What would be the photoshop equivalent for the "Copy Green" and "Copy Red" blend modes? or would it just be best to do this in Krita?

    • @ThePassiveAggressor
      @ThePassiveAggressor  3 роки тому

      Its been a while since I used photoshop but you should be able to do it. you could just copy the green/blue channels out of the layers manually

  • @Erwiinstein
    @Erwiinstein 4 роки тому

    Hey, this is a super great video!
    Can you care to list all of those types of textures that you said (and didn't said) in the video? And I mean *all* (even the ones you said as 'etc').
    I'm kinda researching about them right now but I can't find a list of them, only on this video.
    Thanks!
    But yeah, as I was saying, this is a very comprehensive video about this topic. This was super great.

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

      Thanks, glad you liked it. Other maps include: Emission, Metalness, Roughness, Occlusion, ID Maps, Detail, Translucency, Displacement ( they're only really limited by the renderer/shader your using)

    • @Erwiinstein
      @Erwiinstein 4 роки тому

      Thanks for the effort to reply!
      I'm currently trying to make normal maps for my sprites and I'm trying the paint by hand method from your video and it was super helpful to me.
      Thanks again for the reply, and for the video!

    • @ThePassiveAggressor
      @ThePassiveAggressor  4 роки тому

      @@Erwiinstein Your very welcome, knowing these videos are helping is why I make them :)

  • @edgeisloveedgeislife5439
    @edgeisloveedgeislife5439 5 років тому +2

    Hi there, I've made my normal map and I now want to test them, do you maybe know of a way to do so easily without a game engine? I want to fully focus on graphics at the moment and I was hoping you'd know of a program to import normals and textures to, and possibly specular/metalness etca, and have my curser be a dynamic light source to check all is well.

    • @ThePassiveAggressor
      @ThePassiveAggressor  5 років тому +2

      I normally use Unity but it does take a little setting up, But Materialize is a good simple program you should be able to use to test them out in (boundingboxsoftware.com/materialize/)

    • @edgeisloveedgeislife5439
      @edgeisloveedgeislife5439 5 років тому +1

      Whew this was an incredibly quick reply! Thanks for that!
      Anyways, I found a workaround using Godot, it's quite easy to set up, but I'll check out materialize! Thanks!
      EDIT: do you by any chance know how to set up specular/metalness maps for 2D in Godot?
      EDIT2: Materialize comes out blurry, I'll mess around a little, but if you know a fix it'd be nice, thanks for all the help so far btw.

  • @TheParasone
    @TheParasone 5 років тому +3

    So lets say i have my pixel tiles designed (referencing to the dead cells game) now i also have the normal tiles how do i do the programming so the normal tiles are used within the pixel tiles?

    • @ThePassiveAggressor
      @ThePassiveAggressor  5 років тому +3

      You'd need to create a material (using a shader that supports normal maps), assign your images maps to it, and use that material on your tiles

    • @decrodedart2688
      @decrodedart2688 4 роки тому

      TheParasone just get Godot it comes with this functionality built in

  • @KnotKingdom
    @KnotKingdom 3 роки тому

    Is this possible to do with vector art? For instance can a normal map be made in adobe animate cc which could scale with my base image. Planning to use vector art for my game and have not been able to find any resources regarding normal maps with vector art. It seems if I hand paint similar to your method of picking colors from a reference, then I might be able to build normal maps within a vector based program?

    • @ThePassiveAggressor
      @ThePassiveAggressor  3 роки тому

      I haven't tried it but I see no reason why that shouldn't work. go for it :)

  • @Corruptinator
    @Corruptinator 5 років тому +1

    How did you maintain the sharp pixels in the Blender viewport? My sprite is at 64x64 resolution and when imported the pixelated edges are blurry.

    • @ThePassiveAggressor
      @ThePassiveAggressor  5 років тому +2

      For sharp pixel, turn off MipMaps in the User Preferences under System -> Opengl

    • @Corruptinator
      @Corruptinator 5 років тому +1

      @@ThePassiveAggressor Thanks!

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

    What if instead of setting the blue channel to flat fill during the combining of 4 images, you used the height map itself for representing blueness? After all, blue is representing how the shape is lit perpendicularly, so the convex shapes will be lit more on their flat top rather than near the angled base.

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

      I'm not sure that would work. The colour that I fill the blue channel with represents a normal that points straight up, its then combined with the left and right "colours" to make the final vector. But what you can do is replace the blue channel at the end of this process with other information, like a specular map. Then in a shader you can recalculate the Z component of the normal.

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

    I'm curious if anyone has thoughts..
    For an animation of a char running in an angled down view perspective(ie stardew valley, graveyard keeper), I want to create normals for every frame.
    The problem is that due to the perspective of the camera, light that comes from above the character should barely light the character up because the light is behind the character from our perspective. Programs that generate normals break this perspective by including too many pixels lit from the top. I need the normals to be somewhat consistent due to this being an animation.
    I've tried painting light from 4 angles on 4 different images, then merging them into a normal map with software, which is great, but it's pretty much impossible to make consistent per frame.
    Any thoughts on what I could do to accomplish this? Is there software to generate normals on a sprite where I can change the perspective to include very few pixels being lit from the top?

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

      That's a very good question, let me give that some thought.

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

      @@ThePassiveAggressor I researched quite a bit more yesterday and found out that Sprite DLight is able to generate normal maps for a sprite sheet(so that helps with the consistency issue), but the key thing is that they have a feature to rotate about the x, y, or z of the normals. I'm pretty sure that means if I rotate it about the x axis, I can get the desired effect of reducing the amount of pixels lit from the top for the whole animation. Still researching for other methods and I'm curious if you have any other thoughts, but this seemed like a decent place to start. I'm surprised by the lack of normal map generating tools tbh - everything is 6 plus years old haha. Great video 👍

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

    Yeah, but what do you do with pixel art normal maps?

  • @VikingVertigo
    @VikingVertigo 4 роки тому

    Isn't it faster to just draw the angle information directly in the red and green channels when doing the manual 4 image method?

    • @ThePassiveAggressor
      @ThePassiveAggressor  4 роки тому

      Yes, that would be faster as long as your use to using the correct colour to represent the desired angles

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

    By any chance is there a process name or plugin that does the Normalize feature that your program uses. Because this is an insanely useful tool for video game modding and squeezing out additional details in DXT5 compressed normals for Valve games.

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

      Sadly there isn't at the moment, but its something I could probably do if I can find some spare time. What would be the most useful to you do you think? an exe that would take an input and output filename?

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

      The workflow with the tool atm is fine. I tend to just keep it up and load in map 1 then hit normalize and export the result. only thing I could think that would improve workflow is add a drag-and-drop feature and maybe TGA support. But in reality a few extra secs won't kill anyone in my opinion. Now if there was a conversion project that needed to batch edit several normals then I could see how such a feature would be heavily needed. But as for now it works great and has made me more curious on wanting to understand normal maps more

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

      @@forgottenalex cool, I'm crazy busy at work at the moment, so finding time would have been tricky. Thanks :)

  • @iWanderr
    @iWanderr 3 роки тому

    I love you

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

    I am one of the folk who did a double take when he said red, as my monitor showed me brown.

  • @SpyerOff
    @SpyerOff 3 роки тому

    How did you do to get your black and white image with 4 different angle ?

  • @NorthernWhisper
    @NorthernWhisper 4 роки тому

    You mentioned that there is paid software that will create the top, bottom, left and right images. What software was that?

  • @user-fq8tx7fq1d
    @user-fq8tx7fq1d 3 місяці тому

    Nice video.
    Normal map generator can't generate nothing from the colored texture because it's not how it works.
    It can generate normals from height map..

    • @ThePassiveAggressor
      @ThePassiveAggressor  3 місяці тому

      Thanks, glad you liked it and yes generating normal maps from height maps will give much better results.

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

    how did you used blender for normal map generation??

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

      I modelled the geometry of the pixels, then baked the normal map to a texture. (there's lots of good normal map baking videos)

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

    Hey, can I ask you, do you still have the source code for that tool? Would be nice to see how it's done.

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

      I should have it somewhere, I'll see if I can dig it up. It just convert the RGB values into vectors, then does some simple angle calculations

  • @cube2fox
    @cube2fox 9 місяців тому

    Only one question left: Isn't pixel art exclusively used in to make 2D graphics? And aren't normal maps exclusively used to make 3D surfaces? In other words, what are pixel art normal maps used for? Can they be used to add a depth effect to 2D retro games like Super Mario Bros?

    • @ThePassiveAggressor
      @ThePassiveAggressor  9 місяців тому +1

      Yes you can use normal maps in 2D games. Have a look at this: ua-cam.com/video/EA_A8qhTh-8/v-deo.html

    • @cube2fox
      @cube2fox 9 місяців тому

      @@ThePassiveAggressor Wow!

    • @ThePassiveAggressor
      @ThePassiveAggressor  9 місяців тому

      :-)@@cube2fox

  • @thediamondkneeplate6981
    @thediamondkneeplate6981 3 роки тому

    Why do you need to save resources for pixel art?

  • @Tech2001
    @Tech2001 3 роки тому

    Does anyone know how to get that copy colour in gimp?

    • @ThePassiveAggressor
      @ThePassiveAggressor  3 роки тому

      I haven't used Gimp but I image you could use the Color picker: docs.gimp.org/en/gimp-tool-color-picker.html

    • @DominoMarama
      @DominoMarama 3 роки тому

      There's not a Copy Color option for layers in Gimp. What you can do is use Colours/Composition/Decompose & Recompose which let you work on individual RGB channels as grayscale layers. You could alternatively start with a grayscale image and build up the red / green / blue layers then use Colours/Composition/Compose to combine them into a colour image.

  • @HallyVee
    @HallyVee 4 роки тому

    Height? Like... distance from the ground?

    • @ThePassiveAggressor
      @ThePassiveAggressor  4 роки тому

      yes, just like that :)

    • @HallyVee
      @HallyVee 4 роки тому

      So confused. Are we assuming the pixels are going to be on a vertical plane, then? What if the image is meant to be horizontal? Maybe it's distance from a perpendicular point?

  • @alevanderBatman
    @alevanderBatman 3 роки тому

    But why would you want to make normal maps instead of just using some 3d pixel art software? Isn't it much easier and more costumizable that way?

    • @ThePassiveAggressor
      @ThePassiveAggressor  3 роки тому

      Thats a good question, I think its a matter of personal taste, some people like to create each pixel by hand. Out of interest what 3d pixel art software do you mean?

    • @alevanderBatman
      @alevanderBatman 3 роки тому

      @@ThePassiveAggressor Well, I haven’t really done it myself so I don’t know any of the programs well. I’ve seen people using Crocotile, otherwise I’ve just seen the finished models on twitter! :)

    • @ThePassiveAggressor
      @ThePassiveAggressor  3 роки тому

      @@alevanderBatman Thanks for the info, I haven't heard of Crocotile, I'll have to check it out :)

  • @hasanyousef6782
    @hasanyousef6782 4 роки тому

    why am i watching this at 3am

  • @K0BR4mods
    @K0BR4mods 3 роки тому

    Why use maps for pixel art?

    • @ThePassiveAggressor
      @ThePassiveAggressor  3 роки тому

      Take a look at my "Experimenting with Specular Maps for Pixel Art" to see the result. I think its worth it :)

  • @hse_uploads
    @hse_uploads Місяць тому

    height maps == depth maps? what?

    • @ThePassiveAggressor
      @ThePassiveAggressor  Місяць тому

      Yes, its just a different name for the same thing. silly huh :)

    • @hse_uploads
      @hse_uploads Місяць тому

      @@ThePassiveAggressor yeah caught me off guard

  • @St0rm.bringer
    @St0rm.bringer 2 роки тому

    Hey. I came back again to this video months later to say a big thanks. This was really well explained and to the point. Kudos