Implementing sparse voxel octrees and the ray caster [Voxel Devlog #1]

Поделиться
HTML-код
  • Опубликовано: 22 дек 2021
  • In this video, I describe the development process of my new voxel ray marching renderer. I discuss my choice of graphics API, describe the way I chose to store my data, and show off the results of my ray caster. In the next episode, I hope to optimize accesses to the voxel octree, add textures, and add lighting.
  • ИгрыИгры

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

  • @krstudy9162
    @krstudy9162 2 года назад +38

    Nice video 👍 I would definitely like more code focused video with all concepts like Sebastian lague or jdh does

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

    pretty good video!
    with animations/editing, and better audio, i can totally see this video getting 100k+ views

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

      Thanks! Audio is definitely something on which I will continue to work - right now, I record with a webcam and edit out background noise in Audacity, but that only accomplishes so much. If you enjoyed this episode, please have a look at part #2!

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

    I stumbled upon your other videos so I went back to see this initial video. It's an interesting project and you've made great progress! I'm making an engine that uses Vulkan as well these days to work on a game on my free time. It's complicated for sure, but being on Mac OS, OpenGL wasn't really viable as you mentioned. I'm doing it in C which doesn't simplify matters (who needs dynamic arrays and strings anyway?) in this initial setup but it's a fun challenge

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

    You have my respect for trying that project. I would love to do it but I'm way too easily distracted and scared off by complex problems.

  • @chucktrier
    @chucktrier 2 года назад +4

    I think the slow down is caused be register pressure due to allocation pr thread

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

    Could you provide few resources on rendering voxels using ray marching? I find myself pursuing a similar project where I'm aiming to render clouds using voxels, and I'm having trouble understanding how raymarching would be used to render voxels

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

    march the whole voxel tree at once, with (directionally, axis and diagonals) weighted breadth first search, with shadows, not a ray per screen pixel, and not everything slowly rasterized, all pixels and voxels at once, in once search call

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

      you could also compute shaders in javascript webgl

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

      make the voxels (cells) smaller if you need more detail

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

      mark the wave front pixels (2d) or voxels (3d) dark shadow if they have hit occupied voxel at closest distance, axially or diagonally (weighted)

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

      should work also with the sparse octree voxel representation

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

    Oh my god dude, why do people always have to make this type of content? i see so many dev vlogs. jk but now i gotta binge watch your whole series

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

    5:15 can you provide more information about this? What kind of buffer? Do you have your tree like structure still?

    • @DouglasDwyer
      @DouglasDwyer  5 месяцев назад +1

      In this version, the data was passed as a normal SSBO to the Vulkan compute shader. The data was still encoded as an octree - in fact, the representation of the data on the CPU and the GPU was exactly the same. The octree nodes were packed tightly into the buffer using offsets, and decoded in the shader.
      That said, this approach wasn't particularly fast. The cost of traversing the octree for each read were quite high, and other structures - like brickmaps - are almost certainly a better approach.

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

      @@DouglasDwyer thanks for this information

  • @pchandu1995
    @pchandu1995 6 месяцев назад

    hi @dougas I want to build something with C#, I am working with C# past 6 years i do web development, I want to build some side projects in rendering stuff not even building game engines etcc.
    Which books you recommend ? I need to learn graphics programming, Algorithms and most importantly math. You also talking about optimization stuff which i am also interested in.
    what are those graphics, physics and storage algorithms you are talking about, that sounds so good to my eyers.

    • @DouglasDwyer
      @DouglasDwyer  6 месяцев назад

      Hey there! I would recommend getting started with the OpenTK tutorial and LearnOpenGL. OpenTK is a library that allows you to write graphics code in C#, and it's great for beginners!

  • @Yagir
    @Yagir 8 дней назад

    Can you tell me where you learned all this, what university you graduated from?

    • @DouglasDwyer
      @DouglasDwyer  7 дней назад +1

      I go to Northeastern University. However, there are very few computer graphics courses there - all of my CG knowledge comes from self-teaching! If you want to study CG, learnopengl.com is a good place to start.

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

    a

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

    Also improve your thumbnails kind of looking boring