Animated Sparse Voxel Octrees: In-depth pt1/3

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

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

  • @KokoRicky
    @KokoRicky 13 лет назад +4

    Thanks so much for making the effort to articulate your words. There are plenty of native English speakers who just slur their words together. Anyway, cool stuff, I love voxels.

  • @mattshu
    @mattshu 8 месяцев назад

    Omg I just realized this vid is 12 years old. You definitely had future insight back then!

  • @dennisrkb
    @dennisrkb  12 лет назад +6

    There are many possibilities. You can always do super-sampling (rasterize the scene at a higher resolution/raycast more than one ray per pixel). Generally, raycasting will offer more sophisticated filtering techniques to hide aliasing (e.g. quadrilinear filtering around the hit voxel, etc.)

  • @JoshuaThong
    @JoshuaThong 12 лет назад

    Thank you for your articulate explanation! You really helped me understand how and why octrees are used for voxels.

  • @dennisrkb
    @dennisrkb  13 лет назад +2

    @ObeseRacoon I love rasterization, especially screen space techniques, which rasterization kind of favors. Tessellation makes it possible to add non-height field mesostructural details to geometry which is cool, but costly. In general, I use the right tool for the job and considering how elaborated polygon graphics are, alternative technologies have a hard time competing with them. But I think that voxels still have some things to offer which polygons don't, so I research them further.

  • @Nexfluts
    @Nexfluts 13 лет назад

    These videos are great thank you very much for taking the time to make them. Best explanation on the internet.

  • @descai10
    @descai10 8 лет назад

    For those wondering, this is what is used to make AtomontageEngine (obvious since featured in this video ) and euclideon possible.

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

    4:3 aspect ratio videos for the win. ;-D Not only full-sceen on iPad, but easier to watch on a 16:9/16:10 computer screen without consuming a whole screen (leaving room for a browser window, code editor, etc,)

  • @dennisrkb
    @dennisrkb  13 лет назад

    @archon808 The star is just an example to illustrate how SVOs work. Voxels are more memory efficient than triangles when used to represent objects with great mesostructural detail (when the pixel : triangle-ratio approaches 1 : 1) which the star is not. When it comes to representing objects with low mesotructural detail (like flat surfaces, when the pixel : triangle - ratio is very high), triangles are more memory efficient than voxels.

  • @wrburdick
    @wrburdick 13 лет назад

    Dude, this is great work! I can't wait for parts 2 and 3!

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

    A voxel isn't necessarily a cube, though a regular grid will typically subdivide into cuboid volumes. So even if it is practically the most common and obvious case, maybe there are many breakthroughs to be made if we can imagine voxels in a higher level than just "cubes"

  • @osakanone
    @osakanone 13 лет назад

    @archon808
    It depends. If the object is organic in nature, it works.
    If the object is artificial, nurbs tend to do a better job in conjunction with weight mapping.
    I think in the future, we'll be using different technologies to do different things.

  • @sepidar666
    @sepidar666 13 лет назад

    Thank u very much for this video. It was very educational for me.

  • @anzatzi
    @anzatzi 10 лет назад

    great overview. thanks!

  • @dennisrkb
    @dennisrkb  13 лет назад

    @2mustange Using "Deferred Shading" you can very easily render voxel and polygon content side by side (and even let them interact with each other visually (like cast shadows on one another)).

  • @UltimatePerfection
    @UltimatePerfection 11 лет назад +1

    You can always render voxels that are nest to air as slopes.

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

      Yeah people act like voxels need to be rendered as cubes. With good density they can just be rendered pixels but low density could be cool stylistically if they were smoothly rendered

  • @johnsherfey3675
    @johnsherfey3675 8 лет назад +4

    Question why can't I just have the octree Interpolate between two similar but diffrent octrees?

    • @Xeloboyo
      @Xeloboyo 7 лет назад +1

      ?

    • @edk.2045
      @edk.2045 6 лет назад

      For animation? You can, but if you want a fully destructible game, including destructible people, then the solution he mentions is better.

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

    Good stuff.

  • @ObeseRacoon
    @ObeseRacoon 13 лет назад

    Wow thanks for making this very informative.
    I was wondering what you think of hardware tessellation + rasterization?

  • @MrMonkeybat
    @MrMonkeybat 12 лет назад

    Are sparse branching octree's used to store and find the vertex points in polygon engines?

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

    Damn 11 years ago.

  • @Harpreet06
    @Harpreet06 13 лет назад

    did you mean a square instead of a rectangle?

  • @wvhdogg
    @wvhdogg 12 лет назад

    how would you anti-alias this? just render 1 depth extra and interpolate?

  • @UltimatePerfection
    @UltimatePerfection 12 лет назад

    So essentially voxel is 3D pixel, am I right?

  • @stickfigure42
    @stickfigure42 12 лет назад

    Yup!

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

    octree is an acceleration structure for a triangle source data

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

      you then jump into the actual source data, through pointers

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

      no problem when going really close

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

      no need to throw detail out

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

      you dont have to calculate the octree all the way down, you just need the intersection point with the geometry

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

      its kinda cheating what planes and triangles to check in the ray tracing algorithm

  • @Zudomon
    @Zudomon 8 лет назад

    Voxels vs polygons are like bitmap vs vector.
    How can it be memory efficient, when this is the most limited factor?
    If you take the 2d star example. How many bits do you need to save such a shape as vector graphic?
    You can't have unlimited detail, because you have not unlimited memory... and even if you save only the surface by LTC or SVO, you need the memory for the surface. So double the resolution will quad to oct your memory.
    I am still not sure, wether voxels are the future, like some genius predict us.
    I am excited how much memory a Quake 3 level would take, if you use voxels instead of polygons in atomontage resolution.

    • @dennisrkb
      @dennisrkb  8 лет назад +4

      Depends on the topography of your object. Flat surfaces can be represented more efficiently with polygons. 3D, non-parametric fractals can be represented more efficiently (memory-wise) with voxels.

    • @Zudomon
      @Zudomon 8 лет назад +1

      Okay, that's right... but in most non fractal cases the voxels should use more memory. You talked about foliage in the last video, but you show a polygon scene. So do you know any voxel foliage? I can't imagine that, because a grass blade or leaf must be very detailed for that.

    • @johnsherfey3675
      @johnsherfey3675 8 лет назад

      Zudomon Jon Olick does euclideon better.

    • @Bestmann3n
      @Bestmann3n 7 лет назад

      have fun deforming and animating models made of voxels...

  • @dennisrkb
    @dennisrkb  13 лет назад

    @Harpreet06 oh yeah thx

  • @UltimatePerfection
    @UltimatePerfection 11 лет назад

    *near to air, gah...

  • @sergrojGrayFace
    @sergrojGrayFace 11 лет назад

    watch?v=YI4rEnB6pPs - accompanying paper states that 1 bit per octree node is theoretically impossible.

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

    so let me get this straight.....each box has 8 children and each child has the potential to each have 8 children, and you just choose to render that generation or that child?

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

      You're approximating arbitrary shapes by sub-dividing the bounding cube around it evenly in 8 sub-cubes and you repeat this process recursively. After enough steps the voxels become sufficiently small to accurately approximate smooth surfaces even though they are cubical (the same way you can't make out individual polygons in a sufficiently high-resolution mesh - it appears smooth). For rendering, you start at the root node, and, as long as its too large to be displayed, you recurse into the children and so forth. Once the projected size of a voxel becomes ~1px you can stop traversing the tree and draw the voxel. Check out ruclips.net/video/fGMu5kDNKU8/видео.html

  • @_zproxy
    @_zproxy 13 лет назад

    Demoguy needs a better mic!

  • @archon808
    @archon808 13 лет назад

    Voxels are not memory efficient. Obviously it would take less memory to store the star as 8 triangles. The same LOD quadtree method can be applied to triangles, so LOD is not a advantage of voxels. And streaming has nothing to do with voxels vs triangles. Voxels are a waste of memeory, and time.

  • @UltimatePerfection
    @UltimatePerfection 11 лет назад

    As I thought, 3d pixel.

  • @apothecary0
    @apothecary0 12 лет назад

    haha...Screenshit 4:49

  • @as12df12
    @as12df12 6 лет назад +2

    "Voxels are little cubes. Nothing more, nothing less".
    I can't believe you're starting off an "in-depth explaination" with something so blatantly factually wrong.

    • @dennisrkb
      @dennisrkb  6 лет назад +4

      Hey as12 this is a simplified version of my thesis work tailored to non-technical people.

    • @as12df12
      @as12df12 6 лет назад +2

      Okay, but I would still argue that spreading simplifications that lead to pervasive and hard-to-get-rid-of misconceptions is not a good thing. At the very least, instead of claiming "nothing more, nothing less" you could have said something along the lines of "actually it's more complicated than that, but this notion will do for our purposes". Just saying...

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

      @@dennisrkb I think to that you should correct this video.