The ONE Texture Every Game NEEDS

Sdílet
Vložit
  • čas přidán 25. 07. 2024
  • Exploring why procedural noise (such as perlin noise) are so useful in game development and graphics.
    🛒 Recommended books (on Amazon): www.amazon.com/hz/wishlist/ls...
    ❤️ Support me on Patreon: / simondevyt
    🌍 My Gamedev Courses: simondev.teachable.com/
    Disclaimer: Commission is earned from qualifying purchases on Amazon links.
    Follow me on:
    Twitter: / iced_coffee_dev
    Instagram: / beer_and_code
    In this video, I cover how to generate value, gradient, and voronoi noise. We go over how they're computed, and as well, we'll walk through some uses in game development, and VFX settings.
  • Věda a technologie

Komentáře • 323

  • @simondev758
    @simondev758  Před rokem +126

    WARNING: Some flashing at 5:40 -> 5:50
    Btw, support me for more videos:
    GLSL Course: simondev.teachable.com/p/glsl-shaders-from-scratch
    Patreon: www.patreon.com/simondevyt

    • @Colonies_Dev
      @Colonies_Dev Před rokem

      where is your video on lerp and smoother step?=(

    • @simondev758
      @simondev758  Před rokem +1

      @@Colonies_Dev czcams.com/video/YJB1QnEmlTs/video.html

    • @andrespedraza8939
      @andrespedraza8939 Před rokem

      @@simondev758 Hi I would like to purchase the course, do you offer some sort of regional pricing? On my country is a little expensive:/

    • @simondev758
      @simondev758  Před rokem +1

      @@andrespedraza8939 Msg me on twitter

    • @andrespedraza8939
      @andrespedraza8939 Před rokem

      @@simondev758 done

  • @onceonly1111
    @onceonly1111 Před rokem +363

    I feel like they should use videos like this in high schools when students ask "when will mathematics ever be useful in real life?", because so many kids play video games. They can see how a function becomes a graph, and how any points on the graph can represent things like patterns, motion, time, sound, and that the sounds can be sampled for music. There is a lot of experimentation like "If we do this to the graph then this happens", and people who are learning need to be encouraged to experiment to make the process of learning more enjoyable.

    • @simondev758
      @simondev758  Před rokem +92

      Definitely. I hate the dry, theoretical approach. For me, they need to be linked. Showing where and how these things are used.

    • @fuzzyhenry2048
      @fuzzyhenry2048 Před rokem +32

      Looks like the whole world agrees that the math lessons in school are as dull as f**k as they never show what math and algorithm is really for, instead they are like it's some mad scientists' impractical fantasy.

    • @pixalmasterstudios2485
      @pixalmasterstudios2485 Před rokem +4

      Fr this is so accurate. I would enjoy math way more if they did more interesting math approaches

    • @DaddyFrosty
      @DaddyFrosty Před rokem +2

      This is literally what I told my teacher during a visit back, and since it was a “tech” school it just makes sense. They’re already doing programming might as well combine math with it

    • @illford6921
      @illford6921 Před rokem

      You guys dont do Mechanics or Stats as part of maths?

  • @ardavanansari
    @ardavanansari Před rokem +682

    The production value, the explanation, the amount of valuable information... astounding. Your videos will help many developers for years to come. Thank you.

  • @RiverReeves23
    @RiverReeves23 Před rokem +378

    Skill level = master. You remind me of a senior developer I worked with once, who had reahed a level of knowledge in which he really could create art with code. It's a beautiful thing.

    • @cptwoody7103
      @cptwoody7103 Před rokem +2

      i wonder how much math knowledge in senior should have ? . as intern gamedev student I have a long road to go for achieve and understanding overall concept mathematical theorem . well i guss its Lifelong Learning.

    • @lukkkasz323
      @lukkkasz323 Před rokem +20

      @@cptwoody7103 it depends on what you're doing, a lot of programming is not dependent on math, but systems, logic, connections etc., also a lot of the time you just need the abstract understanding of math, because libraries can do a lot of stuff for you.
      Take the example from the video, the hash() function has a few math calculations inside it, but all you need to know is that hash() takes a seed and returns a noisemap, no math required to use it, it really depends on what is it that you're programming.

    • @monad_tcp
      @monad_tcp Před rokem +11

      @@cptwoody7103 Learn linear algebra, it gets you all the way to 80% of the math that you will ever need for computing science and programming for 20% of your "buck", aka time.

    • @meljXD2
      @meljXD2 Před rokem +5

      @@monad_tcp i always hated math, but actually enjoy statistics and algebra so knowing where to focus helps so thanks! I let my distaste for math hold me back from programming. For game development how much geometry would I have to know? This subject is where I struggle the most as I haven’t felt a method to learn it yet.

    • @monad_tcp
      @monad_tcp Před rokem +4

      @@meljXD2 using geometry isn't that hard, because you can see it and test visually the things, and you can do the same with linear algebra, at least the algebra that you need for games.
      geometry is very cool to learn,specially for something useful like programming games.
      the most boring thing about geometry would be proving the theorems, but you don't have to do those in actual programming. just take them and play with it.
      that's how you lose the fear.

  • @estyelemenopee8770
    @estyelemenopee8770 Před rokem +143

    The realization that I've been taking noise for granted for years now, even though it's in every single project I do. Thank you for teaching me something I didn't know I needed to know.

    • @Megalomaniakaal
      @Megalomaniakaal Před rokem +3

      I've been taking noise for gradient for years too!

  • @weylin6
    @weylin6 Před rokem +84

    Noise is also useful in sound design, with the right filters layered on you can get all kinds of ambient backgrounds, machine sounds, sci-fi devices, percussive effects, and so on.

    • @VambraceMusic
      @VambraceMusic Před rokem

      Was thinking the same. Its interesting how, in many fields, techniques overlap.

    • @0Blueaura
      @0Blueaura Před rokem +2

      @@VambraceMusic and how much simple noise gives us, its like the noise in our heads, it links our brains and machine together to shape up something out of literally nothing. Thats also how ai generated images happen to be made, out of noise into a shape.

  • @TrentSterling
    @TrentSterling Před rokem +52

    Wow. At first I thought this video would be sort of a review for me. But once we've got domain warping planet weather systems I realized holy holy this overview is ... beyond an overview! Amazing techniques at the end.
    Imagination is the limit!

  • @benjaminmiller3620
    @benjaminmiller3620 Před rokem +50

    A neat effect I've been using for my terrain gen, that could be useful for all kinds of texture synthesis, is using one noise field to distort another noise field. This creates a combined noise field that (can be) globally isotropic, but locally anisotropic. For terrain gen, it helps mimic "long" features, like terrain buckling & folding. By tuning the dominant frequency of the distorting noise, you can tune how quickly the local directionality of anisotropic features varies.

    • @simondev758
      @simondev758  Před rokem +11

      Yes, domain warping! It looks awesome!

  • @RichardTongeman
    @RichardTongeman Před rokem +30

    This sort of breakdown on core concepts is lovely to see, often as a tech artist I inherit a bunch of techniques without a grounding in how they were generated in the first place. Production quality is fantastic too!

  • @houstonhelicoptertours1006

    Straight to the point, no fluff. 👍
    I still have a weak spot for everything involving noise/procedural textures. Shout-out to Steven Worley; it was a pleasure working with you back in the 90s.

  • @alaslipknot
    @alaslipknot Před rokem +7

    Honestly am starting to be impressed by the new (?) youtube recommendation system, this channel is a hidden gem and am so glad it popped up in my Home videos!

  • @rafaelbordoni516
    @rafaelbordoni516 Před rokem +45

    Noise can also be used to procedurally generate levels on roguelikes and Minecraft/Terraria like games. It's no joke how useful it is. I made some Unity tool scripts to generate noise textures easy and quickly from inside the editor because I use them everywhere on my visuals. They're on my skybox for clouds and stars, on my fog, flames, smoke, water, swaying vegetation, literally everywhere.

  • @bitlong4669
    @bitlong4669 Před rokem +2

    That was awesome. Subscribed!. Love how you just talk in a voice like it’s no big deal meanwhile entire worlds are begging created.

  • @schwammmueri8629
    @schwammmueri8629 Před rokem +6

    Didn‘t expect to see an explanation about noise containing so many effects and uses. I‘ve learned those effects by experimenting with shadernodes in Blender, but never thought about them in a more mathematical way. Amazing video!

  • @ihave13digits
    @ihave13digits Před rokem +30

    I legitimately just made value noise based off the notions in the lerp video a week or so ago. You can get some interesting patterns with it if you jam in some crazy functions. I even made an eye model with it a few days ago, because Halloween is coming up. Great videos, they've been a helpful resource.

    • @simondev758
      @simondev758  Před rokem +1

      Neat, how did your eye end up looking?

    • @ihave13digits
      @ihave13digits Před rokem +3

      @@simondev758 along the z axis, somewhere in the uncanny valley.

  • @dbweb.creative
    @dbweb.creative Před rokem +3

    Let's welcome for today's lecture, and make some noise for SimonDev! (sorry not sorry, had to do it :D )

  • @DemsW
    @DemsW Před rokem +1

    One of my favorite videos of yours.
    Very entertaining and watchable but still technical and informative.

  • @abstractlizard9377
    @abstractlizard9377 Před rokem +1

    At 4:42 you perfectly described how mixing signals results in phase shifting.

  • @AndreaDoimo
    @AndreaDoimo Před rokem +7

    I'm using Perlin noise in these days, and this video came up, amazing.
    Really well made, congrats!

    • @orangewire5200
      @orangewire5200 Před rokem +7

      Have a look at simplex noise if you don't use it already. Less directional artifacts and performs better in higher dimensions. It's a bit harder to implement, but imho it's totally worth it.

  • @stickguy9109
    @stickguy9109 Před rokem +1

    Gawd dayum the way you explain complex topics this simply gets me every time. And the visualisations look neat. This channel is heaven

  • @bakerfx4968
    @bakerfx4968 Před rokem +2

    God damn what a pleasure it was to watch that! Keep up the good work dude, you’re 1 in a billion

  • @gummiglas5571
    @gummiglas5571 Před rokem +1

    This is so beautiful, simple and motivating, I just wanna start playing around with it right now.
    Thank you!

  • @notjerrett
    @notjerrett Před rokem +1

    This video is truly incredible. Fantastic job, Simon!

  • @KaletheQuick
    @KaletheQuick Před 8 měsíci +1

    Thank you SO much for the 'domain warping' keyword.
    So Wild that in this world magic search terms are so important. Thanks!

  • @Alexander_Grant
    @Alexander_Grant Před rokem +12

    This video me realize the similarities between the Fourier series and noise generation. I already knew both, but since I studied physics in college I had a better understanding of the Fourier series, and I definitely got an Aha! moment at 4:40. Definitely helps with my understanding of using noise.

    • @antonliakhovitch8306
      @antonliakhovitch8306 Před rokem +1

      I wonder what kind of noise patterns you could make by generating your noise in frequency space initially and then running a fourier transform on it. Fourier transforms are relatively inexpensive so I think you could get some cool stuff cheaply

  • @leeoiou7295
    @leeoiou7295 Před rokem +2

    In your previous video, I asked you to create another math video and you did. I officially love you forever. Keep up the good work!

  • @Tezla0
    @Tezla0 Před rokem +2

    This is the best explanation of gradient noise I've ever seen

  • @Test-iv4pm
    @Test-iv4pm Před rokem +1

    If I am not mistaken, this is the best video ever published.

  • @kluplau
    @kluplau Před rokem +1

    Okaaaaay - big flex here. Super nice video. You will regret not having bookmarked this for later reference.

  • @tristanwegner
    @tristanwegner Před rokem +1

    Great edutainment. I really like that you visualized so many variants!

  • @detto1998
    @detto1998 Před rokem +1

    Incredible video. Full of information and still explained in a simple way.

  • @OLIV3R_YT
    @OLIV3R_YT Před rokem +1

    Well done video! Thanks for the work you put into these!

  • @evanbarnes9984
    @evanbarnes9984 Před rokem +2

    Fascinating! I also love how this turned into a close-up view of a biblically accurate cherubim

    • @simondev758
      @simondev758  Před rokem +1

      Hah, I didn't even realize that. I was just looking to make something creepy looking when I had some time to kill on the train.

  • @SLPCaires
    @SLPCaires Před rokem +6

    I really enjoy your videos, keep em coming!

  • @fr3ddyfr3sh
    @fr3ddyfr3sh Před rokem +1

    Wow, so many high quality Infos in such a short video. Amazing

  • @tornadofay
    @tornadofay Před rokem +1

    I will save this video cause watching it once is not enough, thanks.

  • @angosalvo5734
    @angosalvo5734 Před rokem +1

    I've been using these noises for so many years and still i learnt new things today
    Thanks a lot.

  • @SilverAura
    @SilverAura Před rokem +1

    Literally 30 seconds in and I'm genuinely impressed by how insightful this video is.

  • @KccbzZ
    @KccbzZ Před rokem

    This is really cool, thanks for explaining stuff like this. Although the triptophobia eyes at the end sorta got me! Still very cool, subbed :]

  • @UnderdogDen
    @UnderdogDen Před rokem +2

    The content here is absolutely educational, thanks for the noise!

  • @TheMrLeoniasty
    @TheMrLeoniasty Před rokem +1

    Man, this is some top tier CZcams content ! Thank you so much for these great videos !

  • @jossypoo
    @jossypoo Před rokem +1

    One of the best devlog-style videos since Sebastian Lague, and presented with such a smooth style!

  • @anbagames
    @anbagames Před rokem +1

    Holy poop, what a great video. Thank you for this!
    So much value in just 9 minutes. Subbed!

  • @zkillerzjt6589
    @zkillerzjt6589 Před rokem +1

    Wow, such an amazing way of teaching, congrats, what an amazing video, i loved it a lot.

  • @elijahg1797
    @elijahg1797 Před rokem +1

    Very cool and informative. I loved this video!

  • @DiamondSane
    @DiamondSane Před rokem +2

    feel proud for understanding everything in the video

  • @SilverlyBee
    @SilverlyBee Před rokem +1

    Beautiful video and the explanation was so well done!

  • @jonlovitz5307
    @jonlovitz5307 Před rokem +5

    I'm a big fan of noise functions (from a theoretical perspective, actual practice is a bit lacking 😄) so I loved this video, and wow what awesome visualizations! Great work

  • @bradley1995
    @bradley1995 Před rokem +2

    You are a master. This is so wonderful! Would love to see some videos with some pseudo code included. Hopefully your other videos will contain just that! Cheers!

    • @simondev758
      @simondev758  Před rokem

      I probably should include a bit more in the videos, just finished a quickie code highlighter so that I can drop in chunks of code to be turned into textures and included in these.

  • @NathanHedglin
    @NathanHedglin Před rokem +1

    Woot! Friday and another solid video.

  • @DimaZheludko
    @DimaZheludko Před rokem +1

    Wow. So well packed info! Great explanation.

  • @sergiomendietaarias2333
    @sergiomendietaarias2333 Před rokem +1

    Thanks for the explanationabout noise, this was really useful.

  • @Geddy135
    @Geddy135 Před rokem +1

    this isn't exactly what I thought this video would be about but I found it immensly interesting regardless.

  • @voidboi0
    @voidboi0 Před rokem +1

    This is extremely interesting stuff. I hope to make games some day and will be coming back to your channel for sure.

  • @sney2002
    @sney2002 Před rokem +2

    Awesome as always

  • @zaneg
    @zaneg Před rokem +1

    Thanks! I have been wanting to know more about how noise works for some time.

  • @Jpres
    @Jpres Před rokem +1

    Amazing production quality

  • @dbweb.creative
    @dbweb.creative Před rokem +2

    really appreciate the work, thanks!

  • @SVGc1993
    @SVGc1993 Před rokem +1

    PRICELESS CONTENT. HIGHLY APPRECIATED. Not sorry for the caps. Again, thank you for this video!

  • @BarneyCodes
    @BarneyCodes Před rokem +3

    Great video, the explanations and graphics are fantastic. It's spooky, I literally just made a video on making 4D terrain using Perlin Noise on my channel! It's amazing how versatile some simple noise is.

    • @simondev758
      @simondev758  Před rokem +1

      Interesting, so you made the 4th dimension time basically?

    • @BarneyCodes
      @BarneyCodes Před rokem

      ​@@simondev758 Essentially yes! I'm just constantly scrolling through the fourth dimension, so I just call it time!
      I find the result really calming and satisfying to watch!

  • @linjianru
    @linjianru Před rokem +1

    an excellent video. really awesome!

  • @rhyslikesthis416
    @rhyslikesthis416 Před rokem +1

    I'm utterly hopeless at anything related to maths and programming, but I'm (unfortunately?) super interested in how it's used. You explain all these concepts in a really approachable way that almost makes me think I could use them, myself.
    I'm a graphic designer/UI artist and I use these functions in my design tools, but the program calculates it all for me. It's nice to know more about how they work!

  • @Herfinnur
    @Herfinnur Před rokem +6

    Hi SimonDev, this might sound unlikely, but I'm 42 and I've wanted to get into visual or audio related programming since forever. Everything I've watched or read seemed either too abstract (hard to see a use-case) or just uninteresting (severe ADHD makes it impossible engage if it isn't exciting, even when medicated), but this video opened it all up for me, and I surprised myself by how many use-cases I've dreamed up since watching it yesterday. It's much like what learning practical music theory concepts does for my desire to compose and perform music

    • @simondev758
      @simondev758  Před rokem +6

      That's awesome! Yeah, often this stuff is presented in super dry ways without a clear link to how it's used. I'm glad you got so much out of it.

  • @Tarodev
    @Tarodev Před rokem +1

    This was just beautiful. Well done Simon

    • @simondev758
      @simondev758  Před rokem +1

      Thanks! I think your channel is among the ones I looked at which inspired me to try to up my game on my visuals heh

    • @Tarodev
      @Tarodev Před rokem

      @@simondev758 so glad I could inspire you 😉 visualisations like these help people grasp concepts much quicker. Look forward to the next one!

  • @adrianstein954
    @adrianstein954 Před rokem +1

    Amazing video!

  • @faultboy
    @faultboy Před rokem +2

    Great video!

  • @mack7207
    @mack7207 Před rokem +2

    New title - ‘Bob from Bobs Burgers Explains VFX Noise’

  • @thelasttellurian
    @thelasttellurian Před rokem +3

    What started so simply ended up looking like a nightmare. Bravo on making pseudo-random really scary.

  • @m0scl963
    @m0scl963 Před rokem +1

    I don't code, but it's so cool to watch these things. Keep it up.

  • @blackcitadel37
    @blackcitadel37 Před rokem +1

    So nice that we starred with a great noise generation tutorial and ended with a some celular-shaped eyes nightmare fuel

  • @Andrew90046zero
    @Andrew90046zero Před rokem +11

    This is a really great introduction to procedural generation!
    I must ask, what software do you use for your 2D visualizations? Like with either the graphs, or the grids you used to show different types of noise.
    Also XD How did you do the star pattern? Was the star position's in 3d space? If it was 2d, and the stars were placed in a grid, how did you manage to pack all the tiny stars close to eachother if there was 1 star per grid tile? Well, I guess you just added more! haha.
    I've been wanting to make a video for a while talking about how some assembly math instructions are slower than others, and present a "high level" view of it for people who might never touch assembly.

    • @simondev758
      @simondev758  Před rokem +1

      The 2D visualizations are just handcrafted shaders. I explain a bit on twitter: twitter.com/iced_coffee_dev/status/1586121107941511168
      As for the star pattern, take a look at the section on Voronoi. Same idea, grid, offset each star by some hash function, use a secondary value as a "cutoff" to just ignore the star. Draw a couple layers of that with varying star sizes, and you've got yourself stars.
      Is there a reason you want to know the specific assembly math instruction times? GPU or CPU? I led optimization on a couple AAA game projects, and for most people, there was absolutely no need to know that kind of info.

  • @cazpfitl
    @cazpfitl Před rokem +1

    Simply, Thank you

  • @Ecks1118
    @Ecks1118 Před rokem +1

    Very nice video. I remember an old game made use of noise for it's textures so it would fit in a floppy. Doing so had the effect that it used alot of memory but it was indeed cool.

    • @simondev758
      @simondev758  Před rokem

      There was one that blew me away years ago, .kkrieger, that did an entire fps in 96kb

  • @gdmathguy
    @gdmathguy Před rokem +1

    holy moly this is hella cool! Could probably use it sometime but idk for what

  • @ApocDevTeam
    @ApocDevTeam Před rokem +4

    I used noise to generate detail bump maps for extremely fine grainy details for when players get up close to a 3d model. I think Minecraft also used noise for terrain generation at one point, not sure how it's handled now though.

  • @matsomo
    @matsomo Před rokem +1

    I love this channel so much ❤️

  • @Legapur9
    @Legapur9 Před rokem +1

    I thought this was going to be about audio noise, which was ironic because the audio quality was really bad - lot's of popping and stuff. However the content was good enough to keep me watching, so good job!

    • @simondev758
      @simondev758  Před rokem

      Yeah my audio needs work. I think I need to setup a better recording area.

  • @cemgecgel4284
    @cemgecgel4284 Před rokem +1

    Awsome video!

  • @Skeffles
    @Skeffles Před rokem +1

    Brilliant use of noise to create amazing effects!

  • @tomm.4447
    @tomm.4447 Před rokem +1

    you're a legend simon

  • @KnightLenny
    @KnightLenny Před rokem +1

    Amazing video.

  • @shanaur
    @shanaur Před rokem +1

    Such an amazing video, but the preview almost scared me away from watching it!

  • @centenarium
    @centenarium Před rokem +1

    I love videos like these.

  • @leochen6596
    @leochen6596 Před rokem +1

    Nice video! Really hope you can made some video about webgl texture.

  • @To-mos
    @To-mos Před rokem +1

    These videos are like GameDev forums vomited all they know in bite sized technical chunks, cannot get enough.

  • @emiel333
    @emiel333 Před rokem +1

    Cool and interesting. I’ve subscribed.

  • @moth.monster
    @moth.monster Před rokem +1

    I've always loved procedural terrain. So much fun to be had with a bit of randomness.

  • @AirKiter
    @AirKiter Před rokem +1

    This video is Great! tnks.

  • @dexio85
    @dexio85 Před rokem +1

    Nice one!

  • @neonblack211
    @neonblack211 Před rokem +3

    It's the same in the audio world... brown noise, white noise, ect ect its huge for adding harmonic content

    • @simondev758
      @simondev758  Před rokem +2

      I've often heard that, but I've never done more than scratch the surface of audio programming.

  • @Anyreck
    @Anyreck Před rokem +1

    Very interesting and helpful. Funnily enough today I was thinking " thank goodness for randomness", because if not for that, in games, simulation, or actual life itself, outcomes would be exactly as determined by the underlying "rules", i.e. banal, predictable and ultimately totally boring. Somehow, randomness gives variation, meaning and potential / opportunity

  • @demp11
    @demp11 Před rokem +1

    At first I thought like, yea Okey but after 7:00 I thought like man that's so good! So many ideas and I think I even know how you made the gas planet. It's really interesting to think about how you can use different noise to create every day thinks!

  • @salsa221
    @salsa221 Před rokem +2

    Clarity: 10
    Visuals: 10
    Content: 10
    Delivery: 10
    Bob from Bob’s burgers: 9

    • @simondev758
      @simondev758  Před rokem +1

      I find it hilarious so many people think my voice sounds like that.

  • @xanderlinhares
    @xanderlinhares Před rokem +1

    Again, my computer graphics course thanks you Simon!

  • @stmusic2164
    @stmusic2164 Před 2 měsíci

    The ONE texture all video game music also needs.

  • @isitamanaemonesia
    @isitamanaemonesia Před rokem +1

    presentation level: god

  • @0megaSapphire
    @0megaSapphire Před měsícem

    Thank you

  • @volbla
    @volbla Před rokem +1

    _"Sometimes i think that all you need in order to paint the universe is some geometry and a lot of smoothstep and noise."_
    - Inigo Quilez

  • @simonwillover4175
    @simonwillover4175 Před rokem +1

    Thanks for telling me i could do this

  • @Noe_
    @Noe_ Před rokem +1

    AMAZING!