Тёмный
No video :(

Coding Adventure: Ray Tracing 

Sebastian Lague
Подписаться 1,3 млн
Просмотров 1,2 млн
50% 1

Опубликовано:

 

25 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 1,7 тыс.   
@willthunder7212
@willthunder7212 Год назад
You are the Bob Ross of coding with phrases like "Our little raytracer" and I love it.
@ano3000nymous
@ano3000nymous Год назад
What a great analogy
@mikhailkerman8323
@mikhailkerman8323 Год назад
I wanted to say this
@stickguy9109
@stickguy9109 Год назад
There are no bugs only happy accidents
@LePeppino
@LePeppino Год назад
@@stickguy9109 no errors only happy little exceptions
@AetherXIV
@AetherXIV Год назад
this is so true. its so relaxing. even though I could never code like him :)
@LightningFoxHD
@LightningFoxHD Год назад
Sebastian doesn't upload often, but when he does you know I'm clicking on it immediately
@tejiriamrasa3258
@tejiriamrasa3258 Год назад
@@Danuxsy Is that supposed to be a flex?
@JordHaj
@JordHaj Год назад
@@Danuxsy weird flex but ok. Did you make a more entertaining and informative video than Sebastian?
@Danuxsy
@Danuxsy Год назад
@@JordHaj Actually I believe GPT-4 is a greater teacher than Sebastian because you can ask it about anything, it can explain code for you, why you got an error and even fix the errors for you. It can explain in many different ways too if you just ask! 😊 It can also read documentation and lead you through problems step by step too!
@SSukram_
@SSukram_ Год назад
​@@Danuxsy but that's kinda obvious, it learned from the entire internet.
@mohammadhomsee8640
@mohammadhomsee8640 Год назад
​@@Danuxsy What is the point of making a ray tracer in less than 5 minute using GPT-4, while you can use already created one ? Sabastian is learning and doing every single thing in this series, you can't imagine how much information he get out of this. For example In this video only, he learned how to perform doing random numbers, how to do communication between CPU and GPU to send mesh information, How to render meshes in ray tracer, How to calculate intersection between sphere and triangles, he learned about probability with normal distribution and uniform distribution, He did very useful visuals to check his work and equation. He did a really amazing work. It's not comparable with doing it using GPT-4.
@HunterHerbst
@HunterHerbst Год назад
It always sounds like Sebastian is explaining all this cool stuff with a massive smile on his face. Like you can just hear it in his voice. And his happiness make me happy in a way. I love your work, keep it up :D
@aaAa-vq1bd
@aaAa-vq1bd Год назад
It’s just the Scandinavian accent. It’s especially strong for Danish people, who often sound like they are smiling. Evidence for this is that I thought Lague was Danish before I checked the channel info, originally just to check if he might be Scandinavian. This accent results in a “happy” register in English. That being said it requires some level of happiness or concerted effort to sound like this. I assume it’s a bit of both.
@HunterHerbst
@HunterHerbst Год назад
@@aaAa-vq1bd Interesting. Thanks for the info
@aaAa-vq1bd
@aaAa-vq1bd Год назад
@@user-bo5vr1ib6i never mind then. it was anecdotal evidence and even when I posted it I had this nagging feeling that it might be a totally spurious connection. Thanks for the correction.
@user-bo5vr1ib6i
@user-bo5vr1ib6i Год назад
@@aaAa-vq1bd No problem. Have a nice day :)
@manioqqqq
@manioqqqq Год назад
He is the type of person who would scream in lowercase
@Khawalidmi
@Khawalidmi Год назад
Whenever Sebastian says "How this works is super simple", I pay extra attention.
@cooperhardi4324
@cooperhardi4324 Год назад
Ye
@liammelehan508
@liammelehan508 Год назад
Nnyyyyyes
@keiidev
@keiidev Год назад
Always a good day when a Coding Adventure releases
@Straline.
@Straline. Год назад
150
@guestguest8278
@guestguest8278 Год назад
I was a bit skeptical at first because it is april first
@BenPanna
@BenPanna Год назад
Absolutely! It's like getting an unexpected package in the mail, but better because it's code!
@debadityanath4398
@debadityanath4398 Год назад
@@BenPanna true, already got april fooled 3 times today on youtube
@chrissugg968
@chrissugg968 Год назад
*cooding adventure
@spidermankey1398
@spidermankey1398 Год назад
When others code it is frustrating but when Sebastian codes it looks like he is Ballet Dancing like the world is on 0 difficulty
@alexlandherr
@alexlandherr Год назад
That probably means a lot of testing that we don’t see. I’m a Java backend developer and writing some simple endpoints for say a Spring Boot server means first write the code that handles a request and then a bunch of tests which usually takes a large portion of the time.
@redship7532
@redship7532 Год назад
So true
@thom1218
@thom1218 Год назад
He also gives the impression that he's pretending to come up with these ideas on the fly, together with the testing we don't see, it just becomes more of an ASMR parody. People worry about AI not attributing their creations to human generated training data and here we have a 1M+ YT channel blathering on as if he didn't lift shader code from open source projects like Blender or a million other places or even inspiration from any source. Sure, okay Sebastian - what have you woke up and just randomly thought of to code today? lol
@TheBcoolGuy
@TheBcoolGuy Год назад
He does take a long time to make these videos, but he is really sharp.
@ET-yc4wb
@ET-yc4wb Год назад
@@thom1218 Maybe you didn't watch the video, but he clearly gave us the name and images of the books he read, and he clearly said that he borrowed code from others, whether it be from stackoverflow, or blender. So no, he didn't wake up with these ideas. He's spend quite some times studying and writing code. Hence why he barely uploads.
@182exe
@182exe Год назад
how in the world did you make this so nice to watch the catto, the tomato, and your slight sense of humor is simply perfect
@hmmmidkkk
@hmmmidkkk 3 месяца назад
I've made a raytracer in c++ as well , it isn't as easy as he shows , he just shows the concept and how the code works he puts a lot of effort than he shows.
@MykelGloober
@MykelGloober Год назад
"Truly one of the artworks of all time." Couldn't agree more, it's definitely one of them!
@DeenBoi
@DeenBoi Год назад
anyway whats going on with this tomato
@howdj
@howdj Год назад
That's the joke, well done
@mastershooter64
@mastershooter64 13 дней назад
@@howdj that's the joke, well done
@aleksp8768
@aleksp8768 Год назад
Sebastian is the definition of quality over quantity
@vignotum132
@vignotum132 Год назад
You’re the definition of an unoriginal commenter
@dip8
@dip8 Год назад
im so confused it says theres one comment to this comment while i see nothing
@vignotum132
@vignotum132 Год назад
@@dip8 well hello there. My comment said: “You’re the definition of an unoriginal commenter”
@dip8
@dip8 Год назад
@@vignotum132 k lol ty
@vibaj16
@vibaj16 Месяц назад
@@dip8 extremely common youtube bug. the number of replies is wrong like 50% of the time
@Josbird
@Josbird Год назад
The juxtaposition between the calm, confident voiceover and the sudden bugs never fails to make me chuckle
@MandrakeGuy
@MandrakeGuy Год назад
especially the one near the start of this video, bugs and issues USUALLY dont happen that quickly... USUALLy...
@ymi_yugy3133
@ymi_yugy3133 Год назад
I can't even begin to image how much work it must have been to write all these visualizations. Keep up the good work.
@shockwave7094
@shockwave7094 Год назад
That technical difficulty during the FOV part in the intro had me in stitches, unapologetically showing that even though we have the lofty goal of ray tracing we can still have something so trivial trip us up. I just love how incredibly informative as well as entertaining Sebastian is
@rocketgirl3366
@rocketgirl3366 Год назад
MOM! SEBASTIAN LAGUE DROPPED ANOTHER VIDEO! CANCEL THE DENTIST!
@22Tie22
@22Tie22 Год назад
Or watch it while at the dentist! With his soothing voice and fascinating content, It oughta be better than lidocaine
@0xxKAMISAMAxx0
@0xxKAMISAMAxx0 Год назад
Literally me minus the dentist 😂
@GnuSnu
@GnuSnu Год назад
how did you comment on this video 10hours ago? (it's been posted just 3minutes ago)
@bramlahousse7750
@bramlahousse7750 Год назад
@@GnuSnu probably members only video for a bit or unlisted
@repinuj
@repinuj Год назад
I always hated the dentist, yeah, let’s cancel ‘em!
@cerealkeepsyougoingeveryda555
The series continues, and I'm very grateful for this Sebastian!
@TheBcoolGuy
@TheBcoolGuy Год назад
I am grateful for the kity!
@dertuel
@dertuel Год назад
I love how relaxing and inspiring your videos are. I’m always getting a humble„No big deal“ vibe, which pushes me to never be too proud of my achievements but accepting them as the next step but not the last. Thanks for your hard work! Very appreciated ❤
@brunoromeroperez4879
@brunoromeroperez4879 Год назад
29:53 "Truly one of the artworks of all time" "Anyway, what's going on with this tomato?" I died here
@likeyou3317
@likeyou3317 Год назад
Hey Seb, I just wanted to appreciate the extra effort you take to code/setup your visualisations that aren't part of the project but enrich your explanations substanially. Animations, concise statements, music, all of it sparks my sometimes diminishing love and passion for programming. Thank you.
@petermead8229
@petermead8229 Год назад
100% Agree. This must be lots of extra work, but even when I'm only understanding a fraction of the code & concepts (I quite enjoy being so lost tbh!) the animated examples and explanations give me something to grip into. I just had a horrible morning btw, and this vid has calmed me down soooo much. Also the images are beautiful!
@SpringySpring04
@SpringySpring04 10 месяцев назад
Don't forget the occasional appearance of his cat! Lol
@yjonesy
@yjonesy Год назад
It's amazing how I am entertained both by a gentleman like Sebastian, with his calm and warm voice, and by characters like The Code Bullet, his cursing and his madness. Different Content Creators, united together with many others by the passion for coding. ❤ thanks
@NinjaOfLU
@NinjaOfLU Год назад
I literally came straight from a CodeBullet video to here, and totally agree, it's hilarious!
@Mullatta_Damage
@Mullatta_Damage Год назад
😂They're the angel and devil on coding's shoulder. You're going to learn through amazing content, but it's either through tranquility or chaos.🤣
@flabort
@flabort Год назад
Sebastien is Lawful Neutral, Coding Train is Neutral Good, and Code Bullet is Chaotic Neutral. We need to find the Neutral Evil coding channel to have the minimal alignment axes representation. It would be amazing to fill out a full 3x3 grid of coding youtubers, but I am not sure if there are that many.
@yjonesy
@yjonesy Год назад
@@flabort the coding train can be Chaotic Good... 😂
@chucknovak
@chucknovak Год назад
I love how you walk through stuff like this. You get the audience to ask, "What is the next natural step?" and give them the breathing room to think of an answer. Then you show them what you came up with and sort of hint at why it is a useful concept more generally without saying it explicitly. Your videos are simply fantastic at getting people (specifically me) to think through complex problems in small rational steps. Bravo. Keep it up!
@minerkey682
@minerkey682 Год назад
is it just me, or does Seb sound like hes smiling the whole time as he records
@cooolboy123
@cooolboy123 Год назад
it's you
@allthefun2969
@allthefun2969 Год назад
Kind of, that's why his voice is such a good and relaxing sound to listen.
@aurelia8028
@aurelia8028 11 месяцев назад
Nah he just has an annoying accent
@minerkey682
@minerkey682 11 месяцев назад
@@aurelia8028 idk I think his accent is fine. He sounds rly laid-back and it makes the videos much more enjoyable and calm to listen to
@bowarc
@bowarc Год назад
Man i love this 'Coding Adventure' series. Insane video, as usual
@noahabry619
@noahabry619 Год назад
Incredible video ! I usually have a hard time understanding these more complicated aspects of computers, games, renderers, basically technical stuff, and while it still is a struggle, your videos make these so much easier to comprehend or at least visualize. This 40min vid felt like a 20min one with how well everything was presented. Incredible stuff, as always ! And these renders are really cool looking !
@makotv6898
@makotv6898 Год назад
If you would like some more knowledge about some of the topics in here like matrixes, shaders and general redering I would recommend reading the Free pdf book. LearnOpenGL. The first chapter goes quite in detail.
@BenPanna
@BenPanna Год назад
learning about technical stuff could be so visually stunning? 😄 enjoyed the video and were able to keep up
@aerolynx2700
@aerolynx2700 Год назад
I love how you're keeping these classic sign flip issues and little mistakes in the video - very relatable ❤
@LaunchRecap
@LaunchRecap Год назад
I don’t know if I’m disappointed or excited. I was expecting a April fools video but honestly this is the best video released today. ❤
@tbird81
@tbird81 Год назад
It's a waste of time using RU-vid on April fools. Mostly just unfunny crap. Good to see a proper video.
@Very_Grumpy_Cat
@Very_Grumpy_Cat Год назад
True I also thought that
@gary-huang
@gary-huang Год назад
Would highly suggest adding a bounding volume hierarchy to your little renderer! Makes a world of difference in performance. Also if you really want to get into the advanced features of a path tracer, try implementing multiple importance sampling with next event estimation!
@arkraga5155
@arkraga5155 Год назад
"my Computer is dying, but i think it looks nice" is my favorite quote xD
@thebooduck
@thebooduck Год назад
Congratulations Sebastian, you are hereby certified crazy for doing all your animations inside Unity. You may add that to your CV for future job applications.
@iankistner3576
@iankistner3576 Год назад
"Truly one of the artworks of all time. Anyway, what's going on with this tomato?" is easily one of the transitions I've ever seen.
@SufficingPit
@SufficingPit Год назад
I love your stuff. Your visuals are so clean and satisfying. You also have perfect concise explanation that are still very informational and in deapth. Honestly you are probably my favorite codeing/dev channels. Also, really good at getting me inspired to do similar projects for fun.
@TheBcoolGuy
@TheBcoolGuy Год назад
Also kity 🐱
@SufficingPit
@SufficingPit Год назад
@@TheBcoolGuy Definite plus.
@Stvk
@Stvk Год назад
his video feels both calm and inspiring, and never boring
@FaeChangeling
@FaeChangeling Год назад
This taught me so much about how Blender Cycles works
@glumpfi
@glumpfi Год назад
I wrote some kind of ray tracer 2 years ago, but for sound sources in a reflecting (reverbing) room. Like a 3D sound simulator. I just tried to figure out everything by myself without any knowledge - and of course i stumbled over some of problems i weren't able to solve by myself. It's really nice to see this video and how you came to every single of my problems and then showed how to solve them :)
@TheSpacecraftX
@TheSpacecraftX Год назад
Gotta put everything down and watch every time I see the notification for these.
@skyroor
@skyroor Год назад
Absolutely glued to the screen. You produce some of the best balance of technical and visual teaching/adventuring I've ever seen, video after video, and this was by far my favorite! Wonderful work :)
@arceyominyin
@arceyominyin Год назад
This was a super fascinating watch. Ray trace rendering was always one of those things I just accepted to be magic, but this broke things down in a way that was really incredibly easy to follow. Really great video.
@Cengizhan98
@Cengizhan98 Год назад
I swear because of these types of videos i am learning again why i love to work in this field and how much I just love the sheer wonder and fascination of making math look good. I was grinning the whole time like an idiot during the reflections part and its also partly the fault of the video, because your videos are so well done and cinematic, I could watch them all day and just leave them running in the background
@BenPanna
@BenPanna Год назад
Just don't forget to actually do some work in between leaving the video running all day 😉
@joelholmes9497
@joelholmes9497 Год назад
I specialised in physically-based rendering during my master's degree, had to do a whole ray-tracing project very similar to this so was very nice to revisit some of the theory along with such wonderful visualisation. Your presentation of the ideas at play here is an absolute joy and your code is pristine as ever - always a pleasure to see what you're working on, thanks for the great content! :)
@AdityaRaj-bq7dz
@AdityaRaj-bq7dz Год назад
is this how ray tracing is implemented (bounce around till you reach light source) or people use phong's shading (calculate shadow and reflected ray) to get ray traced results??
@stepanbatllorimartinez4696
@stepanbatllorimartinez4696 Год назад
This is just a frivolous ammount of liquid GOLD! Wh-what the hell? I have been following you for a long time, but this Render Coding was AMAZING! I think it's been five years since I started modeling for a living in 3D and I, of course, understand how ray tracing works, but this level of detail was beyond my expectations, I learned a lot today! Thank you very much!!
@SebastianLague
@SebastianLague Год назад
I'm happy you enjoyed it so much, thank you!
@zelenpixel
@zelenpixel Год назад
i greatly appreciate the cat footage and getting to hear the purring even
@unlucky-777
@unlucky-777 Год назад
Running a butter smooth code means a lot of testing and tons of bug fixing that we don’t see. He goes through these issues to create 40min~ long videos for us
@BalintCsala
@BalintCsala Год назад
A quick note about the rejection method you used for the random direction originally, while it is true that about half of the time it will find a good candidate, so on the CPU it would only run on average less than 2 times, on the GPU threads are done in groups of 32 (NVIDIA) or 64 (Intel, AMD), and the threads in one of these groups can only continue once all of them does. I did some tests and that results in 6 or so iterations before exiting on average on 32 thread systems.
@FqreBxll
@FqreBxll Год назад
This is amazing. Filled with detail and excitement as you explain, it makes as I want to do it as well. Although could as well be a tutorial, it seems so entertaining and interesting watching what would happen. I subscribed and would like to follow and enjoy while you talk of the capabilities to accomplish. I did not know it could do so much, the programs. Thank you for making this and explaining along the way.
@jamesking2439
@jamesking2439 Год назад
The reason that normal distribution is spherically symmetric is because when you multiply the distribution functions for x, y, and z, you get something like e^(-x^2 - y^2 - z^2) = e^(-r^2), which only depends on the distance from the origin.
@justinbohemier118
@justinbohemier118 Год назад
Impressive to say the least. You're able to take complex subjects and turn them into easy to understand lessons that are also beautiful works of art. Really enjoyed this
@Hailfire08
@Hailfire08 Год назад
13:00 You want to create points using a distribution in (x,y,z) that is only a function of (x^2 + y^2 + z^2) = r^2 (that means it has no dependence on direction, which means the points will be evenly spaced across the surface of a sphere). If we take x, y, z separately, the resulting distribution f(x, y, z)dx dy dz = f(x)dx \* f(y)dy \* f(z)dz (this is because the three are independent (because we calculated them separately), so the probability of finding our output position in the range (x, y, z) -> (x+dx, y+dy, z+dz) is equal to the probability of finding x in that range, times the probability of finding y, in that range, times the probability of finding z in that range. Like how the probability of flipping a coin and getting heads three times is the probability of getting heads once, times the probability of getting heads once, times the probability of getting heads once) Intuitively, it seems that we should take x, y, z from the same distribution (because it's independent of direction, we can't treat different directions differently). Applying these, we see: f(r^2) = f(x^2 + y^2 + z^2) = f(x^2)\*f(y^2)\*f(z^2) What type of function is defined by f(a+b) = f(a)\*f(b)? An exponential. So we find our distribution must be f(r^2) = exp(-r^2), which is a normal distribution. I hope that helps, if I have explained anything badly please say so!
@chakflying1
@chakflying1 Год назад
Was just watching the new 2Blue1Brown video "Why π is in the normal distribution (beyond integral tricks)" and it basically explained this. Very interesting.
@lauram5905
@lauram5905 Год назад
I noticed he did the same thing in the defocus code at 33:00, realistic/"ideal" lens blur tends to follow a gaussian curve, would that mean you'd want your ray distribution from the single pixel in the camera to follow a similar curve?
@fredrik241
@fredrik241 Год назад
I think I remember someone doing a straight poisson distribution lookup to a table of pre-calculated coordinates for some of these ray directions. I think the idea was to get solid randomness cheaply as you were looking them up instead of calculating them. It was a disk and for better randomness you could just keep rotating the disk. (for say different ray hits or frame numbers) I didn't do this myself but its a memory of something that might have happened. :D
@tacotime7894
@tacotime7894 Год назад
This is the exact kind of thing that I love about programming. I recently made my first pathfinding program in pygame (using Sebastian's A* video), and seeing it work was the best feeling. I feel like making a game would give you that every once in a while, but with little experiments the whole goal is to get a single system working well.
@averagecodegame
@averagecodegame Год назад
As someone who does a lot of technical programs especially like this on Scratch, I love this content for two reasons. 1. It teaches you how to do everything and it is detailed. 2. It gives me ideas for demo scenes for when I share my code.
@ledumpsterfire6474
@ledumpsterfire6474 Год назад
On Scratch?? The visual scripting "language" meant for teaching children basic coding principles?
@Anzy_M0ti0n_31
@Anzy_M0ti0n_31 Год назад
So Marvelous ! The fact he employed real life laws and the fact they actually worked Is truly outstanding !!
@danesmith624
@danesmith624 Год назад
Things like this blow my mind. Glad their was people out there who created rendering like this so we could enjoy the fruits of it.
@eygs493
@eygs493 Год назад
why?
@kika433
@kika433 Год назад
13:01 The spherical symmetry is because the joint probability of multiple independent Gaussians e^(-x^2) looks like e^(-x^2) * e^(-y^2) = e^(-x^2-y^2) = e^(-r^2) which only depends on the radius and so is spherically symmetric. So Gaussians are useful here because they exploit the group structure of exponents to recover the radius just by being multiplied together. Thanks for this video, it was very satisfying to see you build a raytracer from scratch with much more success than I ever had! I would love to see a continuation of this with denoising, importance sampling, SDF support (fractals 😍), or any of the other features you mentioned at the end
@aaron_gomes
@aaron_gomes Год назад
I didn't expect a video about programming to be so soothing. I love this.
@cookiejackb
@cookiejackb Год назад
Your videos never fail to entertain me
@elliotmarks06
@elliotmarks06 Год назад
I am blown away by this video. You made not only one of the best ray tracing explanations I've seen, but a really cool engine as well! I'd love to see this become a series, maybe touching on performance improvements and code optimization as well.
@JackonKrack
@JackonKrack 11 месяцев назад
Hey man just wanted to post a comment to express my love for your videos. Im currently in school studying software development but my love for programming and technology goes beyond that. I'm not the smartest guy and I'm not going to pretend to understand everything you do or say. But man I've learned ALOT. So far the most fascinating thing you taught me is the HOW math is actually used in creating all sorts of things. I've always heard that math is important but I never got an explanation for why or how. I appreciate and love everything you do and I hope you continue making videos like this for a long time. Much love ❤
@tayyabchadhar3876
@tayyabchadhar3876 Год назад
You have a great understanding of code and programming concepts, and you're able to explain them clearly and effectively. You have a knack for debugging and solving complex issues and your attention to detail and ability to write clean and efficient code is impressive. I take you as an inspiration.
@CatCraftYT
@CatCraftYT Год назад
this is amazing!!! it's so cool how each step builds up to a good-looking ray tracing implementation despite all of them seeming relatively simple compared to how complicated rt seems as a whole. you're really good at explaining things! i understand how it's ray tracing works much better now, thank you :)
@diggitydingdong
@diggitydingdong Год назад
Please a part 2 on optimising this and adding more features. It would be so satisfying to get this closer to realtime if even feasible
@hugodemule-rey6514
@hugodemule-rey6514 Год назад
Thank you for producing such a quality work, I have never ever seen someone that explains something which is directly illustrated with a game engine like you! Coding Adventure = Masterpiece. 👏🏼
@user-mp1xw1yg2w
@user-mp1xw1yg2w 4 месяца назад
안녕하세요.학교 도덕수업 선플달기 프로젝트를 하고 있는 중학생입니다. Sebastian Lauge님께 감사하다는 말을 전하려 글을 쓰게 되었습니다. 이 시리즈는 제가 코딩할때 많이보는 시리즈 중 하나인데요.흥미로운 주제들이 많아서 많이 찾아보고 있습니다 원래 이런 시뮬레이션들은(특히 유체) 기술이 정형화 되어 있을지도 않을 뿐더러 또 자료도 많이 없고 중학생인 저한테는 많이 어려웠지만 영상을 몇번씩 돌려보며 어떻게든 배우려 했던 것 같아요. 진짜 자료 없을때는 엄청 고생했는데 진짜 이 영상 덕분에 어떻게든 할 수 있었던 것 같아요 Sebastian Laugue님의 완성된 결과물을 보면 진짜 하나의 예술작품같아서 coding is beutiful이라는 오픈프로세싱의 프레이즈가 딱 맞아떨어지는 것 같습니다. 앞으로도 좋은 영상 올려주시길 바랍니다.
@Mystixor
@Mystixor Год назад
Each of your coding adventures is very inspiring, love your content!
@fallen1856
@fallen1856 Год назад
Was having a bad day, thank you so much for this video. Put a huge smile on my face to see the notification.
@upsidedownairline9388
@upsidedownairline9388 Год назад
Very impressive results! And the approach you took on the depth of field effect is really clever! One thing I'd suggest looking into is avoiding branches - particularly if statements and loops that run a different number of times for each pixel. You can use compound assignments in a lot of these cases, even in cases where you conditionally want to leave variables unchanged. The reason for this is that GPUs are optimized for running the same code millions of times with different numbers. They have thousands of cores that are all being handed the same instructions, and if there's a branch, that means the GPU has to discard the results from a lot of its cores and re-do the process again for the other paths the shader code can take. Even if writing branchless code means your GPU is doing more work per pixel, you might end up with a net improvement in performance just because your GPU isn't re-doing the same work several times to handle branches in your code. The RandomDirection function at 12:00 and the new one at 12:50 are a perfect example of this: the first version is, on average, much cheaper, but runs some random number of times before it exits and thus forces the GPU to do a large number of re-dos. The version based on a gaussian distribution is more computationally expensive but lets the GPU get all of its results in one shot, so it's faster. I have a fair bit of experience writing compute shaders in HLSL (and some graphics-related ones with GLSL) and it's often a night-and-day difference. With lots of nested conditions like you have here I wouldn't be surprised to see hundred-fold improvements in performance if you write your code with this in mind. If you'd like some help with this, feel free to shoot me a reply :)
@blucenere
@blucenere Год назад
There aren't enough like buttons to send appreciations to each part of the video
@romrom83
@romrom83 Год назад
you've got no idea how much this video means to me, i've been trying to code a ray tracer helplessly for the past few months, thanks a ton :D
@bovanshi6564
@bovanshi6564 Год назад
These videos are truly exceptional. Really a part of the few content creators of true excellence.
@PsychoPath89
@PsychoPath89 Год назад
splendid video! I dont know what it is, but everytime you speak Sebastian, i imagine you having the utmost smirkiest of smiles on your face as if you're feeling the maximum superiority flowing through every cell of yours :D
@BluishGreenPro
@BluishGreenPro Год назад
I love that you said “Suzanne enters the Avatar State” as a way of describing making the model’s eyes glow
@ThomasBui359
@ThomasBui359 Год назад
Wow, this is exactly what I was looking for! Thanks for sharing this valuable information.
@beaverbuoy3011
@beaverbuoy3011 Год назад
Man no way this is amazing, im always happy when you release a video
@AllExistence
@AllExistence Год назад
Can you try raytracing-based portals next time? Like, teleporting the ray instead of bounce.
@vibaj16
@vibaj16 Год назад
portal rtx be like
@waker_link
@waker_link Год назад
I don't think the basics of the algorithm would be much different, you just cut off the ray after collision and make a new one with same properties starting from the end of the portal, it would be laggy as hell though because of how much more information the renderer needs to account for
@vibaj16
@vibaj16 Год назад
@@waker_link At least it's not so laggy that you'd need a supercomputer. Portal RTX runs ok on modern high-end graphics cards.
@AllExistence
@AllExistence Год назад
@@waker_link No, first of all every ray it's technically a new ray, and second is the only thing he needs is offset position and rotation.
@Meatbag05
@Meatbag05 Год назад
Sadly it's way less complicated to do this than most things you see in this video (sad as in it's gonna be trivial in math so that it'd barely be a minute in the video, at least in coding it). It's gonna work the same as perfect refraction or reflection, which we already got.
@sb_dunk
@sb_dunk Год назад
The final animation focusing on the knight looked so nice, really great video!
@SomeAndrian
@SomeAndrian Год назад
The change in the background of the video synched with the video content is how you know there is attention to detail
@N3onDr1v3
@N3onDr1v3 Год назад
The only channel i have notifications on for. Never dissapoints!
@mrchrisjr7663
@mrchrisjr7663 Год назад
I'm always looking out for these videos, love your stuff!!
@zuulpongo
@zuulpongo 5 месяцев назад
That explanation of a normal vector was only a few seconds long and still explained it in the best way possible (sponsored by Viridian)
@lynxloves7250
@lynxloves7250 Год назад
I never understand the coding part, but I love watching for the adventure! The way he explains things and his narration is always so soothing.
@ndotl
@ndotl Год назад
Ray casting instead of ray tracing, which only proves I took computer graphics courses about a decade ago. Ray tracing is the accepted name of the process (e.g., RTX4080). I am making this the year I restart my CG journey. You actually provided a lot of great debugging ideas,. I remember debugging being one of the main hurdles in the courses I took a decade ago. Glad to see you reference the Peter Shirley books as I will use then when I get started.
@GnuSnu
@GnuSnu Год назад
how did you comment on this video 10hours ago? (it's been posted just 3minutes ago)
@ndotl
@ndotl Год назад
@@GnuSnu Einstein: My comment were based on his utube post in which (if you are paying attention) the code is on display in addition to the 'pretty pictures'.
@clonkex
@clonkex Год назад
It's all ray tracing. There's so many variants it's pointless to try to assign one name to one variant. It all comes down to the maths of calculating intersections between rays and geometry. RTX-based ray tracing is simply hardware-accelerated ray tracing. In other words, the hardware assists in doing the maths of tracing the rays. It's still ray tracing with it's done with dedicated hardware or not.
@ndotl
@ndotl Год назад
@@clonkex In CompSci the formal term is ray casting, but ray tracing is the term used. Actual true ray tracing is performed in optical design as rays are traced through an optical system.
@ndotl
@ndotl Год назад
@@GnuSnu P.S: I am also on Patreon and may have seen it there. I did not make it up.
@zippysqrl
@zippysqrl Год назад
His voice complements his programming and editing style so nicely.
@mlisic431
@mlisic431 Год назад
A new Sebastian Lague video in my feed is the best outcome of opening RU-vid. Wonderful!
@dranorter
@dranorter Год назад
This seems like a great way to try out materials that aren't physically possible. - What does a material look like if light always bounces away directly along normal vectors? - Vampire materials -- they're invisible in mirrors (only show in first bounce) - Reverse vampires -- invisible when viewed directly (ignored as a 1st bounce), but show up in reflections
@Kokice5
@Kokice5 Год назад
Nice I always love when new videos are out
@yugam6578
@yugam6578 Год назад
Dear Sebastian, your channel's a delight, With knowledge gained, my mind takes flight, Your game dev tutorials, top notch indeed, But other topics, left unexplored, I concede. Yet the quality of content, I must profess, Is unparalleled, leaving me impressed. So keep on creating, keep on sharing, Your passion for learning, ever daring. Thank you for all that you've done, For inspiring us to learn and have fun. May your channel continue to thrive, As we journey on, to grow and thrive.
@yugam6578
@yugam6578 Год назад
Sebastian lague is a channel that is very good for intermediate game developers only
@nqkhanhskewb
@nqkhanhskewb Год назад
I bet this is generated by chatgpt
@realmarsastro
@realmarsastro Год назад
Man, this is by far my favorite channel on RU-vid. The stuff you create is always so cool and interesting, and the quality is just out of this world. I honestly wouldn't be surprised if you spent significantly more time coding the visualizations of what your code does than writing the actual code, but that effort really pays off in the final video.
@SCoraccioIV
@SCoraccioIV Год назад
I have never understood a thing of what you have done - but I have watched a lot of these videos. They are super great to watch to just get a wash of 'I'm still learning' as an adult
@EdoardoDurbano
@EdoardoDurbano 3 месяца назад
Do I understand anything? No. Do I watch it to the end? Yes.
@epicbananas1712
@epicbananas1712 Год назад
This channel is a good example of quality over quantity
@comvnche
@comvnche Год назад
I cannot imagine how much work it is to write the storyline, code everything, take it apart again to "live" good for the video while perfectly narrating. You are one of my favorit tubers and I always have to restrain myself to not share your video with everyone I know! (Though I have shared them many times anyway)
@claytonrumley
@claytonrumley Год назад
This was such an educational video and the end results so amazing! I now better understand the concepts of specular and diffuse reflections. Thank you, Sebastian, for doing this!
@thellamamarketer
@thellamamarketer Год назад
36:49 “My computer is dying, but i think it looks nice.” Me when I set the game graphics to max on my potato computer
@GGCannon
@GGCannon Год назад
One of these days, Sebastian will accidentally make a triple A level game with procedurally generated everything with lifelike graphics, I swear...
@PKMartin
@PKMartin Год назад
Bold of you to assume we're not already living in that game
@DigitalJedi
@DigitalJedi Год назад
I've been secretly hoping these videos and topics have all been related to some hidden project. Imagine if once he's done enough of them, a new series starts "Making my own game engine" and then he just starts building things from scratch again.
@oglothenerd
@oglothenerd 11 месяцев назад
Your channel is just so chill!!! I love it!!! Keep it up bro!
@dhinas9444
@dhinas9444 Год назад
Amazing video. I bet when you look at the views graph throughout the video you just see a straight line because we all are glued to the display watching without a breath uniformly ❤
@matthewcoetzee3413
@matthewcoetzee3413 Год назад
I love the coding adventure videos!
@trucksarenoisy
@trucksarenoisy Год назад
Oh so you turned your PC into a space heater, interesting
@garrachhazem8764
@garrachhazem8764 Год назад
it feels great to know this person ever since 2017, an he still do great project(bro just create a "cycles render" with few lines of code in unity)
@wx39
@wx39 Год назад
I absolutely love how exploratory and educational every one of your videos are. Every video is so well put together and your explanations are clear. I don't think there's been a single video that you've made that hasn't taught me anything new.
@stick-Iink
@stick-Iink Год назад
Why do I want to eat the renders
@micahkeller1233
@micahkeller1233 Год назад
Please! hear this out: when Sebastian tried averaging the pixels over multiple frames, he got really blurry results with moving objects. (Progressive Rendering) But If he stores the ray trace data to a list (per screen pixel), and then averages that, he will get the same effect. But then he should have each frame's data gradually lose the influence it has in it's pixel, until the oldest data has no influence, and is discarded. I think the effect this will have is: Decent real-time ray tracing, and easy motion blur!
@irtezamasud1079
@irtezamasud1079 Год назад
Unity in house engineers should be jealous of what you know and how you explain. Take a class of them dude.
@CykPykMyk
@CykPykMyk Год назад
I LOVE your content. Incredible attention to detail. I've had similiar projects in my head, projecting my ideas, and the pipeline of stuff. I really need to kick this off. Hats off to your content. Its magical.
Далее
Coding Adventure: Terraforming
22:23
Просмотров 1,4 млн
I made a better Ray-Tracing engine
17:38
Просмотров 250 тыс.
I Spent a Week Making an AI's Video Game Idea
17:51
Просмотров 3,2 млн
Coding Adventure: Simulating Fluids
47:52
Просмотров 1,7 млн
Rendering a car with my own ray-tracer
13:53
Просмотров 284 тыс.
How do Video Game Graphics Work?
21:00
Просмотров 3,5 млн
They made a game about philosophy...
23:19
Просмотров 466 тыс.
Why does Vegas have its own value of pi?
23:29
Просмотров 827 тыс.
Coding Adventure: Clouds
12:50
Просмотров 1,2 млн