The interactive rendering of 3D computer graphics has approached the photorealistic quality, as evident by the vivid shading effects and lush outdoor scenes in recent game engines. Clearly, the traditional 3D graphics APIs are reaching their limits, and the need to switch to more extendable ray-tracing based techniques has arisen. In this work, we explore the fundamental differences between ray tracing based and rasterization based techniques, including how they are supported by the processors and by the programming platforms. We duplicate the typical shading effects in both ray tracing and rasterization, starting from the simple Phong lighting, to slightly more complex Whitted-style shadow and reflection. Although the rasterization-based techniques clearly outperform ray tracing in current generations of graphics processors, we show by more precise quantitative analysis that the performance gaps are not as wide as thought. And the gap may narrow further when the requirement of image quality increases in the future.