Well, I'm still here, even though the video is old ;) The scene is called Sponza. The single most popular scene between studying graphics programmers :P
No in this project, no. But generally yes, you can use gbuffer data to quickly generate surfels in real time. Check this out ruclips.net/video/h1ocYFrtsM4/видео.html
@@pavlo2692 Wow, that's pretty impressive and very elaborate. I feel like by the time it'd take me to implement it GPUs would have advanced pass the point of needing it.
Hi. Check out a topic I created www.reddit.com/r/opengl/comments/andaa1/want_to_share_a_renderer_i_made_to_educate_myself/ You also may want to look at the comment section, I've answered several questions there
@@pavlo2692 This is funny. I stumbled across this video while searching for some OpenGL PBR rendering, turns out I already saw your reddit post back when you posted that.
@@pm-u3b i have followed you man everywhere when in future when i am done learning basic of computer graphics with opengl as my starting api, i would definitely look at how you do stuff in your marvelous renderers but that is in very distant future.
Amazing work, very impressive. I am working on my own openGL renderer as well. Based on your knowledge of dynamic GI, do you believe unreal engine's lumen is the leading solution for real-time GI? How does this render differ from unreal engine 5's lumen renderer at its core?
Thank you. "lumen is the leading solution for real-time GI" - I think so. Lumen is ray tracing, it's just that it uses signed distance fields as acceleration structures and it uses clever caches to combat noise. Still, their solution is of much higher quality compared to these sparse GI probes, that can only work when signal frequency is low (diffuse surface lighting, where there are no sudden changes in appearance) and are notorious for light leaks. As you might know, for Lumen you can use HW-accelerated ray tracing, which basically means the triangle-based, high precision acceleration structures will be used.
@@pavlo2692 May I ask why noone try to apply similar methods used in LUMEN onto GI methods like this, since UE is not secretive about telling optimizations or smart ways they use, they explain many things about LUMEN and seem not worried about someone stealing their methods. A smart person or a big company would easly inspire for similar methods even if its not exactly same. So why we didnt see anyone trying to do that? Instead we usually see people still develop methods that doesnt combine various methods ? SDFGI or surgel gi or DDGI doesnt seem to use optimizations or multiple techniques like LUMEN (such as lumen include many techniques and ways like CARDS, SDF, SSGI ) so it always end up with light leaks. I watched many videos of single systems like SDFGI of Godot, DDGI, Surfel GI of EA, and UNIQINE Panaroma GI, they seem to have light leaks or issues.
May I also ask what do u mean by low signal frequency? u mean this GI method dont caclulate reflections while lumen calculate both dffuse and reflections? By the way, I m curious u have good knowledge, Are u a developer of EA renderer? U seem to test many different GI methods and make renderers for it. So I got confused :D I wish BLENDER also had someone like you to apply a realtime GI method. You are really good at it ...@@pavlo2692
It only might seem easy on paper, but these type of combined technologies in big engines are hard to implement, lots of work. In real production environments you start to hit lots of corner cases. Whatever Epic shows in public presentations is just not enough to copy-paste a solution, the juiciest details are not packed in those. It's really not easy to just throw out the lighting architecture from an existing engine and replace it with something completely new, it's all too tightly integrated, especially in the big ones.@@mcan-piano4718
@@pavlo2692 I understand noww, so u mean the concept is easy to understand but when u try to code it in a way that it works well and performant And how it interact with GPU and scene might be hard to solve to make it work smoothly cuz every single code can break things if u cant solve those small problems, Epic games must be smart then :DD Thank youu for great explanation!! now I know whyyy
Another year later and another annoying question (well, maybe, ha); Do you most games/game engine "bake" GI into textures? I would imagine most do since they are real-time.
The industry (AAA that is) is moving away from baking and been doing that for years. Sure, baking is still a good tool in certain scenarios, but generally it's all about ray tracing in real time now. And what's typically called GI requires not that many rays.
Hi. I'd recommend to start with this www.davidkuri.de/downloads/SIC-GI.pdf and then proceed to jcgt.org/published/0005/04/02/. It is what I've implemented, but not to the full extent though. Ubisoft's The Division uses a similar probe-surfel system, which is described here: ruclips.net/video/04YUZ3bWAyg/видео.html
A year later and I have another annoying question: do the papers you recommended in previous comments also discuss the sky itself? I can only kinda see it in some frames but looks nice. Is it just a skybox or a progen sky?
I don't remember whether those exact papers discuss the sky. Probably they do. But maybe it was some Call of Duty paper which discussed the sky issue, can't remember. Regarding the second question, I just don't remember anymore :(
@@pavlo2692 it’s all good! I’m sure with enough googling I can figure something out! I’m still so impressed! Are you done with the world of graphics these days?
@@thehambone1454 Not at all. It's a full time job now. Making an engine at work, so there's no time and no need for side projects :) Look into spherical harmonic product to apply occlusion data, where sky is obstructed. Something that Activision put out years ago. I think that you project the skybox to the spherical harmonics, but to avoid leakage you bake occlusion data into another spherical harmonics and then you take a product of them, effectively shadowing the light in the directions where it's obstructed. Look for SH code in my repo, maybe there are some comments left for that.
@@pavlo2692 follow-up to the follow-up question - You say you have a job now working on an engine?! How cool, would you say learning this low-level rendering code is still very valuable (in terms of getting a job and such), it is not why I am learning it but if it means securing other employment ops then that is just icing on the cake. :)
Such a cool project
looks great, man
Well, the video is 5 years old now, but I'll ask anyway. What's the name of this scene at 0:09? I've seen it in so many 3d graphics demos
Well, I'm still here, even though the video is old ;) The scene is called Sponza. The single most popular scene between studying graphics programmers :P
@@pavlo2692 thank you! Also, nice renderer, very inspiring work. I'd like to create my own someday
Also insane. Can the surfels be generated realtime? on skinned meshes for example, without visible flicker?
No in this project, no. But generally yes, you can use gbuffer data to quickly generate surfels in real time. Check this out ruclips.net/video/h1ocYFrtsM4/видео.html
@@pavlo2692 Wow, that's pretty impressive and very elaborate. I feel like by the time it'd take me to implement it GPUs would have advanced pass the point of needing it.
Where can we learn these advanced topics? Can you please share us your'e learning books/papers?
Hi. Check out a topic I created www.reddit.com/r/opengl/comments/andaa1/want_to_share_a_renderer_i_made_to_educate_myself/ You also may want to look at the comment section, I've answered several questions there
@@pavlo2692 This is funny. I stumbled across this video while searching for some OpenGL PBR rendering, turns out I already saw your reddit post back when you posted that.
I have started learning opengl seeing you work inspire me. i wish your project had windows support. i would have loved to learn from your project.
Well, I have a Windows project as well. That one is DX12 though.
@@pm-u3b i have followed you man everywhere when in future when i am done learning basic of computer graphics with opengl as my starting api, i would definitely look at how you do stuff in your marvelous renderers but that is in very distant future.
@@123drakus Best of luck ;)
Damn, nice work!
Awesome!
Amazing work, very impressive. I am working on my own openGL renderer as well. Based on your knowledge of dynamic GI, do you believe unreal engine's lumen is the leading solution for real-time GI? How does this render differ from unreal engine 5's lumen renderer at its core?
Thank you. "lumen is the leading solution for real-time GI" - I think so. Lumen is ray tracing, it's just that it uses signed distance fields as acceleration structures and it uses clever caches to combat noise. Still, their solution is of much higher quality compared to these sparse GI probes, that can only work when signal frequency is low (diffuse surface lighting, where there are no sudden changes in appearance) and are notorious for light leaks. As you might know, for Lumen you can use HW-accelerated ray tracing, which basically means the triangle-based, high precision acceleration structures will be used.
@@pavlo2692 May I ask why noone try to apply similar methods used in LUMEN onto GI methods like this, since UE is not secretive about telling optimizations or smart ways they use, they explain many things about LUMEN and seem not worried about someone stealing their methods. A smart person or a big company would easly inspire for similar methods even if its not exactly same. So why we didnt see anyone trying to do that? Instead we usually see people still develop methods that doesnt combine various methods ? SDFGI or surgel gi or DDGI doesnt seem to use optimizations or multiple techniques like LUMEN (such as lumen include many techniques and ways like CARDS, SDF, SSGI ) so it always end up with light leaks. I watched many videos of single systems like SDFGI of Godot, DDGI, Surfel GI of EA, and UNIQINE Panaroma GI, they seem to have light leaks or issues.
May I also ask what do u mean by low signal frequency? u mean this GI method dont caclulate reflections while lumen calculate both dffuse and reflections? By the way, I m curious u have good knowledge, Are u a developer of EA renderer? U seem to test many different GI methods and make renderers for it. So I got confused :D I wish BLENDER also had someone like you to apply a realtime GI method. You are really good at it ...@@pavlo2692
It only might seem easy on paper, but these type of combined technologies in big engines are hard to implement, lots of work. In real production environments you start to hit lots of corner cases. Whatever Epic shows in public presentations is just not enough to copy-paste a solution, the juiciest details are not packed in those. It's really not easy to just throw out the lighting architecture from an existing engine and replace it with something completely new, it's all too tightly integrated, especially in the big ones.@@mcan-piano4718
@@pavlo2692 I understand noww, so u mean the concept is easy to understand but when u try to code it in a way that it works well and performant And how it interact with GPU and scene might be hard to solve to make it work smoothly cuz every single code can break things if u cant solve those small problems, Epic games must be smart then :DD Thank youu for great explanation!! now I know whyyy
Wow, very smooth
How long have you been programming for
Thanks :) Started to learn coding in 2011. First job - 2014.
Another year later and another annoying question (well, maybe, ha);
Do you most games/game engine "bake" GI into textures? I would imagine most do since they are real-time.
The industry (AAA that is) is moving away from baking and been doing that for years. Sure, baking is still a good tool in certain scenarios, but generally it's all about ray tracing in real time now. And what's typically called GI requires not that many rays.
Very nice!
This looks great, do you know where I could learn about (and how to implement) GI?
oh, looks like others asked, I will refence those comments.
@@thehambone1454If you want ray traced GI, then check out my other project :) ruclips.net/video/1oZw7PCOC2E/видео.html
Can you tech me how to implement it. I'm a beginner.
Wow! Awesome! What hardware do you have, and how it performs? I'd like to compare it to ray tracing. Thanks for answering!
This was run on GTX 1080, 1080p@60
Egleson Beltran yes
What is the Global Illumination model/algorithm/design called? Ive never heard of surfels before and am interested :D
Hi. I'd recommend to start with this www.davidkuri.de/downloads/SIC-GI.pdf and then proceed to jcgt.org/published/0005/04/02/. It is what I've implemented, but not to the full extent though. Ubisoft's The Division uses a similar probe-surfel system, which is described here: ruclips.net/video/04YUZ3bWAyg/видео.html
@@pavlo2692 Wow, nice information, thank you and well done :D
Sooo great bro! I am also doing a openGL renderer engine by Qt. Thank you for your sharing!
How do you run this project code ?
It's been forever. I don't remember anymore :(. Intel TBB was required, but I can't guarantee that the new versions are compatible.
@@pavlo2692 like basic information. Do we have to run it Visual studio ?
A year later and I have another annoying question: do the papers you recommended in previous comments also discuss the sky itself? I can only kinda see it in some frames but looks nice. Is it just a skybox or a progen sky?
I don't remember whether those exact papers discuss the sky. Probably they do. But maybe it was some Call of Duty paper which discussed the sky issue, can't remember. Regarding the second question, I just don't remember anymore :(
@@pavlo2692 it’s all good! I’m sure with enough googling I can figure something out! I’m still so impressed! Are you done with the world of graphics these days?
@@thehambone1454 Not at all. It's a full time job now. Making an engine at work, so there's no time and no need for side projects :) Look into spherical harmonic product to apply occlusion data, where sky is obstructed. Something that Activision put out years ago. I think that you project the skybox to the spherical harmonics, but to avoid leakage you bake occlusion data into another spherical harmonics and then you take a product of them, effectively shadowing the light in the directions where it's obstructed. Look for SH code in my repo, maybe there are some comments left for that.
@@pavlo2692 will do! Thank you!!
@@pavlo2692 follow-up to the follow-up question - You say you have a job now working on an engine?! How cool, would you say learning this low-level rendering code is still very valuable (in terms of getting a job and such), it is not why I am learning it but if it means securing other employment ops then that is just icing on the cake. :)
3:51 WOW
How long did it take you to learn all this?
This particular project took 2 years. Although, I wasn’t working full time on it since I had a job at the same time
@@pavlo2692 cool! How much OpenGL and c++ experience did you have before this?
@@JaimieX OpenGL - none. C++ absolute basics from university times
Slidy is that yours ?
Model name?
Sponza
Like a simple sceine in unity. When using HDRP assets.
May I ask if you could tell me how to use this with Cinema 4D please...
Hello. Probably not, because I've never worked with Cinema 4D. Though I'm not completely sure what you meant there, specifically.
厚礼蟹
Go to bor eo