Concurrent Binary Trees (paper presentation)

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 พ.ย. 2024

ความคิดเห็น • 16

  • @fenhryl8290
    @fenhryl8290 ปีที่แล้ว +11

    KSP2 devs just announced they will be replacing their old terain generation algorithm with this one as it their main performance bottleneck at release, and it looks really promising!

    • @aaronspacee
      @aaronspacee ปีที่แล้ว +1

      came here just to say that man, looks very promising!!!

  • @vertoxy5420
    @vertoxy5420 ปีที่แล้ว +2

    This really helped me understand CBT

  • @ianmcglasham
    @ianmcglasham 2 ปีที่แล้ว +1

    You are a research scientist at Unity! How exciting!

  • @manapotion1594
    @manapotion1594 3 ปีที่แล้ว +2

    Beautiful solution, great explanation. Many thanks : )

  • @daveyhu
    @daveyhu 2 ปีที่แล้ว +1

    Very nice indeed. Wondering how one would use this with landscape tiles for implementing a landscape system in a game. Can the landscape be split into uniform sized tiles and if so would the resulting tiles be seamless with regards to tessellation/LODs? The goal is to be able to use different shaders per tile.

  • @pacozalky721
    @pacozalky721 ปีที่แล้ว

    It's not clear to me how to parallel propagate subdivision into neighboring triangles. Is there a way how to avoid recursive subdivision on half-edges of main mesh triangles?

  • @НиколайШироков-т7л
    @НиколайШироков-т7л ปีที่แล้ว

    Thanks for the awesome video! As far as I understood, you store cbt buffer in GPU memory and looping it in parallel. If the LOD will be big, isn't it really an issue to loop potentially huge amount of nodes and recalculate sum reduction ? And I don't clearly understand from demo, how and where you scale geometry with "PixelsPerEdge" parameter. Does it connected to LOD level and can it be somehow cached ?

  • @ianmcglasham
    @ianmcglasham 2 ปีที่แล้ว

    Just dropping by again to rewatch. Still great! Lol

  • @DarkDrakman
    @DarkDrakman 3 ปีที่แล้ว +2

    Excellent presentation, such an easy to understand explanation of the algorithm!
    I'm curious in practice in what way the result of the algorithm (in GPU memory) is used to generate geometry.

    • @jdupuy01
      @jdupuy01  3 ปีที่แล้ว +2

      Thank you :)
      My paper explains how to generate the geometry from the CBT. You can also have a look at my code here: github.com/jdupuy/LongestEdgeBisection2D/blob/master/terrain/shaders/TerrainRenderCommon.glsl#L33

    • @kunkerkar
      @kunkerkar 3 ปีที่แล้ว +2

      @@jdupuy01 will this be implemented inside the unity game engine? Because this will be really great for creating huge open world games inside unity

    • @jdupuy01
      @jdupuy01  3 ปีที่แล้ว +3

      @@kunkerkar It is currently being considered for integration. For more information see this talk "Experimenting With Concurrent Binary Trees for Large-scale Terrain Rendering" advances.realtimerendering.com/s2021/index.html

  • @ianmcglasham
    @ianmcglasham 2 ปีที่แล้ว

    I dont think I fully understand. Is this used in conjunction with tesselation shaders or is it a complete solution by itself?

    • @jdupuy01
      @jdupuy01  2 ปีที่แล้ว +3

      It's a complete solution by itself, which is meant to provide an alternative to tessellation shaders. The main benefit of this approach compared to tessellation shaders is that it allows you to cache your scene's geometry. This is useful whenever you have rendering algorithms that require multiple passes over your scene geometry (e.g., shadow mapping, Z prepass, path tracing, visibility buffering, etc.). With tessellation shaders, you would have to recompute the geometry at each pass. Here, you don't have to. Also, you have a very fine control over the adaptivity of the mesh.
      Hope this is clear :)

    • @ianmcglasham
      @ianmcglasham 2 ปีที่แล้ว

      @@jdupuy01 That is very clear. Thank you. What a fantastic solution!