Programmable Graphics: The future of Interactive Rendering
Recent innovations in computer hardware architecture -- the arrival of multi-core CPUs, the generalization of graphics processing units (GPUs), and the imminent increase in bandwidth available between CPU and GPU cores -- make a new era of interactive graphics possible. As a result of these changes, game consoles, PCs and laptops will have the potential to provide unprecedented levels of visual richness, realism, and immersiveness, making interactive graphics a compelling killer app for these modern computer systems. However, current graphics programming models and APIs, which were conceived of and developed for the previous generation of GPU-only rendering pipelines, severely hamper the type and quality of imagery that can be produced on these systems. Fulfilling the promise of programmable graphics -- the new era of cooperatively using the CPU, GPU, and complex, dynamic data structures to efficiently synthesize images -- requires new programming models, tools, and rendering systems that are designed to take full advantage of these new parallel heterogeneous architectures.