Describir: Interactive computer graphics a top-down approach with shader-based openGL