implemented color interpolation and z-buffering