Value Noise Explained!

Поділитися
Вставка
  • Опубліковано 7 січ 2025

КОМЕНТАРІ • 124

  • @eventhorizon8014
    @eventhorizon8014 4 роки тому +15

    This Channel is pure gold, totally awesome for beginners. You're doing some really good work ! In my book you should have millions of subs :)

  • @kacperozieblowski3809
    @kacperozieblowski3809 5 років тому +31

    the unicorn walking in the webcam is killing me :D

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

      Thought it was a cat.

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

      It is not a fox?

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

    for anyone wondering, the font is in the title is called kill the noise. great attention to detail!

  • @xizhiwang2653
    @xizhiwang2653 6 років тому +13

    It is Sooooo USEFUL! The noise functions in shadertoy have always been chaos to me. Thanks !

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

    Your explanation makes everything make so much more sense and so much more easy to sit through!

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

    Fantastic explanation, clear and calm. Thank you!

  • @forshera
    @forshera 6 років тому +2

    Huge thanks!
    You are the only souce i know for Shader programming that is actually teaching by showing how to create stuff, which helps with motivation immensely. Extremely helpful, thank you again!

    • @TheArtofCodeIsCool
      @TheArtofCodeIsCool  6 років тому

      I'm glad you like it, and you're welcome!

    • @jovanrakocevic9360
      @jovanrakocevic9360 5 років тому

      Inigo Quilez has articles, and a few videos. His stuff is quite dense to get by just reading though, or maybe I am just slow, but it doesn't seem like noob friendly material. But once you get it, some things are insane (analytic normals for example, phew, you can speed up algorithms for procedural terrain generation, or volumetric rendering with noise displacement etc. to hyperspeed)

    • @fygarOnTheRun
      @fygarOnTheRun 5 років тому

      @@jovanrakocevic9360 sounds awesome! Got any links to those topics?

    • @jovanrakocevic9360
      @jovanrakocevic9360 5 років тому

      @@fygarOnTheRun iquilezles.org/ it can be a bit hard to navigate but it has all sorts of goodies.

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

    This was excellent! I've been trying to make my own noise function, and I was trying to figure out how Perlin's algorithm worked, and I figured it out somewhat by thinking about how I would do it, but this was such an excellent explanation, it gave me a great foundation to build from. Thank you!

  • @ctrlz4475
    @ctrlz4475 6 років тому +4

    Oh God, Here is The Best ever video for shader newbie

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

    I'm a junior tech artist working with shaders (with a digital art background, and math was always my biggest struggle in school) and your channel has helped me understand both GLSL/ HLSL and how to visualise math. A true lifesaver and I always come back to your channel to watch and rewatch your videos. Have you covered how to make a seamless tiling noise? I might imagine you have mentioned it somewhere, but I can't recall. I assume the idea is to compare the very first and last row of pixels of each axis to each other, and average it out, but I have no idea how to implement it.
    You're such an excellent teacher btw!

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

      Thanks for the nice words! It makes me happy to see that people like you get stuff out of my videos. I did not cover seamless noise, or seamless texture generation in general. In order to make the noise from the video tileable you'd have make sure all noise layers are aligned with the grid, meaning no decimals in the scale and offset, and then you'd have to make sure that the random values on the left edge match the right, and the top edge match the bottom. You could do this by applying a modulo on the ID value that is used to generate the random values. If you have a layer that should have, say, 8 points per tile, then you want it to repeat every 8 points, so you'd do ID=mod(ID,8)
      Make sense?

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

    It's brilliant! It looks like absolutely random. But independent of this, the system really have defined behaviour! You can put same coefficients in this and have taken same results. It's amazing!

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

    best video about noise I ever seen. Thank you very much!

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

    Loves it, More easier to understand the value noise than bookofshaders!

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

    First time I see how to create a noise function from scratch - super interesting!

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

    Amazingly explained. Thanks!

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

    Messed about with making perlin noise but couldnt make it smooth or make it layered. You explained it great, will have to play with it again later.

  • @Hypnoticshark
    @Hypnoticshark 6 років тому +7

    As always, I learned a lot. Thank you.

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

    Great video! Very easy to follow.

  • @Bubatu7
    @Bubatu7 6 років тому +2

    Great video, easy to follow and fun to watch.

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

    Brother, you are the next level of intelligence. Thank you for spending the time to teach us what you know. I appreciate it very much and I know others do as well. Keep doing what you are doing! When you come up with a "Shaders R Us" tee shirt let me know, I want one!

  • @LuckyChatt
    @LuckyChatt 6 років тому +3

    Great idea for video series! Good job!

  • @iamthoys
    @iamthoys 5 років тому +24

    Looked all smooth until the double of 32 was 65 hhehehehe. Great vid

    • @TheArtofCodeIsCool
      @TheArtofCodeIsCool  5 років тому +6

      Hehe, yeah I noticed that when I was watching my own video. Sometimes you don't realize you say something wrong. :)

    • @Graeme_Lastname
      @Graeme_Lastname 5 років тому

      And double that is 125. ;)

  • @frankjohansen3132
    @frankjohansen3132 6 років тому +3

    You are a damn good teacher.

  • @igorhuayra5284
    @igorhuayra5284 6 років тому +4

    As always I learn a lot thank you

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

    Great video! Thanks a lot!

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

    Awesome tutorial

  • @greje656
    @greje656 6 років тому +4

    great video. thanks for those!

  • @СергейПавлов-в2е
    @СергейПавлов-в2е 3 роки тому

    Incredible as always! Thanks!!

  • @newuser2493
    @newuser2493 6 років тому +2

    Thanks, great series! Subed.

  • @icaroamorim3123
    @icaroamorim3123 6 років тому +3

    what a beatiful chanel

  • @realcygnus
    @realcygnus 6 років тому +3

    awesome stuff

  • @Monio4
    @Monio4 6 років тому +1

    Fantastic. How about making tutorial about Perlin or Worley noise?

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

    It`s AMAZING. Thank you very match

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

    That's brilliant, amazing! Thanks a lot!

  • @LowLifeGraphicsProgrammer
    @LowLifeGraphicsProgrammer 6 років тому

    Really hope more videos about advanced noises!

  • @oraz.
    @oraz. 2 роки тому

    I can't seem to figure out value noise on my own. I try mixing quantified noise with some kind of triangle mix signal. It's always a regular pattern though. I will just watch this.

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

    This is gold !

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

    Oh yea, I agree with Event Hroizon, you should have MILLIONS of subscribers. GPU technology being used this way is incredible. People should start MARCHING to a new beat the RAY MARCHING BEAT! LOL

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

    Hello, i just make my own noise function, when i reposition the uv to center, why the noise function looks like "feedback" effect?

  • @KaranArjun-xf3uy
    @KaranArjun-xf3uy 7 місяців тому

    Wow,nice explanation! Can I use this noise for a commercial project?

  • @DutchDread
    @DutchDread 6 років тому

    I am running into a problem with this tutorial.
    I noticed that the top wasn't generating clouds correctly, and the more I increased the frequency, the smaller the Y area it actually impacted.
    For some reason when increasing the frequency beyond 16 the N21 wasn't generating random numbers anymore in. Doing a N21 with the uv's multiplied by 17 or over caused any ID area with a Y over 16 to just generate 0 as a result.
    When I reduced the multiplication factor in the N21 function from the thousand range to the hundreds range that seemingly fixed it. I had a few theories on why this might be but none seemed reasonable.
    Anyway, with this fix I managed to get a working SmoothNoise2 function.
    Then I added the time "uv += iTime*.1;" and that caused the noise to change entirely, now instead of a moving noise cloud I got a moving repeating pattern.
    While writing that I got an idea and tested the time addition again while first resetting my time, and now I have a moving cloud that slowly loses each level of frequency detail as the values start once again becoming too large for N21 to handle.
    My code matches yours perfectly as far as I can tell, the only difference being that for some reason, my N21 starts producing a 0 result once the input becomes too large.
    Any ideas what the problem could be?

    • @TheArtofCodeIsCool
      @TheArtofCodeIsCool  6 років тому

      You have a shadertoy link I can look at?

    • @DutchDread
      @DutchDread 6 років тому

      I was getting you one but I noticed my home pc doesn't have the same problem, meaning it must have something to do with my work laptop and not with my code, but thanks a lot for the offer.
      Do you think a problem with my drivers, or my ram could be to blame? Or perhaps my gpu or cpu, I don't actually know what shadertoy uses for it's calculations.

    • @TheArtofCodeIsCool
      @TheArtofCodeIsCool  6 років тому +1

      The noise function I'm using here makes use of a sine, this gives different results on certain graphics cards and therefore I am not recommending it anymore. Check the noise function I'm using in 'The Universe Within' tutorial. It will probably run fine on both machines.

  • @sacredbanana
    @sacredbanana 6 років тому +3

    Amazing video, as always. What resources did you use to learn shader coding to manage to get to the advanced level that you are currently at? I'm finding online resources to be quite insufficient in general and the infamous The Book of Shaders is great but they haven't finished yet making all of the book yet.

    • @TimMatthewsX
      @TimMatthewsX 6 років тому +2

      I have found that time spent on ShaderToy has been really useful. Some of the creators there have really well commented code, and for the others which are less transparent I'll break the code down so I understand what each component contributes to the overall effect. After a while you build an understanding of chunks of code so you can quickly make a high-level assessment of the shader components.
      Starting by working through the Book of Shaders until you really understand and internalise the work, and then working through ShaderToys, re-implementing aspects or even the whole toy has really given me a good understanding of glsl coding.
      You might have seen these already but TekF made an excellent tutorial on ray marching www.shadertoy.com/view/MdBfRK and I find Shane's code to be very readable www.shadertoy.com/user/Shane

    • @TheArtofCodeIsCool
      @TheArtofCodeIsCool  6 років тому +4

      I agree with Tim. I just started by looking at what other people on ShaderToy did. It looks daunting at first but in many effects you see similar pieces of code, like the one I'm explaining in this video.

    • @sacredbanana
      @sacredbanana 6 років тому +1

      Thanks guys. Hopefully you'll see me competing in next year's Shader Showdown at Revision in Frankfurt

    • @sacredbanana
      @sacredbanana 6 років тому

      are there any books which you've read that you recommend?

    • @TheArtofCodeIsCool
      @TheArtofCodeIsCool  6 років тому

      Unfortunately no. I learned all of shader programming by looking at what other people have done. Other than that, I guess UA-cam is your best choice.

  • @AndorSalga
    @AndorSalga 6 років тому +2

    Awesome videos! ^_^

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

    Thanks a lot!! I have a question. If each gpu is going to use the values ​​slightly differently to generate those randomness. Because when compiling a shader on one computer or another, the difference is not noticeable? Because in the first layer at least, with the same numbers as you, on my screen it looked very different. Thank you very much for all these videos!

  • @LudwigvanBeethoven2
    @LudwigvanBeethoven2 5 років тому +4

    Next up: how to create a universe in shadertoy!

  • @TerminalStage
    @TerminalStage 6 років тому +1

    That's what I was looking for! +1

  • @KaiwenFa
    @KaiwenFa 6 років тому +2

    Hey Martijn, thank you for putting up this great tutorial as always! One question: it seems like there's a black point at the origin when creating the noise pattern in this way. Do you know why is that?

    • @TheArtofCodeIsCool
      @TheArtofCodeIsCool  6 років тому +1

      Thanks for watching!
      Its because the core noise function is sin(p.x*a + p.y*b)*c which is 0 for any combination of a b and c when p.x=p.y=0
      You could put in an extra var inside of the sine to offset it randomly but its not really necessary, just shift the uvs away from the origin and you don't have a black spot.

  • @anmaral-sharif1381
    @anmaral-sharif1381 6 років тому

    As always, great video from Shader master 👍

  • @josephkalathil9354
    @josephkalathil9354 6 років тому +4

    A good idea would be to make 3d noise and perform ray marching to simulate fog/clouds.😀

    • @blender5528
      @blender5528 6 років тому

      how do you apply 3d noise in rasterizer ?not using 3d texture

    • @josephkalathil9354
      @josephkalathil9354 6 років тому

      Sergio Sergio if you can make 2d texture procedurally like he is doing now... why can't you make a 3d "texture" from a 3d noise functions .. takes in 3 inputs to give an output instead of 2 inputs like he is doing now with the uv coordinates

    • @blender5528
      @blender5528 6 років тому

      well,you can make 3d noise using ray tracing but how do you apply this in rasterizer,so i meantioned rasterizer word :)

    • @josephkalathil9354
      @josephkalathil9354 6 років тому +1

      Sergio Sergio oh... got it, my bad. Maybe point cloud creation then a convex hull around it.. I'm not sure. Just guessing

    • @TheArtofCodeIsCool
      @TheArtofCodeIsCool  6 років тому +2

      Yeah it would be. Perhaps the topic of a future video.

  • @blender5528
    @blender5528 6 років тому

    Nice sir!Well explained :)

  • @张宇成-b1b
    @张宇成-b1b 6 років тому +2

    此刻,真理就在我的面前.

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

    Excellent

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

    THANK YOU.

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

    On my PC that noise eventually become more vague until just gray screen (when I open your shadertoy too). Why is that?

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

      It could be that your graphics card doesn't have a very precise sine implementation for the random function. Try a different noise function. You could take one from a ShaderToy called 'hash without sine'

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

    Thaaanks man

    • @xamogxusx
      @xamogxusx 5 років тому

      Nvm, this is FBM actually :)

  • @kru.7291
    @kru.7291 6 років тому

    keep up the good work

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

    Thank you!

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

    I've notice that when the time grows larger, the pattern gets completely blank. Is it just me?

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

      Certain hardware doesn't work nicely with trig functions (the sine in this case). Watch my the feathers video for another type of hash function that uses a dot product instead.

  • @rtcwkillz
    @rtcwkillz 5 років тому

    Is there any document or book that teaches glsl and create art with math?...
    understand how mathematics work with UV coordinates

    • @4.0.4
      @4.0.4 5 років тому

      I think if you read any book on computer graphics the concepts will directly apply. Art is a very abstract concept though. Computer art is just art + computer. But maybe you mean fractals specifically? You should look into Processing, that should get you started.

    • @rtcwkillz
      @rtcwkillz 5 років тому

      @@4.0.4 It is to create these effects. www.ultranoir.com/en/

    • @Madmadfr
      @Madmadfr 5 років тому

      @@rtcwkillz thebookofshaders.com -> this helped me a lot to understand the basics of glsl :)

  • @icaroamorim3123
    @icaroamorim3123 5 років тому

    Would consider do some tutorials based on effects for games ?

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

    Thanks, very leerzaam.

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

    did you just write perlin noise in a shader? neat.

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

      No - the version known as "Perli Noise" today is a bit more complex and gets rid of the square like artifacts.

    • @JasonEwton
      @JasonEwton 5 років тому

      @@bronzekoala9141 Fair enough. I guess it's just basic coherent noise. Still really cool.

  • @qqlove139
    @qqlove139 6 років тому

    hi, where is your practise code? on github or other repository?

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

    Typo on the last multiple of two - should be 64, not 65

  • @4.0.4
    @4.0.4 5 років тому

    Was that plushie added in post or you managed to keep a straight face with something so... _random_ being moved around you?

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

    amazing

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

    The unicorn seems pretty random to me 😆

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

    I nearly copied everything, but still got repeat and discontinued. I am very confusing, can anybody help me? www.shadertoy.com/view/ttcyRX

  • @icaroamorim3123
    @icaroamorim3123 5 років тому

    can anyone give me some tips on how I can make this shader work s inside a skybox.
    www.shadertoy.com/view/wdyXR1

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

    I'm getting smarter just sitting here.

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

    wtf have I just witnessed