Parallel ID Shadow-Map Decompression on GPU
ULUTEK Technol. Dev. Region, Bogazici Univ., Bursa, Turkey
Ninth International Symposium on Parallel and Distributed Computing (ISPDC), 2010
@conference{diktas2010parallel,
title={Parallel ID Shadow-Map Decompression on GPU},
author={Diktas, E.D. and Sahiner, A.V.},
booktitle={2010 Ninth International Symposium on Parallel and Distributed Computing},
pages={79–84},
year={2010},
organization={IEEE}
}
ID shadow-maps are used for robust real-time rendering of shadows. The primary disadvantage of using shadow-maps is their excessive size for large scenes in case high quality shadows are needed. To eliminate large memory requirements and texture-size limitations of the current generation GPUs, texture compression is an important tool. We present a framework where compressed ID-shadow-maps are used for real-time rendering of static scene shadows. The texture compression is performed off-line on the CPU and real-time decompression is performed on the GPU within a fragment-shader for shadowing the pixels. The use of ID shadow-maps (instead of conventional depth-based shadow-maps) is the key to high compression ratios. The ID shadow-map is compressed on the CPU by first partitioning it into blocks. Each compressed block is packed densely into a global array, while a pointer table is constructed that holds a pointer to the start of every compressed block in the global array. This data organization provides the GPU with a random access to the start of each compressed block thus enables fast parallel decompression. The proposed decompression shader-program and the underlying data structures can be applied to any type of array consisting of integers. The framework is implemented using OpenGL and GLSL.
May 7, 2011 by hgpu