Try a more accurate z-interpolation got gpSetImageHLineZBuff?