@Override
    public void draw(GL2 gl) {
        if(skyTexture == null) {
            loadTexture(textureToLoad);
        }
        if(parentPanel != null) {
            GLU glu = GLU.createGLU(gl);
            
            if(skyTexture != null) {
                skyTexture.enable(gl);
                skyTexture.bind(gl);
            }
            
            GLUquadric quadric = glu.gluNewQuadric();
            
            // Erzeugen damit Texture gerundet gemapt werden kann
            glu.gluQuadricTexture(quadric, true);
            glu.gluQuadricOrientation(quadric, GLU.GLU_INSIDE);

            /* auskommentiert, da dies leider Fehler verusacht*//*gl.glDisable(GL2.GL_DEPTH_TEST);
            gl.glDepthMask(false);*/

            gl.glPushMatrix();

            // Rotieren, damit der Begin der Kugel oben ist
            gl.glRotatef(90f, 1, 0, 0);
            
            // Schneide ab der Mitte durch
            double[] clipPlane2 = {0.0f, 0.0f, -1.0f, 0.5f};
            gl.glClipPlane(GL2.GL_CLIP_PLANE2, clipPlane2, 0);
            gl.glEnable(GL2.GL_CLIP_PLANE2);
            
            
            // Zeichnen der Spehere, ausschalten vom clipping
            glu.gluSphere(quadric, 20, 200, 15);
            gl.glDisable(GL2.GL_CLIP_PLANE2);

            if(skyTexture != null) {
                skyTexture.disable(gl);
            }
            gl.glPopMatrix();

            // s.o. 
            //gl.glEnable(GL2.GL_DEPTH_TEST);
            //gl.glDepthMask(true);
        }
    }