What is an AABB?

Michael Rubloff

Michael Rubloff

Apr 10, 2023

Email
Copy Link
Twitter
Linkedin
Reddit
Whatsapp
AABB in NeRFs
AABB in NeRFs

When you're playing a video game or watching a movie with 3D graphics, you're seeing objects that are made up of points in a 3D space. To make the graphics look more realistic, the computer needs to know which points are inside the object and which are outside. One way to do this is by using an AABB, which stands for "axis-aligned bounding box."

What is an AABB?

An Axis-Aligned Bounding Box is a rectangular box that fully encloses a 3D object or scene, with its edges aligned with the coordinate axes. It's called "axis-aligned" because the sides of the box are parallel to the three axes of the 3D space: x, y, and z. So, imagine a rectangular box that's aligned with the x, y, and z axes. It serves as an approximation of the object's geometry, simplifying the process of ray-object intersection tests, which are fundamental to rendering. AABB is widely used in computer graphics for various applications, such as collision detection, ray tracing, and visibility culling. In the context of Neural Radiance Fields, AABB helps accelerate the rendering process by efficiently partitioning the 3D space and reducing the number of network queries.

What values can AABB be?

AABB can be 1, 2, 4, 8, 16, 32, 64, or 128. Each time you multiply, you add one more occupancy grid. The first one covers an area of two by two by two. The next 4 by 4 by 4. Next is 8 by 8. Each one contains data, information, and memory, the more occupancy grids you have, and the more VRAM it consumes, and results in a larger file size when saved.

How are AABB's calculated?

The AABB is defined by two points: the point with the lowest x, y, and z coordinates (let's call it Point A), and the point with the highest x, y, and z coordinates (let's call it Point B). These two points determine the size and position of the AABB. You can think of the AABB as a container that holds the object. AABB is a the height, width, and depth of a NeRF subject.

AABBs are useful in 3D graphics for a few reasons. First, they are easy to calculate. You just need to find the minimum and maximum points of the object. This makes them great for real-time applications, like video games, where you need to quickly figure out what objects are visible on the screen.

While NeRF has shown impressive results, rendering a 3D scene using this technique can be computationally expensive, particularly when dealing with large and complex scenes. This is where Axis-Aligned Bounding Boxes come into play. AABB is a simple yet powerful method for optimizing the rendering process, enabling NeRF to handle more complex scenes efficiently.

NeRF uses a neural network to create 3D objects. The neural network is trained on a set of images that show the object from different angles, and it learns to create a 3D model of the object based on those images. However, in order to do this, the neural network needs to know what the object looks like from different angles, which means it needs to know the shape of the object.

When a NeRF renders a scene, it first generates a set of viewing rays that pass through each pixel of the image. The algorithm then samples points along these rays and queries the neural network to compute the radiance and volume density at each point. To optimize this process, AABB is employed to divide the 3D space into smaller regions, or voxels. Each voxel is associated with a bounding box, which helps identify the regions where the viewing rays intersect the scene. By focusing only on the voxels where intersection occurs, the number of network queries is significantly reduced, resulting in a more efficient rendering process.

AABBs are particularly useful in NeRF because they can help speed up the process of training the neural network. Sampling all the points in a large object can take a long time, but by using AABBs to divide the object into smaller regions, NeRF can sample points more efficiently. This speeds up the training process and makes it possible to create 3D models of complex objects more quickly.

Depending on your use case, using a different AABB value be beneficial. For instance, if you are trying to show a small product, utilizing a lower AABB, will not only allow the NeRF to train faster, but will focus on the specific object itself. However, if you are NeRFing a landscape, setting the AABB higher will show the larger area. In some ways, you can relate AABB to aperture in photography.

Apart from accelerating the rendering process, AABB also contributes to improving the quality of the images generated by NeRF. By subdividing the 3D space into smaller regions, the algorithm can adaptively sample points along the viewing rays with higher precision, especially in areas with intricate geometry and varying volume density. In addition to speeding up the training process, this adaptive sampling allows NeRF to produce images with greater detail and fewer artifacts.

You might recognize this box if you've used Luma AI's Guided mode, where it asks the user to manually set the AABB. It also appears in Instant-NGP's code to compile, where the user sets the AABB.

What if I don't have enough VRAM to use a large AABB?

If you're having VRAM issues, use a smaller AABB value.

AABBs are just one of the many tools that NeRF uses to create 3D models of objects. By combining the power of neural networks with the efficiency of AABB, NeRF is revolutionizing the world of 3D graphics. With NeRF, it's possible to create realistic 3D models of complex objects quickly and easily, making it easier than ever to bring your ideas to life in the digital world.

What does AABB stand for?

AABB stands for axis-aligned bounding box.

Featured

Recents

Featured

Research

How EVER (Exact Volumetric Ellipsoid Rendering) Does This Work?

Another Ray Tracing Radiance Field emerges, this time from Google.

Michael Rubloff

Oct 3, 2024

Research

How EVER (Exact Volumetric Ellipsoid Rendering) Does This Work?

Another Ray Tracing Radiance Field emerges, this time from Google.

Michael Rubloff

Oct 3, 2024

Research

How EVER (Exact Volumetric Ellipsoid Rendering) Does This Work?

Another Ray Tracing Radiance Field emerges, this time from Google.

Michael Rubloff

Platforms

DigitalCarbon Joins Y Combinator for Radiance Field Solutions

New company, DigitalCarbon has been accepted into Y Combinator to pursue Radiance Field reconstructions.

Michael Rubloff

Oct 2, 2024

Platforms

DigitalCarbon Joins Y Combinator for Radiance Field Solutions

New company, DigitalCarbon has been accepted into Y Combinator to pursue Radiance Field reconstructions.

Michael Rubloff

Oct 2, 2024

Platforms

DigitalCarbon Joins Y Combinator for Radiance Field Solutions

New company, DigitalCarbon has been accepted into Y Combinator to pursue Radiance Field reconstructions.

Michael Rubloff

Platforms

Chaos V-Ray 7 to support Gaussian Splatting

3DGS is now part of V Ray 7's beta, paving the way for use in platforms like 3ds Max and Maya.

Michael Rubloff

Oct 1, 2024

Platforms

Chaos V-Ray 7 to support Gaussian Splatting

3DGS is now part of V Ray 7's beta, paving the way for use in platforms like 3ds Max and Maya.

Michael Rubloff

Oct 1, 2024

Platforms

Chaos V-Ray 7 to support Gaussian Splatting

3DGS is now part of V Ray 7's beta, paving the way for use in platforms like 3ds Max and Maya.

Michael Rubloff

Platforms

Kiri Engine Gaussian Splatting Blender Add-On

Industry standard platform, Blender is getting another big 3DGS boost. This time from Kiri Engine.

Michael Rubloff

Sep 30, 2024

Platforms

Kiri Engine Gaussian Splatting Blender Add-On

Industry standard platform, Blender is getting another big 3DGS boost. This time from Kiri Engine.

Michael Rubloff

Sep 30, 2024

Platforms

Kiri Engine Gaussian Splatting Blender Add-On

Industry standard platform, Blender is getting another big 3DGS boost. This time from Kiri Engine.

Michael Rubloff