Placeholder Image

字幕列表 影片播放

  • So this is random.

  • This is noise pearly noise that is, in the core random algorithm, the actual random algorithm itself.

  • Those numbers aren't related at all.

  • You pick, I'm picking.

  • Ran numbers between zero and 10.

  • 92761948 9 to 13 I ignite a lot, But with Pearl in noise, I might pick numbers like this.

  • 23434565456756756789876 like pearly noise.

  • Performance, art 7692 12343456 Like noise performed with parts With early noise, I might pick numbers like this.

  • 234345654 pearly noise.

  • That is Hurley noise.

  • This is Hurley noise.

  • That is early.

  • This is this is Hurley noise that is hurling.

  • So this is Hurley noise that is hurling her pearly noise.

  • That is Hurley.

  • This is Hurley noise.

  • That is Hurley.

  • This is this is Hurley noise.

  • That is her little.

  • So this is Hurley noise.

  • That is Hurley.

  • But with pearly noise, I might pick numbers like this.

  • 234345654 34 34 5 This is like a poorly noise.

  • Performance fired.

  • Good morning.

  • Hello.

  • And welcome to the coding train.

  • Live on a Wednesday where there's nothing else going on on the internet today.

  • I think people aren't watching anything.

  • They're here.

  • Who's watching videos about simplex Perlin?

  • Radiant Fractal value Wehrli noise.

  • Right, Right.

  • Hello.

  • My name is Dan Schiffman, and I at the moment I'm here every Wednesday at exactly this time it is the morning for me here in New York City.

  • Um and, um, you are here also, so thank you.

  • Thank you for watching.

  • I'm a bursting at the seams to do today.

  • It's topic on.

  • I'm gonna get to that in a second.

  • It looks like people are saying hello in the checked one thing you might have noticed.

  • I, um instead of kind of waiting till I'm completely ready to flip the switch to start life string to youto YouTube, you TOB youto utopia you to you to be twos.

  • Um, I instead, uh, start streaming with just the logo and playing some music while I'm getting ready.

  • That way, At least some things up and running.

  • We'll get the notification, take some time for people to arrive.

  • I do hope and plan to soon have that be something that's animated.

  • Maybe that says, like starting in just a couple minutes.

  • But, you know, all in good time.

  • I'm still a person whose dreams on the Internet with the camera that shuts off every 30 minutes.

  • So technical stuff, it's it's happening.

  • It's getting there.

  • I'm starting to become a professional ish person.

  • Um, So, uh, now, um, what thing?

  • I just want to say that it's really a non er and a thrill and brings me a lot of joy.

  • And happiness is how many parts of the world people are from who are watching.

  • I saw Ethiopia Iran can podia Cambodia, Thailand, India.

  • And those are just some of the countries that I saw.

  • People type in scrolling pass in the chat, and I know that there's probably some U.

  • S.

  • Viewers there that it's still in terms of the viewership.

  • When I look at the YouTube analytics, the highest number, but and anything that I could do to make the content more accessible to international community and all sorts of different communities with access to technology and Internet in different ways.

  • I would love to hear from you.

  • Maybe you're from somewhere in the world where you can't get this, But you want to.

  • Maybe there's some kind of subtitles I could do or bring on a guest or help somebody else do videos in a different language.

  • I don't know.

  • This is a thing I would love to do.

  • So it makes me uneasy.

  • France, Belgium, Poland, Belgium, Australia, Nepal, Portugal, Romania, France, Germany Brook area.

  • Amazing.

  • Amazing Turkey, Russia, Pakistan, Belgium, Israel hungry Egypt, Kerala, Netherlands, Poland, Bangladesh.

  • Okay, I've stopped reading this.

  • It's just too.

  • It's too thrilling and wonderful.

  • So, um, let me talk.

  • Let me make a few announcements.

  • First.

  • I'm gonna open up my browser.

  • The spoiler alert.

  • I'm gonna talk about that.

  • The coating train website.

  • Let me yet again highlight the fact that there is this website on what?

  • One of the primary things about the coding train website.

  • It is a place for you to share things that you have made based on videos that I put out which the YouTube comments system isn't particularly great.

  • I mean, there's trying to think of the good qualities about the YouTube commenting system.

  • Well, they have a little heart, but I get to press a heart.

  • But I like that.

  • I'm trying to think of other things anyway.

  • So if I go here to, for example, my most recent Perlin and when I say Perlin for every single video I have ever made up until today, please just insert a footnote, a parentheses, apparent medical, a subscript a superscript.

  • Please insert the year 1983 0 1983 I was a young 10 year old boy in Baltimore, Maryland, innocent of what would happen in the future to me not realizing that I would spend my life blowing into a wood device that when air goes through it and then comes out, makes a whistling tune.

  • Anyway, um, this particular pearl annoys algorithm is an algorithm that dates back to 1983.

  • And today, where we are entering the future, we are entering the two thousand's the 21st century.

  • We're gonna hit 2001 in this video, baby and talk about simplex noise.

  • Anyway, I was saying something.

  • All right, the point of me showing you the web site is this is a place for any challenge.

  • And let's go to this one.

  • Pearl annoys loops and go to to the challenge.

  • I'm here.

  • You can find the various links of things that I talk about in the video.

  • You can find other related parts that are related to this challenge.

  • Other videos.

  • But here's what I want to highlight the community contributions.

  • And currently the system for submitting your community contribution requires a pole request on get Hub.

  • This might not be a thing you're familiar with our comfortable on how to do.

  • But guess what coding trade community is.

  • Make your first full of Crestor.

  • Get up.

  • If you can't do anything wrong, you can't break anything.

  • You can't do it the wrong way.

  • We will help you.

  • Um, and so there's only one contribution right now from Carlos Pontes.

  • Source code here, Let's click on the project and take a look at it.

  • Ooh, there's controls.

  • There's a horn.

  • You look at that.

  • Oh, look at that.

  • This is beautiful X y z.

  • I could put the access E X axes.

  • The access E is the axes.

  • There you can make it not rotate.

  • This is beautiful.

  • Um, And by the way, I did look at this before I started live streaming.

  • And this is need with the p five jazz Web jail renderers blows my mind.

  • That's really awesome.

  • Thank you for this submission.

  • So I encourage you to submit your ideas to hear.

  • Um there was something.

  • 01 thing I would love.

  • Just as a little note, A little tidbit.

  • You'll make me so happy if you do it this way.

  • And maybe it should be more explicit in the guidelines.

  • But if I go here into, like, the pull requests, uh, look, there's one.

  • There's another one right here also by J.

  • C.

  • Pontes.

  • If I click on it and there's a comment here, what I would love, even though the U.

  • R L to this particular project is in the actual files that were changed in the pool request, we can see it here for me to look at it.

  • I have to go in here and then do this and it copy.

  • It would be so nice if you could just put the girl to the project.

  • Also in the comments you put here.

  • So it's really easy to click on and see to make sure it isn't some that's not appropriate.

  • Or there's a mistake that you're always broke in.

  • That type of thing helps Just check it.

  • And I just love looking at them.

  • So that would be That would be wonderful.

  • Little that would just bring me a little sparkle sparkle into my day to have that.

  • Um okay, what else did I want to talk about?

  • Announcement wise?

  • Ah, yes.

  • Google Summer of code.

  • So again, I'm not an official representative of Google.

  • Summer of Code.

  • I don't work for Google.

  • I don't, um I'm not.

  • I'm not an organizer of Google's number of code, but I want to highlight this because I do participate in Google Summer of Code.

  • And it is an excellent program for any of you watching who might be excellent opportunity for any of you watching our students who might like to get involved in open source and get paid to do so.

  • So if you are again, you should really double check the eligibility requirements from Google's official materials.

  • But for my understanding, if you are a current university or graduate student, even if you're graduating this year, you are eligible to apply for Google Summer of Code.

  • You can find all of the different organ mentoring organizations here up.

  • You know, we can look through them.

  • There's some that I'm a little bit familiar with or some that I'm quite intimately familiar with.

  • And if I keep scrolling down and eventually get to the peas up there we go The processing foundation.

  • So the processing foundation is here.

  • I'm gonna click on this.

  • You can click to learn Maur.

  • Anyway, I will come back to this another time.

  • I don't think that deadline is for quite a while if people have questions, but I would encourage you to apply Processing foundation I is the particular open source organization that I participate with for Google Summer of Code.

  • I didn't notice, which was kind of exciting to me that 10 sir, flow is on here on I didn't check.

  • Should have been a check as soon as I saw it live streaming on and check this if the tensorflow dot Js is part of what they're looking for, contributions in for Google Summer of Code.

  • But that's certainly a project that I have some passing familiarity with that I might encourage you to apply also, oh, clips, clips, clips, clips I need like a love I need, like a love sound effect for when I have love for something.

  • I used to spend a lot of time programming an eclipse.

  • I even saw Eclipse passed by on a YouTube video the other day that I was watching.

  • We were about that later, and I've been trying to find a time to do some stuff about Eclipse on this channel.

  • The coating train ho Oh, that would that would be nice.

  • And I haven't thought of it.

  • I thought, Pound a reason to do so.

  • The thing that I've been wanting to do is actually show the steps to make a processing library, a processing job, a library.

  • You know, this might have been more relevant, more timely.

  • I've gotten around to it a year ago, two years ago, five years ago, 10 years ago.

  • But I still think it has value today, Um, and in particular, if you're learning about programming and Java, if you want to understand more about contributing to processing itself is good timing with Google Summer of code coming up.

  • So I think what I would like to do, and I don't think I'll get to this today.

  • But I would like to turn the simplex noise open simplex noise algorithm by Kurt Spencer that I'm gonna look at into a processing library.

  • And I could do that in a video, and then we could make a JavaScript library.

  • Think there might already be a job script implementation of Kurt Spencer's code off to look into that.

  • But that's something that I am interested in.

  • Wolfgang.

  • Hey, everybody, Wolfgang Amadeus Mozart is here.

  • I thought I had some Mozart music.

  • No, I have some Beethoven here anyway, um, Wolfgang Amadeus Mozart asks.

  • Do you prefer javascript or Java?

  • I love them both equally.

  • It's like asking me to pick between my Children.

  • Some days I like one more than the other.

  • Some things one is complaining War.

  • The other one's complaining where the next day, some days one of them wants to give me a big hug.

  • The other one doesn't.

  • But then the next day the other one does.

  • The other one does it.

  • Not that they should be required to give me hugs.

  • Whatever.

  • I don't know what I'm talking about anymore, but no I will not tell you which one I prefer.

  • I looked all programming languages, and they're all nice.

  • And they all have their good points and they're bad points.

  • And people can some people like these and some people like these to me, any all the different paths for getting started in making stuff and expressing yourself on finding the joy and computing is a nice thing.

  • Uh, all right.

  • Mmm.

  • What is this Java Paolo Lennox found?

  • Ooh ah Prosit Foundation.

  • I need a thing for a thing.

  • Someone give me some kind of.

  • All right, so that is that.

  • Let me close this out.

  • Oh, now we're to the topic.

  • So here's what's happening today.

  • First of all, what's again mention I have Ah, whatever.

  • The equivalent of writer's block is for what it is that I do.

  • I have that Maybe you could help get me out of this YouTubers block I threw.

  • Ah, learning incentive grant from Google from YouTube.

  • I am working on creating a new playlist which is entitled Working with Data and AP Eyes in Javascript.

  • I've mentioned this before.

  • I do have some videos that I have made previously on this topic but they're mostly out of date, and it could use a little refreshing.

  • Plus, there's a lot of stuff I didn't get to.

  • So I need to start doing this.

  • I have to finish this playlist.

  • My deadline is late April, early May, and so I want to get started on this.

  • And so next Wednesday, come lower high water.

  • I think it would help.

  • I don't swear on my channel if you noticed that cursor cuss or whatever word you want to use, Like, I secretly just like a little goody two shoes I had I had my wild period, my rumspringa.

  • But, um What what is going on today?

  • What?

  • What did you put it here?

  • Cafe chain that will remain nameless because you're not actually sponsoring me.

  • But you could I'm looking at you long J.

  • Well, okay.

  • Anyway, I was staying something.

  • Um, I have to finish this.

  • Oh, so come hell or high water?

  • That's what I was trying to say, but I felt weird.

  • Hell, that's not really, uh I'm gonna do this next week, so please, please help me out here.

  • Give me your ideas.

  • Contribute to this.

  • Hopefully they'll be.

  • I'm taking a train ride on Friday and hoping to work on this thing.

  • Is the audio gone?

  • Uh, all right.

  • Uh, sounds really low right now.

  • Okay, let me thank you for letting me know there's Mike issues.

  • Let me see what could have caused that test test.

  • That's weird.

  • Test test.

  • All right, I hear I've got it.

  • Everybody can hear me anymore, all right?

  • Okay.

  • No, um, I'm aware of the sound problem.

  • Does this work?

  • It's okay.

  • Sound back nearly.

  • Don't have slow hood on the chat.

  • We'll just let it fly.

  • Let it go.

  • Live on the edge.

  • Let your freak flag fly.

  • No, don't, Don't, Don't nobody fly.

  • Any freak flags in the chat?

  • Keep everything on the level, please.

  • All right, so that's that.

  • So today I have an obsession.

  • My obsession is with noise out rhythms.

  • I have a new secondary obsession.

  • You have seen me spend all my time on this for the last two weeks.

  • There's got to be a stopping point at some point.

  • There probably is no stopping point.

  • Um, now the mike.

  • Okay.

  • All right.

  • Let's restart the system.

  • All right.

  • Back your music playing, Please let me know.

  • I checked.

  • I've checked a whole bunch of things, and everything is working as hard as I could tell.

  • People are asking if the issue might have been way here.

  • You okay?

  • Great.

  • So the reason why I don't think the issue is the mic is because you couldn't hear the music, either In the music and the mic are completely separate audio inputs, that air coming in in different ways.

  • So if they're both, you're not hearing either.

  • Then it's got on, uh, somewhere her between the computer.

  • And so I just have to mute something real quick.

  • All right.

  • Um, okay.

  • I was doing so well.

  • I had momentum.

  • I had energy after sleepy.

  • Now, what time is it?

  • Oh, good.

  • It's almost like it started coding by half an hour in That's a good thing.

  • So, um, it's the mike.

  • Wait, hold on.

  • Audio.

  • Gone.

  • But music on.

  • Oh, no.

  • You could hear the music.

  • Fine.

  • Oh, okay.

  • Okay.

  • It is the mike.

  • Let me.

  • I got it.

  • Test test.

  • I hear myself in the monitor.

  • Ah, boy.

  • All right.

  • The good news is I have another mike.

  • Let's check the cable.

  • I'm gonna mute the mike because I don't want any, like, popping sounds to come up.

  • I'm just gonna play with the cables for a second.

  • Okay.

  • Um all right.

  • Let's see if the mike is back.

  • The weird thing is, I don't see the level change in the monitor that shows me like a little green bouncing bar.

  • All right, so right now you can hear me.

  • Um, I did switch out the batteries I unplugged and plug in the cables.

  • Let's see if that fixes it.

  • If not, the good news is I do have a second mike, but it'll take me a little bit of time to do that.

  • So let me put this through my sweater on dhe, see if it works.

  • Now, Hopefully, the music doesn't, like, mess it up, so it is clipped to me now, um, and hopefully we're okay.

  • Everybody's seems to say it's good.

  • All right, All right.

  • So hopefully this is going to, uh, work.

  • Let's play a little music to make sure that that's not causing a problem.

  • Yeah, I'm gonna say once again.

  • Okay.

  • All right.

  • Here we go.

  • Now, let me go back to what I was saying before I had all the different Mike audio shenanigan problems.

  • I have an obsession.

  • Perla noise.

  • I have done a lot of videos about Perla noise.

  • I have done a lot of videos.

  • You know what?

  • Let me just get started with the actual coding challenge, because I'm gonna explain everything that I'm going to do, and then I'm gonna end up explaining it again.

  • So I have this open?

  • Yes.

  • And then, um all right, that's good enough.

  • Okay.

  • All right.

  • All right.

  • Uh, here we go.

  • Um, Simon, I see that you're asked me.

  • Did you see my long message?

  • It's not possible for me to read long messages during the live stream, so I will check it out later.

  • Thank you very much.

  • Okay.

  • Uh, here we go.

  • This will be coding challenge 1 37 open simplex noise.

  • Although I'm not, I have to think about how to title this because to be clear, what I'm going to do in this video is not implement open simplex noise.

  • I'm going to use a particular implementation of open simplex noise in a processing sketch.

  • So if it says coding challenge open simplex noise, somebody might think that means I'm implementing it.

  • which I will not be doing.

  • All right.

  • I'm just checking the chat to make sure the, uh um that to make sure.

  • No one's saying there's an audio problem.

  • And Paul says hello from Brooklyn.

  • Hey, I live in Brooklyn.

  • I'm not in Brooklyn right now, but that's where I live.

  • Okay?

  • Hello.

  • Now, this video has been a long time coming because let me tell you something.

  • I've been living in the past.

  • I've been living in 1983 my whole life.

  • I mean, I didn't live in 1983 for 10 years of my life.

  • Then I actually lived in 1983 and then the years went going.

  • But But since then, or at least for the recent times, those making these coating train videos about the noise I was living in 19 3 83 along.

  • And I sort of knew that, but I never really bothered to look into it.

  • Didn't want to know.

  • I didn't want to know about what's happened since 19.

  • I am going to update my life right now and your life too, to the year 2001.

  • And actually more like the year 2014 and all the way to the present, because today I'm going to unpack what it means that it's the best of my ability.

  • What what is the difference between the original Perlin noise implementation from 1983 something that came out in 2001 which is an updated version of Pearl and noise called Simplex noise by Ken Perlin himself and some open source implementations that have been made more recently?

  • I'm notably by Kurt Spencer called Open simplex Noise.

  • So a lot of stuff to the discovery of this video will be approximately 71 hours and 32 minutes long.

  • I hope you enjoy it now.

  • I will be prepared to begin speaking.

  • Let's go travel back in time to 1983.

  • What happened in 1983?

  • No, I want to know the year 1983.

  • Whoa, let's travel back to Let's travel back to the year 1983 0 it was a simpler time when Jim Henson's Fraggle Rock launched and uh, there's the bad stuff happened.

  • So let's not look, I don't want to know what happened.

  • No way.

  • What?

  • One page of my own.

  • All right, let me get to the point here.

  • 1983.

  • The original Perlin noise, a type of what's known as Grady Int noise, was developed by Can Pearl in the 1983 Can Perlin won an Academy Award for this work.

  • It is the the algorithm that Can Perlin, invented in 1983 forms the basis for the source code, the implementation that's in processing itself.

  • In all these videos I've made about Perla noise, um, where I the place where I learned to understand how Perla noise it works and how it's created was this webpage, which is no longer online.

  • But I found it through Web archive Perla Noise by Hugo Elias, and you might have remembered you go Elias from The problem is, when I look over here now, toe, look at myself and what I'm pointing thio.

  • I see the chat, and then I see weird stuff happening in the chat to distract.

  • Yeah, this page by Hugo Alliance.

  • This is where I learned and first understood how the pearl annoys algorithm works.

  • Why it's this kind of radiant noise.

  • What this concept of octaves of octaves is the idea of waves and amplitude and frequency.

  • So I would encourage you to check out this article and look at it and think about it.

  • I'm gonna start the whole thing over.

  • I'll just start over from where I'm on the Hugo Elias page because I It's bad for me to stop because it's good for me to just keep going, Okay?

  • Where I first learned about how the prelim noise algorithm actually worked was from an article written by Hugo Elias that Paige is no longer on the Internet, but you can find it through web dot archive dot or GE.

  • This is a wonderful introduction.

  • Noise functions, talks about random sampling interpolation, uh, amplitude and frequency octaves and looks at this kind of Grady in smoothing process that happens to create Perla noise and explains why you get these sort of patterns on how this stuff works.

  • There's actually even invitation, so But I'm not gonna go through this today.

  • I will point you to the idea of radiant noise.

  • This is a key idea because the idea of pearl in noise is too smooth.

  • Grady INTs in.

  • Perhaps what?

  • Well, let's say we're considering a two dimensional space to smooth radiance within a two dimensional space squares on a grid.

  • This is how we usually think of a to D space.

  • The reason why I'm highlighting this is because this idea of how this space is oriented the geometry of the space is the key distinction between classic classic Perla noise and simplex noise.

  • It will come back to that next stop on my Wikipedia tour is the major simplex noise.

  • So simplex noise is an algorithm for constructing n dimensional noise.

  • It's comparable to Perla noise created by Ken Berlin himself.

  • But the key element here is fewer directional artifact.

  • So what do I mean by directional artifacts?

  • Maybe you've noticed this in some of the videos that I've done before.

  • Let me pull up this processing sketch.

  • Look at this.

  • Doesn't feel like it has this.

  • This is too.

  • I'm visualizing two dimensional noise using 1/3 dimension of noise, A slices of animation.

  • Do you feel this like kind of bouncing like it's kind of like herky jerky, classic Perla noises kind of herky jerky kind of gets to a point of stops.

  • It bounces that the sort of visual quality of a directional artifact.

  • It doesn't feel smoothly continuous over long periods of time.

  • And so this is really the innovation of simplex noise.

  • Now the innovation has to do with simplistic geometry, which is really and this is actually in an article that I'll refer to, but a simplex grid looks like this.

  • So the core innovation is the idea that instead of smoothing the noise, calculating these Grady in over a square rectangular grid, a tiled system of equal lateral triangles and there's lots of variations of this and this also generalizes to multiple dimensions and simply can't say that word.

  • But it's inflected geometry, which maybe would be a topic for another day to visualize some of the stuff in higher dimensions.

  • But this is the core innovation.

  • I couldn't possibly begin to say that I understand exactly how all of the pieces of the algorithm works and how this smooth this out smooths out those directional artifacts.

  • But I do want oh, hi, like the work of I lost the page here, but, um oh yeah, here of Stefan Gustafsson, who was computer graphics researcher, in particular, the page of documents on simplex noise and this Pdf which will screw all the way back to the top called simplex noise de mystified.

  • So I read this on the subway home last night and on the subway to work this morning.

  • Um and so I have some picture in my mind of how this works.

  • I probably need to read it about 73 times the court.

  • But this'll give you much more background into the difference between classic noise, which there's a nice on.

  • You can see here these this idea of these Grady INTs and sim simplex noise and how the tiling system works in multiple measures to encourage you to check that out.

  • Now, one of the oddities about simplex noise is that there is a patent for it.

  • This, if I'm correct, is the patent patent.

  • US 6867776 B two inventor Kenneth Perlin.

  • You could download the pdf.

  • This was filed in 2001 at the time of the invention of simplex noise.

  • On theirs is an apparatus or generating image.

  • The apparatus includes a computer or the apparatus includes a display connected to the computer upon which images from the computer appear.

  • I will stop now doing my dramatic reading of this and so to me, I'm not a lawyer.

  • I'm not an expert on this, but it's unclear to me what it would mean to use the literal version of the simplex noise algorithm, which is described in great detail here in the patent in, say, a processing library of crossing, sketching, open source environment.

  • So there is, fortunately a post that was on reddit that I found from four years ago from dot whoops.

  • Sorry dot We find the user name k dot jpeg, which is of a post about this new version of what's called open simplex noise.

  • So this algorithm is very similar.

  • It's it's highly correlated and relates to the Ken Perlin simplex noise.

  • But there are some key differences and this code for this algorithm is published here on k dot j pegs get hub.

  • Just open simplex noise dot Java job and which means I could use this and prosecutions java.

  • And if you scroll down first, you could look and be like, Whoa, you gotta love anything that has a variable name Squish constant three D, that is a beautiful variable name.

  • But I want what I want to do is highlight Down here I looked, I looked it looked, uh, keep going.

  • There's a lot of code.

  • There's a lot of good Oh, my God.

  • Girls, girls, girls up test.

  • And then here, uh, this is free uncovered software released into the public domain.

  • So I believe this is something that I can use, and I'm going to use it in the context of this video.

  • Boy, that was a lot of explanation.

  • So what does this mean?

  • I wouldn't do another video after this one, Which is I just find every single piece of code I ever wrote.

  • Music be processing pearl annoys function and try to do it again with open simplex noise.

  • But I wouldn't do that just for one thing right now.

  • One thing that I'm gonna do a coding challenge with it.

  • Maybe this isn't a coding.

  • I don't know what we'll see.

  • This might get divided into two videos.

  • I'm thinking now, let me go here Raw.

  • Let me do a vice big copy paste.

  • I'm gonna go to process because processing this is the sketch.

  • When it whips.

  • I want to change this particular sketch from Perlin Classic Pearl in 1983.

  • Noise the noise function in the processing library, a k a.

  • Grady.

  • It noise.

  • There's that there is also some called value noise.

  • There's all these fine distinctions between them, but anyway, it's easy to get confused, and somebody will write a nice 16 comment that I will pin to this page.

  • That is, it's all explained perfectly.

  • I'm sure, Um, I want change this to use open simplex noise, and I want to examine and look at the difference in quality.

  • And by the way, what does it mean?

  • What do I mean when I say quality?

  • So first of all, let's go.

  • Let's even Let's take a like a dive into this a little bit further.

  • Let's go to processing dot org's slash reference.

  • Let's search on this page for noise.

  • I'm gonna click here, and I'm gonna go down and there's a I'm gonna re I'm not going to release you this whole description.

  • But I would go down here and I'm going to say I'm gonna read this part.

  • There have been debates over the accuracy of the implementation of noise in processing for clarification.

  • It's an implementation of a classic Perla noise from 1983 and not the newer simplex noise method from 2000 and one.

  • So why not?

  • I mean processing, by the way, was invented.

  • It started by Casey Recent Ben Fry's A Project in 2000.

  • Run one at the same time.

  • Why not update the version of Pearl a noise that's in the library?

  • So I think you could make a good case for you could make an argument for both cases.

  • But there there is a different quality to the values, and there is now historically years and years of people making artworks, visual artworks and projects based on the quality of the Perlin noise, the noise function in processing.

  • Just say noise.

  • I'm just gonna say noise or now.

  • And if if it were to be updated, those projects would suddenly maybe not look the way they were intended, not look as beautiful, not look as compelling, not not be as visually distinctive, because it's not that one is better than the other.

  • I mean, there are reasons why you can say simplex noises, an improvement, those artifacts and the smoothness and computational complexity.

  • Those types, those are things that have changed and our updated that are better in, according to a lot of different kinds of metrics.

  • But it would make much more sense to have a separate library that you could use with processing to get open simplex in ways you couldn't make the case.

  • And there isn't get up issued discussion about this.

  • You could make the case that it might make sense to add to processing something called noise mode, in which case you could put in here and when they would what the terminology would be that would put in 1983.

  • Put a year now.

  • But you could put in maybe Grady int Perlin simplex value.

  • You could have worldly noise in my research.

  • There's look up something called whirly w O r l e y.

  • I want to really implement that noise.

  • It looks really cool.

  • So that could be something that you could do.

  • I would say a good test case to see if this makes sense to add to the processing FBI, which is gonna make it as a library first where you could pick your different noise mode, but on Dhe, then, if everybody in the world is suddenly using it and create so much opportunity and possibilities, maybe then it would make sense to fold into court.

  • At least be my point of view.

  • I'm not speaking as an official representative of processing.

  • I'm just telling you my take on this.

  • All right, now.

  • So let's let's see the difference.

  • Let's see the difference.

  • This thing moment being living in the year 2000 won in 2019 has really changed my life.

  • Uh, people tell me in the common to stop giggling.

  • Oh, well, I can't a new tab.

  • So wait, let me do save as let me save this on the desktop here.

  • Save weighs three.

  • Okay, So what?

  • I think because processing is built on top of java, I can, actually I'm gonna create a tab.

  • I'm gonna call it open simplex noise.

  • I'm going to paste in all that code and this code because it is written as a standalone Java class will work.

  • Just have the box right like this with no changes in processing.

  • It's really amazing.

  • I could even if I wanted to have named the tab open simplex noise dot Java, And sometimes this is necessary.

  • If there's certain features of java that the process I d won't understand.

  • But in this case, it's not necessary.

  • And I should say again, thank you to a t n Jakob for for showing me this and giving me lots of advice and help.

  • I mentioned that Ian's working several videos so far, but Okay, so now we're going to change this over.

  • The first thing that I'm gonna do is I am going to create an object called open simplex noise.

  • Just call it noise.

  • I'm gonna say noise equals a new open simplex noise object.

  • And I'm just gonna run this to make sure I'm not getting any errors.

  • I am getting errors.

  • Uh, weird.

  • Amusingly, I did this yesterday.

  • It's where he did this yesterday.

  • Just a test, and they didn't have to make any changes.

  • But this is one of those things You can't have static functions in a class inside, processing us to do with things being internal classes.

  • Yada, yada, yada.

  • So what I'm gonna do?

  • Let's try renaming this to open simplex noise dot Java.

  • I think that will fix that issue.

  • Great.

  • So no errors.

  • And maybe that's what I did before.

  • I just didn't notice.

  • It's running now.

  • It's running the current noise algorithm, the noise function impressed.

  • Now we're getting getting close.

  • What I'm going to do now is just change this and I'm gonna comment this out and I'm going to say, um actually, let me just do so.

  • I'm gonna I'm gonna show you something.

  • It's kind of interesting comment this out.

  • I'm gonna put this in.

  • And instead, what I'm gonna do is I'm now going to say noise dot evil.

  • So that noise object has an e val function.

  • The evil function takes one.

  • Val, I don't know if that if it's supporting one dimensional noise, but we can talk about how you can get that you just fix the second dimension.

  • But then I give it the arguments for three D noise ex offset while set and see offset.

  • And I'm now using the library's noise function instead of the built in noise function.

  • Let's run this get errors cannot convert from a double toe afloat.

  • So this is a little bit of funny business that we're stuck with here.

  • And this is what if I'm turning into a process library would clean this up.

  • Processing in its, uh, simplification of Java has basically ignored the existence of the data.

  • The data type, Double double is a floating point.

  • It's not a floating point.

  • A decimal number that you connect that is more memory, more accuracy Maur digits than just floating point.

  • And so here, what I need to do is do something like that.

  • Well, I need to convert, which is called casting what comes out of the evil function as a float.

  • And then look at this now, Interestingly, this looks so different now there's a couple reasons why this looks different.

  • One is Look at those.

  • Look at those.

  • I don't see a single directional artifact in there.

  • Do you see any directional artifact?

  • There are no discernible direction.

  • Look at this.

  • Just like flowing smooth, noisy transition.

  • Okay, now, but it looks kind of weird.

  • And one of the reasons that it looks weird is that the noise functions are generally designed to give you a number between negative one and one.

  • The mean being zero processing is implementation gives you a value between zero and one as a sort of convenience.

  • But so this multiplying by 2 55 This is why we see these vast areas of the color black because any noise value that's less than zero gets reduced to black.

  • Which is kind of interesting to note now what I can do here.

  • And I should really take out the third dimension to demonstrate this.

  • But so if I change this to float N and then I say float bright equals map and which goes between negative 11 to 0 to 55 now.

  • Whoa, That's not what I meant to happen.

  • But that is cool.

  • Whoa.

  • What era did I make hold on.

  • So weird.

  • What am I doing that I did differently than yesterday?

  • What numbers am I getting?

  • Oh, uh, whoops.

  • I forgot.

  • That's kind of cool, by the way, that this by accident and I should not be having this print line thing here.

  • Okay, Uh, this is actually a really nice by accidental effect.

  • I kind of love that.

  • I got this, but I forgot that I had previously multiplied by 55 year so that I need to take out.

  • I'm sure the chat is yelling at me about that.

  • There we go.

  • This looks lips.

  • This looks more like what?

  • You what we originally started with.

  • It's a different noise algorithm.

  • I'm visualizing it in a very literal fashion in a two dimensional space.

  • Um, and there you go.

  • Now there's lots of ways we could alter the quality of what we're getting.

  • I mean, one thing would be this increments Value is really playing a big role in and Z incriminate values playing a big role in the quality of what we're seeing.

  • Like, for example, let me make increment 10.1, like, suddenly look, that's what the noise looks like.

  • This'll is really nice.

  • Oh, I love this.

  • And then, you know, I could z increment.

  • You know, if I made that really fast, then you're just seeing it sort of like changing really fast and that that now it has a lot more sort of chaos, chaotic randomness to it.

  • But only this is a nice a dent in.

  • Now the quality of this has such a sort of like smooth and graceful visual quality, even that moving beyond, uh, just this very plane visual representation.

  • They're enormous possibilities.

  • And I would refer you to the work.

  • Let me just refer you to the work of a Tian Jakob who, uh, makes all these amazing gift loops using open simplex noise and a variety of techniques, all described in his blood.

  • So now this.

  • Thus, this ends this video, which I don't think was a coding challenge at all.

  • Just explaining a little bit about the background of difference between the different noise algorithms.

  • And I will now do a video where I attempt to loop.

  • I would do a coding challenge where I am going to two more things.

  • I mean, one cutting challenge where I attempt to do a two dimensional noise loop using four dimensions.

  • I'll explain what that means in a second on.

  • Then I think I also want to do I'm going to like a speed video.

  • I just take every single thing I ever made with boys.

  • I'm just not gonna be everything.

  • Uh, coding challenge is wise and, like, changed over open simplex noise.

  • All right, see you in those videos.

  • Look, Simon is now giving a message in the coding challenge.

  • You picked a random between 1 1000 and one in a 1,000,000 uh, to use to give you the maximum number of job we can use integer dot max value and interred.

  • You're not men value.

  • Thank you.

  • Okay.

  • Um Okay.

  • Um Whoa!

  • This is what I want to do.

  • Look at that.

  • That is so cool.

  • Whoa, look at that.

  • We got these air, like, ridiculously amazing use.

  • I love these.

  • Oh, my God.

  • Work that.

  • That's why it's okay.

  • All right?

  • So, first of all, I'm just curious.

  • Does anybody that that was my take on Perlin noise simplex noise?

  • A little bit about that history of those things.

  • Does anyone have a, um does anyone I want to point out any significant corrections or things that you might know about?

  • Um, And now close all of this and I'm trying to think, Yeah.

  • Yes.

  • Instead of changing a spectral piano, rights isn't really good.

  • Instead of changing the place where you loop in the noise space, you could make a noise object with different seeds.

  • Yes, that's what I was thinking of doing.

  • Let's look at Does this take a see?

  • That's what I don't remember.

  • So there is?

  • Oh, yeah, it does a seed.

  • So they think this is what I'm gonna d'oh.

  • Instead of doing different spaces, I'm going to do a take a seed to a coding challenge.

  • We reproduce one of those animations flocking patterns But, um, by this kind of noise, Yeah.

  • So this is what I'm gonna do now, Um, I just need to figure out what my demonstration is going to be.

  • I mean, I think I'll do something simple.

  • I mean, one thing I could do is just to a grid like the flow field thing.

  • So let me let me open up.

  • What?

  • I'm what I'm thinking of doing.

  • So I have this example in nature of code book under agents.

  • Ah, flow field three D noise.

  • Yeah, it's basically Let me, um let me take out the vehicles will show you what I mean.

  • Oops.

  • And I don't need this text.

  • So this would be an easy thing for me to do.

  • Not mean easy.

  • This would be a good starting point.

  • Like I couldn't make this loop.

  • This is noise.

  • Open simplex noise in two dimensional space.

  • And I could use I could use a four dimensional space toe loop, toe loop, the two dimensional space it sounds.

  • We're gonna try to explain that, but I don't know it was this visually interesting enough.

  • Another thing I could do it.

  • I could just put a bunch of these in, like, random spots.

  • I could go back and do the landscape, but I already have that terrain generator.

  • Let's find that code.

  • Um, let's find that code terrain generation Shiffman noise.

  • So if I go to here and then I do download code, let's download the processing version.

  • Um, and open this up like I have this.

  • And so I really like to add the simplex noise to this and see what happens.

  • But this is a much more complex example.

  • I feel like this is a second part.

  • Let me do the 1st 1 Let me do the both.

  • I think I want to explain the stuff with a simpler case and then do terrain as a separate case because I already have built the terrain and I can do the other one from scratch.

  • Everyone said, Do this.

  • Do this.

  • This is better.

  • I'm gonna do this in two D first to explain it.

  • I will come back to this.

  • Okay.

  • Terrain on a sphere.

  • Oh, that's a great idea.

  • Uh huh.

  • Not ready for that right now.

  • Okay, let me cycle the cameras.

  • I really, really want to cover E s six inheritance because it's a topic that I use in a lot of my programming classes here at N Y.

  • U.

  • And, um and, um, it's a topic.

  • I using a lot of my programming classes here at N Y.

  • U.

  • And I would like to have some video tutorials to refer people to.

  • Okay.

  • All right.

  • Okay.

  • All right.

  • So let me put this away.

  • All right?

  • So let me just what?

  • I'm gonna d'oh close this.

  • Um okay, I'm gonna actually just start with this is the base code.

  • Um, all right, it's a bomb.

  • Stump rights.

  • You have read up on Perlin, simplex, Grady and noise, and yet still call the process noise function.

  • Perlin, it's a hard habit to break.

  • I know people get very bent out of shape about the particular distinctions between these noise functions, and I would

So this is random.

字幕與單字

單字即點即查 點擊單字可以查詢單字解釋

B1 中級

直播#170:4D OpenSimplexNoise循環和ES6繼承性 (Live Stream #170: 4D OpenSimplexNoise Loops and ES6 Inheritance)

  • 0 0
    林宜悉 發佈於 2021 年 01 月 14 日
影片單字