A Survey of Efficient Representations for Independent Unit Vectors

The bandwidth cost and memory footprint of vector buffers are limiting factors for GPU rendering in many applications. This article surveys time- and space-efficient representations for the important case of non-register, in-core, statistically independent unit vectors, with emphasis on GPU encoding and decoding. These representations are appropriate for unit vectors in a geometry buffer or attribute stream--where no correlation between adjacent vectors is easily available--or for those in a normal map where quality higher than that of DXN is required. We do not address out-of-core and register storage vectors because they favor minimum-space and maximum-speed alternatives, respectively. We evaluate precision and its qualitative impact across these techniques and give CPU reference implementations. For those methods with good quality and reasonable performance, we provide optimized GLSL GPU implementations of encoding and decoding.

In collections

File details
ID Label Size Mimetype Created
OBJ mcguire_j_comp_graphics_tech_2014_002.pdf 18.35 MiB application/pdf 2015-11-13
FULL_TEXT mcguire_j_comp_graphics_tech_2014_002.txt 63.75 KiB text/plain 2015-11-13
TN TN 3.91 KiB image/jpeg 2015-11-13