# Hemicube (computer graphics)

In 3D computer graphics rendering, a hemicube is one way to represent a 180° view from a surface or point in space.

## What is Hemicube?

A hemicube is a data structure used in computer graphics to represent a 180° view from a surface or point in space. It is a cube that has been cut in half along a plane parallel to one of its faces, resulting in six faces. The six faces of the hemicube are divided into different shapes, depending on their aspect ratio. The square face is divided into 4 quadrants, the diamond-shaped face is divided into 2 triangles, and the two rectangles are divided into 4 and 8 rectangles, respectively.
Hemicubes are used in radiosity rendering, a method for calculating global illumination in 3D scenes. Radiosity calculates the amount of light that is reflected from one surface to another, taking into account the shape and material properties of the surfaces involved. Hemicubes are used to store the radiosity information for a hemisphere, which can then be used to calculate the radiosity for the entire scene.
Hemicubes are a relatively efficient way to store radiosity information, and they can be used to render scenes with complex lighting arrangements. However, they can be inaccurate for scenes with very bright or very dark areas.
Here are some of the advantages of using hemicubes in computer graphics:
They are relatively efficient to store and render. They can be used to render scenes with complex lighting arrangements. They are accurate for most scenes. Here are some of the disadvantages of using hemicubes in computer graphics:
They can be inaccurate for scenes with very bright or very dark areas. They can be difficult to implement in some rendering engines. Overall, hemicubes are a useful data structure for representing 180° views in computer graphics. They are efficient to store and render, and they can be used to render scenes with complex lighting arrangements. However, they can be inaccurate for scenes with very bright or very dark areas.

## Shape

Although the name implies any half of a cube, a hemicube is usually a cube cut through a plane parallel to one of its faces. Therefore, it consists of one square face, one diamond shape face, two 2:1 aspect ratio rectangles, and two 1:2 aspect ratio rectangles totaling six sides.
The reason for this specific arrangement of faces is that it allows for a more efficient representation of a 180° view from a surface or point in space. The square face represents the direct view, the diamond-shaped face represents the view from the zenith, and the two rectangles represent the views from the x- and y-axes. This arrangement of faces ensures that all possible directions are represented, and it also allows for a more efficient implementation of radiosity algorithms.
The hemicube data structure was first introduced by Cohen and Greenberg in 1985. They used it to develop a radiosity algorithm that could be used to render complex scenes with global illumination. Since then, hemicubes have been used in a variety of other applications, including environment mapping and reflection mapping.
The hemicube data structure is a relatively simple data structure, but it is very efficient for representing a 180° view. Hemicubes can be used to render scenes with complex lighting arrangements, including scenes with shadows and reflections. Hemicubes can be used to implement radiosity algorithms, which are used to calculate global illumination in 3D scenes. Hemicubes can also be used for environment mapping and reflection mapping.

## Uses

The hemicube may be used in the Radiosity algorithm or other Light Transport algorithms in order to determine the amount of light arriving at a particular point on a surface.
The hemicube may be used in the Radiosity algorithm or other Light Transport algorithms in order to determine the amount of light arriving at a particular point on a surface. The Radiosity algorithm is a method for calculating global illumination in 3D scenes. Global illumination is the process of taking into account the reflections and refractions of light as it travels through a scene. This results in more realistic images, as the light is not simply assumed to travel in straight lines.
The hemicube is used in the Radiosity algorithm to store the view factors for a hemisphere. A view factor is a measure of the amount of light that is reflected from one surface to another. The hemicube is divided into a grid of cells, and each cell stores the view factor for the direction that corresponds to that cell.
When the Radiosity algorithm is run, it uses the hemicube to calculate the amount of light that is arriving at each point on a surface. The algorithm starts at a point on the surface and then traces rays in all directions. The view factors from the hemicube are used to calculate the amount of light that is reflected from each surface that the ray intersects.
The Radiosity algorithm is a computationally expensive algorithm, but it can produce very realistic images. The hemicube is a key part of the Radiosity algorithm, as it allows the algorithm to store the view factors for a hemisphere in a relatively efficient way.
The hemicube was first proposed by Michael F. Cohen and Donald P. Greenberg in their 1985 paper "The Hemi-cube: A Radiosity Solution for Complex Environments". The hemicube has been used in a number of other Light Transport algorithms, including the Progressive Radiosity algorithm and the Monte Carlo Radiosity algorithm. The hemicube can also be used for other purposes, such as environment mapping and reflection mapping. In some cases, a hemicube may be used in environment mapping or reflection mapping.