Real time collision detection is required by almost all computer graphics applications. However, the problem of real time collision detection is yet to be solved between complex objects. With the recent advent of high performance graphics processing units (GPUs), a dramatic shift is being seen in the traditional idea that general-purpose computation can only be performed by CPUs. This paper explores to solve the problem of real time collision detection between complex objects using programmable GPUs. The algorithm maps the computation of collision detection between two arbitrary objects onto programmable GPUs to match their parallel architectures, and produces on the fly the collision detection results via real time rendering. To do so, the problem is first converted into the problem of finding intersections between a collection of line segments and a set of triangles to realize the migration of collision detection algorithms to programmable GPUs. Based on reasonable analyses of the algorithm complexity, two optimized techniques is presented to improve its efficiency. Experimental results have shown that the optimized algorithm is advantageous over other current collision detection algorithms implemented in image space regarding efficiency, accuracy as well as practicability.