Freya, the rare true Rockstar. The integration of Art, Code, and Math each enabling a richer understanding and utilization of each other. Reminiscent of Gödel, Escher, Bach. You may find this presentation moving!
Had no idea about remap. I was trying to build up some calculation from scratch to figure out how to lerp between 3 different gradients over time in a shader. I was losing my mind trying to see how I could keep one gradient up longer than the others. This helped me so much.
I took a picture of that as well, yes using my phone right from the laptop screen... And Remaper made my whole day.... I am so happy for it.... Thank you!!!
Awesomly simple explanation of complexy looking math functions. Opens up so many possibilities and scope for creativity, also Thanks for uploading this video
Using lerp as a way to overlay texture is so simple and yet elegant! I never thought of that (even though I'm guessing it's already being used for that purpose everywhere anyway -- painter's algorithm being less efficient)
this was such an awesome description of lerp and inverse lerp! It really helped solidify my understanding of them, and I've already found several use cases in my game that I have easily been able to accomplish! listened twice - understood lerp. listened three times - understood inverse lerp. listened four times - understood remap.
I struggle with the mapping issue she mentioned on a regular basis. I have to remap things all the time. I didn't know there was an inverse lerp function, and this will save me countless hours in the future
If I understand things correctly it's just the _map_ function that's provided in the Arduino framework. I've found this function so useful that I started using it in non-Arduino projects as well.
Mathematics is the tool of all Engineering Sciences and Technology, it is awesome that we have 'computers' today with the use of programming we can create graphics and animation in colors: visualization, and to computer games. Engineering design is the most indispensable tool for use of this. Thank You for educating us.
In blender there is the "map range" function which is just a generalised version of lerp and iv lerp. It takes input range minimum and maximun, output range minimum maximum and the value as inputs and outputs the remapped value. For a normal lerp the input bounds are just 0 and 1. And it also does extrapolation aswell but this can be turned off if not desired.
Looking at the points and vectors you have to make a bezier curve are the same kind of ideas that Tony Derose talks about used in the development of the Toy Story movies with the Catmull-Clark equations. He gave a TedTalk in 2013 using a SubDiv program making curves into full circles for 3D geometry used in Pixar just by splitting the midpoints.
The problem with Bernstein Polynomials and Bezier constructions that no one explains clearly how they where formed or derived in great detail. These are engineering drawing mechanical techniques that where rediscovered by computer scientists. It's amazing that forgotten techniques are being rediscovered again like the quaternions studied by Hamilton.
Freya Holmer : Game Devs :: Felicia Day : Nerdcore They both do a fantastic job engaging with their communites, and emit such a positive vibe. Freya has so much educational content on her channel though, she's probably become Big(O) in the function that determines my interest in math.
Unrelated but adjacent, I'm interested in whether the 3D fractal program, Mandelbulb 3D can be sped up. Apparently the fractal generators on the back end need higher resolution than actual graphical resolution and therefor requires Large Floating Point numbers and apparently (I'm told) this means we can't use GPUs. One idea I have for that program is whether they could at least separate out the post processing and assign that to GPUs. But I wonder if there are other ways to speed up fractal generation, possibly get it on a GPU platform. IDK.
I feel the editor was very rude to Freya. Despite her effort to call attention to slides, which she prefaced as critical, the edit is largely footage of her expressing an amazing narrative. But not in the way she wanted to.
I'm an old Electronics engineer, worked on TV sets (you know--REAL TVs with actual Cathode Ray Tubes as a viewing screen) in my younger years. I would LOVE for her to look at the old RCA color guns and explain them from input to light emission. I mean I understood it, probably better than most of my peers, I had no problems troubleshooting them... but I bet she could bring that antiquated circuit theory to life! (BTW--analog is always superior to digital in real life animation---brownie points for any body that can explain why below!)
I clicked on this video and didn't think I was actually going to be interested enough to watch the whole video. Its crazy how math can be used to emulate reality.
@@qqqq-dp4rv Well, just look at these right wing f(R)auds, high school drop outs to ivy league, leading part of the country. I don't think solving for the quadratic equation made a difference. We actually need cafe workers. That's not an insult.
Haha, when she finally showed the lerp code I decided to test my understanding for what she was talking about and wrote my own code which is a step further from hers after simplifying stuff it goes like this: return a + t*(b - a); I wonder why didnt she notice that
So "a+t*(b-a)" and "(1-t)*a+b*t" are the two standard ways of implementing lerp. Mathematically, yes, they are exactly the same, but when running on actual hardware with IEEE 754 floating point numbers, they are /not/ necessarily the same! Why? Rounding errors. With the version Freya presented, for t=0 you are guaranteed to get back exactly a, and for t=1 you are guaranteed to get back exactly b. That is not the case with the simplified version. There you are only guaranteed to get back exactly a for t=0, but you are /not/ guaranteed to get back exactly b for t=1, due to rounding errors with IEEE 754 floating point values. That said, for the most part, especially with nice simple values for a and b, you will get back exactly b, and even if you don't, depending on your use case, it will be close enough to not matter. But that is why many developers prefer the version Freya presented.
@@Zguy1337 Thanks a lot :) it makes a lot of sense now. I'm like it wasn't that hard to see, why didn't she use a simpler way. But it still means we're performing less operations in the simpler method, aren't we? (my use case was games programming, mostly dealing with floats, though Unity already has a built in Lerp function)
@@krissloo143 "we're performing less operations in the simpler method, aren't we?" don't pay too much attention to it. if you don't believe me, benchmark it, it's practically negligible in terms of performance. multiplication is VERY fast.
3:00 You couldn't have been more correct in that last statement... I LOVE math...and I always heard: "I'll never need to use this!" Yet people are confused about interest rate calculations and have no idea how to figure out their retirements??? MATH IS VERY IMPORTANT... PAY ATTENTION TO THIS PERSON!!!!!
Where was this event.? Seems like it was in the States, though she seems to work in Sweden. ……….( I’ll just add in my plea, which i expect to be well received in this company, to allow PHOTOS.! ………….In so many places, including here, photos are a no-no. Let’s open this up.! ) …………….[ Freya.: did U notice how i create space with periods.? Like right here. A period between the last word and the Question mark. Writing seems too crowded to me. ( I’m a painter. ) ]
as a user of blender, your exclamation that you can blender between anything doesn't impress me. In blender you can keyframe anything, and it will automatically "lerp" between them, and you have different lerp settings. You can do it with shaders, color, position, size, rotation, anything really
Everyone DOES use these all the time, but the logic underpinning the techniques is seldom actually discussed. That's the point of the video, not to introduce lesser known techniques, but to explain the details of some commonly known techniques.
@@erikm9768 a LOT of game programmers learn through doing, either starting with visual scripting in gamemaker and moving up to stuff like unity, and they won't know the fundamentals
Thank you Freya! This is way easier... if the player goes faster, the camera opens to show more world... if it goes slower, it narrows to show more detail! playerVelocity = player.velocity.magnitude; float i = Mathf.InverseLerp(minVelocity, maxVelocity, playerVelocity); float o = Mathf.Lerp(minFieldOfView, maxFieldOfView, i); virtualCamera.m_Lens.FieldOfView = o;
Freya Holmer, The Shader Goddess
are you gay?
@@commandershepard1944 he's talking about the work
@@commandershepard1944 wut?
@the nexus shes trans aint she?
Lol cry me a river, didn't know, don't care 😘
Freya, the rare true Rockstar. The integration of Art, Code, and Math each enabling a richer understanding and utilization of each other.
Reminiscent of Gödel, Escher, Bach. You may find this presentation moving!
'tis impolite and quite a bit ungentlemanly to go overboard with compliments toward a Lady young of age.
@@chickenduckhappy agreed. chill out Matthew.
Fettes DoubleDislike für Matthew Winston ! 👎👎
some ppl got salty over your compliments lol
The people commenting here hating on your comment are ridiculous. Looks like they never left their moms basement.
Fantastic talk, thank you Freya
You have a very good way of explaining complex stuff in an easy to understand manner. Thank you for this very enlightening talk!
Had no idea about remap. I was trying to build up some calculation from scratch to figure out how to lerp between 3 different gradients over time in a shader. I was losing my mind trying to see how I could keep one gradient up longer than the others. This helped me so much.
I took a picture of that as well, yes using my phone right from the laptop screen... And Remaper made my whole day.... I am so happy for it.... Thank you!!!
Really shows how powerful formulas are. The pictures are good for examples. But the formulas are so elegant.
Thanks for a wonderful and simple explanation of LERP etc.!!!
Awesomly simple explanation of complexy looking math functions. Opens up so many possibilities and scope for creativity, also Thanks for uploading this video
Awesome talk - it was very eye opening for me with the great visual examples. thx !
That was AWESOME! Thank you!
Very good overview and clear illustrations
Holy shit, I can feel my brain expanding. This shit is awesome.
This was great explanation!
Thank you!
Absolutely Awesomeeee!
Wow that's visualisation was so cool
This was really fun to watch :) Thank you
Wonderful Freya ❤❤❤
Would love an in-depth breakdown of that water shader. Looks absolutely gorgeous.
Wow amazing, I'm already thinking of ways I can use this in my programs
Using lerp as a way to overlay texture is so simple and yet elegant! I never thought of that (even though I'm guessing it's already being used for that purpose everywhere anyway -- painter's algorithm being less efficient)
This is amazing, i watched until the end 😭
I really liked it, I'm impressed. Watched in one breath. I'ts very interesting and informative!
Amazing!
thank you, it was great
This is awesome
Freya taught me a lot of the things I know today
this was such an awesome description of lerp and inverse lerp! It really helped solidify my understanding of them, and I've already found several use cases in my game that I have easily been able to accomplish!
listened twice - understood lerp.
listened three times - understood inverse lerp.
listened four times - understood remap.
Lol turns out I'm not the only one who is rewatching haha
I struggle with the mapping issue she mentioned on a regular basis. I have to remap things all the time. I didn't know there was an inverse lerp function, and this will save me countless hours in the future
If I understand things correctly it's just the _map_ function that's provided in the Arduino framework. I've found this function so useful that I started using it in non-Arduino projects as well.
"She"? What "she"?
Mathematics is the tool of all Engineering Sciences and Technology, it is awesome that we have 'computers' today with the use of programming we can create graphics and animation in colors: visualization, and to computer games. Engineering design is the most indispensable tool for use of this. Thank You for educating us.
Thanks from Brazil
In blender there is the "map range" function which is just a generalised version of lerp and iv lerp. It takes input range minimum and maximun, output range minimum maximum and the value as inputs and outputs the remapped value. For a normal lerp the input bounds are just 0 and 1. And it also does extrapolation aswell but this can be turned off if not desired.
24:45
Great Talk Freya
Very Insightful, how did i miss this 😇
Looking at the points and vectors you have to make a bezier curve are the same kind of ideas that Tony Derose talks about used in the development of the Toy Story movies with the Catmull-Clark equations. He gave a TedTalk in 2013 using a SubDiv program making curves into full circles for 3D geometry used in Pixar just by splitting the midpoints.
Excelent.
Surprised to not have seen distance maps in this talks. Animation using distance maps and lerp is a really nice usecase as well I think :)
Thanks Freya.
im in love!!!!
Dope.
I was thinking she may going to mention lerp. She did!
I have no idea if its because of freya but Unity shadergraph now has a remap node that does exactly what she described around 26:00.
Freya Holmer - The Shader Goddess
🔥
great
The problem with Bernstein Polynomials and Bezier constructions that no one explains clearly how they where formed or derived in great detail.
These are engineering drawing mechanical techniques that where rediscovered by computer scientists. It's amazing that forgotten techniques are being rediscovered again like the quaternions studied by Hamilton.
I truly admire this woman and her deep knowledge. Bravo Freya! Keep it up
She's a bro
Freya Holmer : Game Devs :: Felicia Day : Nerdcore
They both do a fantastic job engaging with their communites, and emit such a positive vibe.
Freya has so much educational content on her channel though, she's probably become Big(O) in the function that determines my interest in math.
She deserves better that to be watched with the interruption of ads
Unrelated but adjacent, I'm interested in whether the 3D fractal program, Mandelbulb 3D can be sped up. Apparently the fractal generators on the back end need higher resolution than actual graphical resolution and therefor requires Large Floating Point numbers and apparently (I'm told) this means we can't use GPUs. One idea I have for that program is whether they could at least separate out the post processing and assign that to GPUs. But I wonder if there are other ways to speed up fractal generation, possibly get it on a GPU platform. IDK.
Nice not too hard to make it plot angled polygons.
I would be so much better at math today, if Freya taught me in school as a kid.
When copy&paste implementing: I think a Lerp with "(b-a) * t + a" would be faster (less operations).
Not that it matters much anyway. Most of your performance isn't being used on lerp
@@JasminUwU only if you use lerp whenever possible, which the talk is promoting
@@devforfun5618you might also argue that in this case you'd want the numerically more stable convex-combination version she's shown in the talk
I woulda burned the whole house when you showed that sine cosine tang simulation graph
I feel the editor was very rude to Freya. Despite her effort to call attention to slides, which she prefaced as critical, the edit is largely footage of her expressing an amazing narrative. But not in the way she wanted to.
Mm, don't really understand what u mean. The graphics look clear and I can follow along easily.
If I only learn 50% of this math, I will know 100% more. interesting, even if I dont really understand everything :)
[sits on the floor]
She's been named appropriately. Freya is a God lol
she made Budget Cuts??? i almost broke my hand grabbing through the hole in the floor....
Shouldn't inverse "Lerp" be "Prel"? ;-)
Beautiful
right
This is amazing! I love the way she teaches! Are there more recordings of her teaching in this manner?
*he *his
@@Edward-bm7vwyou’re a lo* ser*
Hah I knew it was a bezier as soon as I saw it!
29:00 code
30:57 literally the reason I don't attend a single math related class in my university, I either learn the things myself or you know... let them slide
Insane
Hy
Figure something out
Ihkhihi
1:03 ayo, who did these captions, she ain't named Franco Murray
I'm an old Electronics engineer, worked on TV sets (you know--REAL TVs with actual Cathode Ray Tubes as a viewing screen) in my younger years. I would LOVE for her to look at the old RCA color guns and explain them from input to light emission. I mean I understood it, probably better than most of my peers, I had no problems troubleshooting them... but I bet she could bring that antiquated circuit theory to life! (BTW--analog is always superior to digital in real life animation---brownie points for any body that can explain why below!)
Lots of numbers... in programming? Those who state that are missing the whole point in programming... and math in general ...
Thought i knew everything about lerps, was dead wrong
Bezier curves are literally what Pixar uses in their animation and modelling and shading!
I clicked on this video and didn't think I was actually going to be interested enough to watch the whole video. Its crazy how math can be used to emulate reality.
3:42 Yeah... I understood it; but didn't know what it was either....
She has a youtube channel if anyone wants
Math is a reason why so many people never finish their degrees. Non stem math requirements are needlessly too rigorous. It's a statistic.
just skip the degree part and go work in a cafe or something
@@qqqq-dp4rv Well, just look at these right wing f(R)auds, high school drop outs to ivy league, leading part of the country. I don't think solving for the quadratic equation made a difference. We actually need cafe workers. That's not an insult.
Man this girl is pretty cute and smart too! Best combo.
it's a guy.
@FVRS I’m not kidding, it’s a trans guy. Look at his old videos and you will see.
@FVRS Are you questioning yourself yet? hahaha
@FVRS lol
@FVRS i mean, doesn t his voice make it obvious?
Haha, when she finally showed the lerp code I decided to test my understanding for what she was talking about and wrote my own code which is a step further from hers after simplifying stuff
it goes like this:
return a + t*(b - a);
I wonder why didnt she notice that
Same equation
So "a+t*(b-a)" and "(1-t)*a+b*t" are the two standard ways of implementing lerp. Mathematically, yes, they are exactly the same, but when running on actual hardware with IEEE 754 floating point numbers, they are /not/ necessarily the same! Why? Rounding errors.
With the version Freya presented, for t=0 you are guaranteed to get back exactly a, and for t=1 you are guaranteed to get back exactly b. That is not the case with the simplified version. There you are only guaranteed to get back exactly a for t=0, but you are /not/ guaranteed to get back exactly b for t=1, due to rounding errors with IEEE 754 floating point values. That said, for the most part, especially with nice simple values for a and b, you will get back exactly b, and even if you don't, depending on your use case, it will be close enough to not matter. But that is why many developers prefer the version Freya presented.
@@Zguy1337 Thanks a lot :) it makes a lot of sense now. I'm like it wasn't that hard to see, why didn't she use a simpler way.
But it still means we're performing less operations in the simpler method, aren't we? (my use case was games programming, mostly dealing with floats, though Unity already has a built in Lerp function)
from my custom library
static public float Lerp(float t, float min, float max) => min * (1f - t) + max * t; // more robust computation of: min + t * (max - min)
static public float InverseLerp(float lerp, float min, float max) {
float denom = max - min; return denom.IsCloseToZero()? min : (lerp - min) / denom;
}
static public bool IsCloseToZero(this float value, float epsilon = 1E-6f) => Mathf.Abs(value) < epsilon;
@@krissloo143 "we're performing less operations in the simpler method, aren't we?"
don't pay too much attention to it. if you don't believe me, benchmark it, it's practically negligible in terms of performance.
multiplication is VERY fast.
right right right, right?
1:59
my fav part OwO
8:23
is it Lerp ? OwO
8:55
YES XD I KNEW IT XD
3:00 You couldn't have been more correct in that last statement... I LOVE math...and I always heard: "I'll never need to use this!" Yet people are confused about interest rate calculations and have no idea how to figure out their retirements??? MATH IS VERY IMPORTANT... PAY ATTENTION TO THIS PERSON!!!!!
Where was this event.? Seems like it was in the States, though she seems to work in Sweden. ……….( I’ll just add in my plea, which i expect to be well received in this company, to allow PHOTOS.! ………….In so many places, including here, photos are a no-no. Let’s open this up.! ) …………….[ Freya.: did U notice how i create space with periods.? Like right here. A period between the last word and the Question mark. Writing seems too crowded to me. ( I’m a painter. ) ]
that's just some math basics. Expected more from the title.
NERD!
me ,dont understand at whole all ,
Why she is so.cute omg
she uses shader on her skin
Simp
@@Quesbe i agree
as a user of blender, your exclamation that you can blender between anything doesn't impress me. In blender you can keyframe anything, and it will automatically "lerp" between them, and you have different lerp settings. You can do it with shaders, color, position, size, rotation, anything really
simple math???? where?
nice slideshow Joachim.
Whut? i use these all the time. And every else seem to do that too. I dont understand...
Everyone DOES use these all the time, but the logic underpinning the techniques is seldom actually discussed. That's the point of the video, not to introduce lesser known techniques, but to explain the details of some commonly known techniques.
@@DGFISH88 Unless the subject is how a quaternion is implemented i think most programmers also know whay say a lerp does internally.
@@erikm9768 a LOT of game programmers learn through doing, either starting with visual scripting in gamemaker and moving up to stuff like unity, and they won't know the fundamentals
very interesting video..
are you born as a female or you trans? asking from curiosity
born as male, so trans
Marry me
No she married me
Is that a man?
I would say. His use of a girl's name is sort of discombobulating.
Thank you Freya!
This is way easier... if the player goes faster, the camera opens to show more world... if it goes slower, it narrows to show more detail!
playerVelocity = player.velocity.magnitude;
float i = Mathf.InverseLerp(minVelocity, maxVelocity, playerVelocity);
float o = Mathf.Lerp(minFieldOfView, maxFieldOfView, i);
virtualCamera.m_Lens.FieldOfView = o;
and if you wanna make a hardcore game do the opposite, since adrenalin causes tunnel vision, that could be used in a horror game
Is she a man who became a woman??
This is called regression, not progression
Why did his parents call him Freya? It sounds like a girl's name.
sound like man,
guess why
@@GeneralAutustoPepechet lol
Because that is
Sweet and locally smart guy, went to far, for no reason.
Is that a dude?
She's a woman.
@@Quesbe hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
@@ukranaut what?
@@Quesbe hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
@@ukranaut no offense but u r weird