Bump mapping is a surface rendering technique to simulate bumped surfaces without changing model geometry. Since it requires intensive computations at every pixel such as normal vector deflection and lighting calculation, its hardware implementation is desirable. However, the operations involved in conventional bump mapping algorithm are not adequate to hardware implementation. Therefore, we propose a simple and efficient algorithm, which directly calculates the inner product of the perturbed normal vector n ' and the halfway vector h. The deflection function is defined by perturbation angles represented in the spherical polar coordinate to reduce its computations. Also the perturbed term n ' h is used as an index to shading look-up tables which enable real-time per-pixel lighting on bumped surfaces. Since our architecture requires few arithmetic units and only 16.75 KB memory size, it can be easily implemented into a single chip renderer. (C) 2001 Elsevier Science Ltd. All rights reserved.