Never thought I'd find a well explained video or article of PBR. Thank you!
@VictorGordan3 жыл бұрын
I'm glad you find it well explained! :)
@thedebapriyakar2 жыл бұрын
Absolutely fucking incredible. I learnt more in this 13 minute video than I could in the past 3 months.
@krajsyboysКүн бұрын
Amazing video! I'm definitely going to be referencing this a lot when working on lighting in the future! The single image at 9:17 contains so much information and is so easily readable, no need to jump between different tabs or sections to remember what everything is and does. Just amazing!
@sotrh79742 жыл бұрын
This is a really well done explanation. I particularly like that you explained this like why certain terms are moved out of the function or excluded entirely.
@VictorGordan2 жыл бұрын
Thanks! :3
@VinodSV Жыл бұрын
For the first time, I felt PBR is not that difficult! Great tutorial!
@VictorGordan Жыл бұрын
Thx, good to hear it was easy for u to understand! :)
@CodeParticles2 жыл бұрын
Bravo! Absolute genius my friend. I've been using the phong shader model for months now and this makes it much less dreadful to jump into PBR based rendering, thank you~ 👏👏👏
@VictorGordan2 жыл бұрын
You're welcome :)
@iamarugin Жыл бұрын
This is the best explanation of PBR I've ever found, thanks! It would be great to get IBL, GI and other stuff explained as well.
@starklosch3 жыл бұрын
Long time waiting for this. Well done. 5:42 it's not what I expected but I'm satisfied.
@VictorGordan3 жыл бұрын
Thanks Starklosck :) What do you mean it's not what you expected? You thought I'd cover them both in the same video :-? If I would have done that then it would have been a short comparison. This way if I make a whole video on them I can go a bit more in depth ;)
@grandpabazi3332 Жыл бұрын
Spectacular bro! Definitely the most explicit video I have watched about pbr !
@danicl933 жыл бұрын
Just a side note to this amazing video: - Fresnel tend to be VdotN not VdotH to get that rim effect. - You could set the max of dot product to 0.005 instead of 0.0 to avoid some artifacts on the border of rounded meshes. Cheers ✌
@VictorGordan3 жыл бұрын
Do you have any sources for the VdotN for Fresenl? I believe most I've seen are VdotH 🤔
@VictorGordan3 жыл бұрын
I did google it but most of the sources I found used VdotH 😅 But yeah, this source does indeed use VdotN. I'm still not convinced since this is from 2003, while the articles I reference in the description (UE4 & some Google thing) are much newer and use VdotH. But I'll look into it further 🤔
@VictorGordan3 жыл бұрын
Here is another interesting source on the topic: www.gamedev.net/forums/topic/697139-pbr-fresnel-color-bandingwrong-formula/5380998/ So what I'm getting is that VdotH is usually more realisticish, but VdotN gives that "aura" effect which might be desirable in some cases 🧐
@unexpectedbehavior2 жыл бұрын
Best explanation I've found thus far! Thank you so much!!
@VictorGordan2 жыл бұрын
You're welcome! ^-^
@seanpreston40232 жыл бұрын
This content is absolutely fantastic keep up the good work bro!
@VictorGordan2 жыл бұрын
Thanks! :3
@danielgmjr3 жыл бұрын
What an underrated video, you're a chad and a savior! Thanks for the vídeo!
@VictorGordan3 жыл бұрын
Thank you! 😎
@gregwaste25942 жыл бұрын
Easiest and fastest sub on a yt channel EVER. for once yt recommendations worked like a charm.
@VictorGordan2 жыл бұрын
Good to see the algorithm is on my side :3
@DeusExAstra4 ай бұрын
Excellent video, thank you.
@atljBoss7 ай бұрын
Perfect video! Thanks, I was able to implement it using WebGPU
@mr.hashundredsofprivatepla37117 ай бұрын
It’s exciting to think about how happy the original mathematicians (e.g. Lambert, Fresnel, Phong, Blinn etc.) would be to be proven right and see all of their work finally come to life in this setting
@tansakdevilhunter94623 жыл бұрын
Great tutorial..👍👍👍 Please do an Image Based Lighting tutorial
@VictorGordan3 жыл бұрын
Thank you! I will do IBL, don't worry ;)
@cory99998 Жыл бұрын
thank you! Very comprehensive
@SpartanJoe1934 ай бұрын
I am adding GGX to Halo 3. Thanks for the vid
@orocimarosay14473 жыл бұрын
the best explanation of this topic
@VictorGordan3 жыл бұрын
I'm glad you found it useful! :)
@bovineox11112 жыл бұрын
This is super. Thank you so much. I have custom lighting in my game and I would like to explore adding some elements of PBR in my game as cheapily as possible. Adding metallic property looks very cheap. It makes me wonder if this is how a lot of fakery is going on in things like Red Matter 2 for instance.
@VictorGordan2 жыл бұрын
I think the metallic property looks cheap because you need to add some nice textures and normal maps on top of it + proper ambient lighting ;)
@Will-Eves3 жыл бұрын
Amazing video! I loved the explications!
@VictorGordan3 жыл бұрын
Thank you for the compliment :)
@cipherjoe96 ай бұрын
I really want to see a PBR renderer with Oren-Nayar shading.
@hatsunishimura98752 жыл бұрын
Truly amazing!
@VictorGordan2 жыл бұрын
Thx! :d
@SpartanJoe19322 күн бұрын
Just adding GGX to Halo 3 with metallic workflow thanks to this video. Apart from a few artifacts it's alright.
@mr.hashundredsofprivatepla371116 күн бұрын
How? Are you modding or reverse engineering it?
@SpartanJoe19316 күн бұрын
@mr.hashundredsofprivatepla3711 Modding. 343 released the mod tools when MCC was ported to PC. You can compile shaders there.
@paulooliveiracastro Жыл бұрын
This video is gold
@Test-iv4pm7 ай бұрын
How can we add subsurface scattering to the implementation?
@JieunKo-v1l10 ай бұрын
Love your tutorial! Thanks! Could you share your slides?
@VictorGordan10 ай бұрын
They are not slides, just images/videos in a video haha
@mr.hashundredsofprivatepla37117 ай бұрын
@@VictorGordanIn that case could you share the images?
@letssee91512 жыл бұрын
Hey Victor! Super elegant explanation! Thank you!!!!!! However, I am confused about the terms of geometry obstruction and Shadowing in the BRDF equation. They are both described if you can see a piece of geometry from the camera. Why keep them both?
@VictorGordan2 жыл бұрын
Thank you! To be honest I can't give you the exact reason for which they are both important. It's because of some mathematical thing with statistics I think (might be wrong). Sort of how you have a probability for something to fail and for something to pass, and in some equations you need both (like the binomial equation of probability for ex). I hope that slightly clears things up...
@GonziHere2 ай бұрын
Hey, just wanted you to know that it somehow clicked right now, why deferred rendering exists. I could see that all of the equation is "solved" before, and you just run that "texture" against a different light position/color, right? Anyways, good content, thanks.
@dontbealoneru3 жыл бұрын
It is Amaizing!
@user-li3zl8uz9t3 жыл бұрын
Hey I noticed that you are planing to make a series of videos about physics with opengl in your q&a video. but in my opinion there are KZbinrs who already have tutorials on physic using bullet. What about physics but fluid physics and cloth with tearing. It would be nice if you can include them
@VictorGordan3 жыл бұрын
Yeah, I plan on covering multiple Physics stuff
@user-li3zl8uz9t3 жыл бұрын
@@VictorGordan ❤️❤️❤️
@paulooliveiracastro Жыл бұрын
Question: GLTF materials also specify an occlusion factor (usually in the form of a texture). How do we take it into account using this model? How does it affect the final equation?
@paulooliveiracastro Жыл бұрын
If I understood correctly, it just affect ambient light. So we just multiply Li by (1 - acclusion) if the light i is ambient. Is that right?
@VictorGordan Жыл бұрын
If that's what you've read, then I guess that's how you should apply it. To me "occlusion" sounds like something in which it's hard for light to get into, like the space between two planks or a crack in a rock. To me for those it would make more sense to simply multiply occlusion (assuming 0= no light 1=lots of light) with the final result...
@blasttrash3 жыл бұрын
what programming language is that? c#?
@VictorGordan3 жыл бұрын
As I said in the video, it is pseudocode that uses a syntax similar to C. Def from google: "Pseudocode is an artificial and informal language that helps programmers develop algorithms"
@CodAv1233 жыл бұрын
It's so more or less exactly GLSL syntax, as the built-in functions and types are identical to what's shown in the pseudocode. Need to use proper uniform and in/out declarations though as well as using texture samplers instead of using constant values for the whole object. Using this in the example would be specific to a single shading language and though less generic.
@manasraut98253 жыл бұрын
Can someone plzz explain why did we use summation instead of integral?
@VictorGordan3 жыл бұрын
At the end of the day an integral is basically an infinite summation as I said in the video. The only way to add up an infinite amount of numbers is by spotting a patern that then allows you to reduce that summation to a simple formula. Sadly some integrals cannot be reduced to simple formulas, and these are called "nonelementary functions". So in order to solve these sort of integrals, numerical methods are used. In this case I use a simple method where I simply assume the integral to be formed of a finite amount of elements... and so I use a sum :) Another reason would be that I use point lights in this example, so there will of course be a discrete amount of light rays affecting one pixel (one light ray per light). In the next video with IBL you'll see that this won't be the case anymore ;)
@manasraut98253 жыл бұрын
@@VictorGordan Now I got it !! Btw great video 👍
@akriminsoe55273 жыл бұрын
Pls upload tutorial about physics with bullet physics library. There are a little tutorials about physics in KZbin
@akriminsoe55273 жыл бұрын
I really want to learn physics. But I can't find great tutorials. So
@HylianEvil2 жыл бұрын
Omg I'm in love
@bob_frazier3 жыл бұрын
Whoa.
@kingclare92022 жыл бұрын
And in the code, where does the viariable F0 come from?
@VictorGordan2 жыл бұрын
It is user defined, it's the value for the Fresnel effect at a normal angle (90 degrees)
@valerymayatskiy9306 Жыл бұрын
12:06 what do you mean by that?
@VictorGordan Жыл бұрын
I just said that using those variables you can calculate the BRDF. I explain what that is around 04:00
@valerymayatskiy9306 Жыл бұрын
@@VictorGordan I mean what means "don't forget to omit Ks"
@VictorGordan Жыл бұрын
Around 07:00 I explain the reason
@VictorGordan Жыл бұрын
But basically, in this case I use the Cook-Torrance function for specular lighting (not the only function that can be used) and this function includes kS (named F in the Cook-Torrance function) within itself. So then kS must be taken out of the BRDF equation since otherwise u'd have kS^2 doubling the Fresnel effect for no good reason
@valerymayatskiy9306 Жыл бұрын
@@VictorGordan Thanks!
@kingclare92022 жыл бұрын
Why isn't the halfway vector divided by 2
@VictorGordan2 жыл бұрын
In general or where exactly?
@guidocampuzano46652 жыл бұрын
Hi Victor! Please make a roadmap yo become a rendering engineer!!
@VictorGordan2 жыл бұрын
Maybe if I was a rendering engineer I could haha From what I've read online though, it seems that you should just do a lot of personal projects with computer graphics, get to know about a lot of random rendering techniques, start a job in programming (not CG), and after you got a few years of professional programming on your back, apply for CG roles. They are quite rare and usually look for Senior CG programmers, so it seems kinda hard to get into it :c
@akriminsoe55273 жыл бұрын
but how we load PBR models. pls upload about that. I am having problems with loading PBR models.
@austinkim94023 жыл бұрын
PBR - Peanut Butter & Rjelly
@VictorGordan3 жыл бұрын
If u search pbr on google, the first result will likely be Professional Bull Riders lmao
@pifre30513 жыл бұрын
@@VictorGordan lmao, I get that result so much when searching it, I think it's dumb, gotta give Professional Bull Riders some credit anyway for being the first search result.
@yooyooman3d3 жыл бұрын
👍
@VictorGordan3 жыл бұрын
👌🏻
@SAMUSTORM3 жыл бұрын
😻
@VictorGordan3 жыл бұрын
🐶
@josephbyers38993 жыл бұрын
"okeh" lmao
@VictorGordan3 жыл бұрын
👌
@chevlonmacguinstudios3 жыл бұрын
Seems pipeline engines are niche, great illustration surprised your subscriber bases so low, maybe it's to fast passed for some not sure, or maybe unreal engines monopoly on the term Free's eroded the hard work.
@kushagra642 жыл бұрын
Well actually, in the original paper there was a pi