EARenderer - OpenGL / C++ 3D Engine | Global Illumination, Physically-Based Shading

Поделиться
HTML-код
  • Опубликовано: 22 янв 2025

Комментарии • 66

  • @snesmocha
    @snesmocha Месяц назад

    Such a cool project

  • @b0rt3ck63
    @b0rt3ck63 4 года назад +4

    looks great, man

  • @juke_crusader
    @juke_crusader 5 месяцев назад

    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

    • @pavlo2692
      @pavlo2692  5 месяцев назад

      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

    • @juke_crusader
      @juke_crusader 5 месяцев назад

      @@pavlo2692 thank you! Also, nice renderer, very inspiring work. I'd like to create my own someday

  • @tokyospliff
    @tokyospliff 2 года назад +2

    Also insane. Can the surfels be generated realtime? on skinned meshes for example, without visible flicker?

    • @pavlo2692
      @pavlo2692  2 года назад

      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

    • @tokyospliff
      @tokyospliff 2 года назад

      @@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.

  • @sbn0671
    @sbn0671 5 лет назад +4

    Where can we learn these advanced topics? Can you please share us your'e learning books/papers?

    • @pavlo2692
      @pavlo2692  5 лет назад +5

      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

    • @SeppahBaws
      @SeppahBaws 5 лет назад +2

      @@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.

  • @123drakus
    @123drakus Месяц назад

    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.

    • @pm-u3b
      @pm-u3b Месяц назад

      Well, I have a Windows project as well. That one is DX12 though.

    • @123drakus
      @123drakus Месяц назад

      @@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.

    • @pm-u3b
      @pm-u3b Месяц назад

      @@123drakus Best of luck ;)

  • @TheMrKeksLp
    @TheMrKeksLp 2 года назад

    Damn, nice work!

  • @TheTurner567
    @TheTurner567 4 года назад +1

    Awesome!

  • @cmedia425
    @cmedia425 Год назад +2

    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?

    • @pavlo2692
      @pavlo2692  Год назад +3

      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.

    • @mcan-piano4718
      @mcan-piano4718 Год назад

      @@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.

    • @mcan-piano4718
      @mcan-piano4718 Год назад

      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

    • @pavlo2692
      @pavlo2692  Год назад +2

      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

    • @mcan-piano4718
      @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

  • @totrp
    @totrp 8 месяцев назад +1

    Wow, very smooth
    How long have you been programming for

    • @pavlo2692
      @pavlo2692  8 месяцев назад +1

      Thanks :) Started to learn coding in 2011. First job - 2014.

  • @thehambone1454
    @thehambone1454 Год назад

    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.

    • @pavlo2692
      @pavlo2692  Год назад +1

      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.

  • @coderflowerdev
    @coderflowerdev Год назад

    Very nice!

  • @thehambone1454
    @thehambone1454 3 года назад +1

    This looks great, do you know where I could learn about (and how to implement) GI?

    • @thehambone1454
      @thehambone1454 3 года назад +1

      oh, looks like others asked, I will refence those comments.

    • @pavlo2692
      @pavlo2692  3 года назад +2

      ​@@thehambone1454If you want ray traced GI, then check out my other project :) ruclips.net/video/1oZw7PCOC2E/видео.html

    • @newbiehype
      @newbiehype Год назад

      Can you tech me how to implement it. I'm a beginner.

  • @andraskmeczo575
    @andraskmeczo575 5 лет назад +6

    Wow! Awesome! What hardware do you have, and how it performs? I'd like to compare it to ray tracing. Thanks for answering!

    • @pavlo2692
      @pavlo2692  5 лет назад +5

      This was run on GTX 1080, 1080p@60

    • @pavlo2692
      @pavlo2692  5 лет назад

      Egleson Beltran yes

  • @syntaxed2
    @syntaxed2 4 года назад +3

    What is the Global Illumination model/algorithm/design called? Ive never heard of surfels before and am interested :D

    • @pavlo2692
      @pavlo2692  4 года назад +7

      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

    • @syntaxed2
      @syntaxed2 4 года назад +1

      @@pavlo2692 Wow, nice information, thank you and well done :D

  • @fangliu125
    @fangliu125 Год назад +1

    Sooo great bro! I am also doing a openGL renderer engine by Qt. Thank you for your sharing!

  • @newbiehype
    @newbiehype Год назад

    How do you run this project code ?

    • @pavlo2692
      @pavlo2692  Год назад

      It's been forever. I don't remember anymore :(. Intel TBB was required, but I can't guarantee that the new versions are compatible.

    • @newbiehype
      @newbiehype Год назад

      @@pavlo2692 like basic information. Do we have to run it Visual studio ?

  • @thehambone1454
    @thehambone1454 2 года назад

    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?

    • @pavlo2692
      @pavlo2692  2 года назад +1

      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 :(

    • @thehambone1454
      @thehambone1454 2 года назад

      @@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?

    • @pavlo2692
      @pavlo2692  2 года назад +1

      @@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.

    • @thehambone1454
      @thehambone1454 2 года назад

      @@pavlo2692 will do! Thank you!!

    • @thehambone1454
      @thehambone1454 2 года назад

      @@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. :)

  • @tootaashraf1
    @tootaashraf1 3 года назад

    3:51 WOW

  • @JaimieX
    @JaimieX 3 года назад +2

    How long did it take you to learn all this?

    • @pavlo2692
      @pavlo2692  3 года назад +3

      This particular project took 2 years. Although, I wasn’t working full time on it since I had a job at the same time

    • @JaimieX
      @JaimieX 3 года назад +2

      @@pavlo2692 cool! How much OpenGL and c++ experience did you have before this?

    • @pavlo2692
      @pavlo2692  3 года назад +3

      @@JaimieX OpenGL - none. C++ absolute basics from university times

  • @antonstafeyev3606
    @antonstafeyev3606 4 года назад

    Slidy is that yours ?

  • @joysaha3927
    @joysaha3927 2 года назад

    Model name?

  • @alexvolkov6269
    @alexvolkov6269 5 лет назад

    Like a simple sceine in unity. When using HDRP assets.

  • @nslvip
    @nslvip 6 лет назад

    May I ask if you could tell me how to use this with Cinema 4D please...

    • @pavlo2692
      @pavlo2692  6 лет назад

      Hello. Probably not, because I've never worked with Cinema 4D. Though I'm not completely sure what you meant there, specifically.

  • @狗子韭菜
    @狗子韭菜 7 месяцев назад

    厚礼蟹

  • @tyoyusuf8501
    @tyoyusuf8501 5 лет назад

    Go to bor eo