⇐ Go Back

  • Rendering

    While rendering voxels appears easy at a glance ("they're just cubes!"), there are actually many, many, trade-offs one has to take into account, mainly depending on the intended visual style and scale of the individual voxels.

  • Vertex Pulling
    Manual vertex streaming for improved memory usage and bandwidth.
  • Rendering: Culling

    In general, (visibility-) culling is the process of limiting the amount of things rendered (both geometry and drawcalls) to manageable levels, so the GPU doesn't go up in flames.

  • Occlusion Culling
    Removal of geometry that is fully hidden behind other geometry.
  • Back Face Culling
    Removal of geometry not facing the camera.
  • Planets

    Just as with the problem of map projection, creating planets shows a fundamental fact with voxels: As they are regular grids, shaping the actual grid into a planet, without distortions or discontinuities, is mathematically impossible. As such, we need to employ different methods depending on what we ultimately want to achieve.

  • Distance Culling
    Removal of geometry that is too far away.
  • Vulkan API
    Modern hardware accelerated rendering API.
  • Vertex Packing
    Manually bit-packing data into vertices for improved memory usage and bandwidth.
  • Frustum Culling
    Removal of geometry that is outside the cameras view region.
  • OpenGL API
    Classic hardware accelerated rendering API.
  • Portal Culling
    Removal of geometry that is not in the same 'room'.
  • Interior Culling
    Removal of geometry hidden within geometry.
  • Raytracing

    Rendering images via raycasting, be it on the CPU or GPU, is a powerful method, especially when it comes to voxels.

  • Cluster Culling
    Replacement of geometry that is too small with lower detail geometry.
  • Face Pulling
    Taking vertex pulling to it's conclusion by streaming ONLY face-data.