OPTIMIZING my Voxel Raytracing Engine | Devlog 4

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

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

  • @sexofdistance
    @sexofdistance 2 года назад +45

    voxel 👍

  • @josiahjack455
    @josiahjack455 Год назад +7

    That red cube bouncing around, just having a good ol' time boppin in the bugs, is hilarious!

  • @billynugget7102
    @billynugget7102 2 года назад +29

    I think the problem with ray-tracers is that they don’t have mass appeal like other styles of devlogs do coz i don’t think normal people realise the complexities. Like what your doing/done is super fking impressive and compared to a lot of other you-tubers their games look like childs play. Anyway i think your content is mad af and super inspiring. Hoping for that blow up

    • @frozein
      @frozein  2 года назад +7

      Thank you so much! I definitely hope that raytracing becomes more mainstream, it holds a ton of potential for realtime computer graphics.

  • @oriyadid
    @oriyadid 2 года назад +7

    congrats on 666 subscribers!
    jokes aside, great devlog video as always. voxel 👍

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

      Thank you so much!

  • @netfri25
    @netfri25 2 года назад +12

    I really love this series, its interesting and it inspires me to learn more about computer graphics. I hope i can be as good as you one day!

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

      fun fact: 3dvoxels and 2d versions such as tile based games like mario can be fit into a 1d list

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

      @@danielw9371 ofc, because the memory layout in a computer is a big 1d array

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

      Glad you're enjoying it! And good luck with computer graphics, it's a lot of fun!

    • @darkfllame
      @darkfllame 7 месяцев назад

      ​@@frozeinyeah.. "fun" :) we still cannot debug in shaders 💀

  • @darkfllame
    @darkfllame 7 месяцев назад +2

    hey bro, i'm writing a wrapper for your engine in zig for the funzies because i really like it, but your code is full of "defined undefined behaviour", like when you shift bits of a uint8_t as a uint32_t (which the zig compiler don't like) and i guess you should modify that for overall cleaner code etc.. but this thing brings a ton of errors which is quite annoying, if you'd like i could create a repo and give it to you, or not, i'll of course credit you. I'm also doing a zig wrapper for glad and glfw in the meantime.
    Anyway, your work is still amazing and I couldn't even imagine how many hours you have passed building this awesome looking voxel rendering engine. Very cool *loud dany thumbs up ngl*

    • @frozein
      @frozein  7 месяцев назад

      That's really cool! I guess I'm a C programmer at heart, embracing all sorts of UB haha. Good luck on your project, and thanks for the kind words!

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

    Always excited to see ur videos on my recommended :D

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

    Per-voxel-reflections look pretty cool. Makes me wanna switch to such reflections. ;-)

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

      Glad you like them! I'm going for a very stylized look.

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

    Hooked up already, loving all these devlogs

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

    Awesome work, thanks for posting!

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

      Oh also, have you experimented with sparse DAGs?

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

      @@lemonke8132 Thank you! And no, I haven't experimented with any other acceleration structures, right now I'm just using a shallow grid hierarchy because that was the easiest thing to implement. I'll likely do more exploring in future projects.

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

    Neat stuff, love the raytraced refraction thing, the blocky appearance has some appeal.

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

    voxel be lookin kinda cool

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

    For the next background music, I'd recommend instrumental only, as it's exhausting to listen to two voices at the same time

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

      Sorry about that! I was hoping it would be quiet enough to be unnoticeable. I'll keep that in mind next time.

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

    Nice keep us updated

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

    woot new video :D

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

    very nice!

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

    Would you ever consider giving the game engine PBR support?
    Support something like MaterialX?

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

      Probably not, I already have many options for the materials in my engine and I don't want to overcomplicate things. I'm happy with the style as-is.

  • @somerandomidk7091
    @somerandomidk7091 7 месяцев назад

    did you use any papers / guides / or whatever to help you with that project and it's optimizations ?

    • @frozein
      @frozein  7 месяцев назад

      This paper had quite a few insights about memory usage that were helpful: studenttheses.uu.nl/handle/20.500.12932/20460

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

    i think of a very last optimization : face/voxel/idk culling cuz you're actually computing *all* vertexes for all voxel of a chunk and it's very bad idea (i don't know if you did it but if you didn't : you're welcome)

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

      I am not using rasterization, so no vertices are being computed at all. The voxels are raytraced.

  • @126sivgucsivanshgupta2
    @126sivgucsivanshgupta2 2 года назад +1

    make a discord :D, I love looking at raytracing projects

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

      Thanks! I'll make a discord once I gain some more subscribers, my community isn't really big enough atm.

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

    I am currently working on a raytracing engine in Python. You can expect how it's going...
    Also, how do you do the ray-voxel intersections?

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

      I use a DDA algorithm. This site explains it well (albeit in 2D): lodev.org/cgtutor/raycasting.html

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

    666 subscribers pog

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

    do you have a discord server?

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

      Not at the moment, I'll probably make one once I have more subscribers. There are plenty of computer graphics servers already out there if you're looking for a community!

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

    whats the maximum resolution your engine supports at a decent framerate? i absolutely love voxels but its so hard to optimize for very large and detailed scenes :)

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

      I’m not sure what the “maximum” is but I can tell you this: All of the footage in the video is captured at 1080p and runs at around 200fps. At 4k, the framerate is very poor so I likely can’t render that natively.

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

    What technique do you use for denoising? It looks really good

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

      I don’t do any denoising actually. I cast 1 or 2 rays per voxel per frame and store the calculated lighting in a buffer. Over multiple frames this averages out to make everything look realistic.

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

      ​@@frozein Thank you for answering! I would guess that in the scenes without bright sky above (with only spot lights around the scene or inside building) it is getting much noisier, right?

  • @arl-t8d
    @arl-t8d 2 года назад +1

    Now use vulkan

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

      Planning on learning it sometime soon! Although I will not be porting this project to it.

  • @md.mizanurrahmanxendpdc.369
    @md.mizanurrahmanxendpdc.369 Год назад

    I thought it might be written in rust code

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

      C++ and OpenGL

    • @darkfllame
      @darkfllame 7 месяцев назад

      ​@@frozeinuhm actually 🤓☝️, its C no C++ but yeah, rust is too safe anyway, who would like fighting with the borrow checker for 10 hours when you can just dereference a NULL pointer..