 # Drawing texture on a 3d sphere[lwjgl 3]

Hello, Im trying to draw a texture(earth, sun, doesn’t really matter) on a 3d sphere, and I just can’t really figure how to do it, whenever I try to do it I get the following result:

I’ll post some code that explains a bit what I do:

This is my drawSphere method:

``````	public void drawSphere(float radius) {
final float PI = 3.141592f;
float x, y, z, alpha, beta; // Storage for coordinates and angles
for (alpha = 0.0f; alpha < Math.PI; alpha += PI / gradation) {
for (beta = 0.0f; beta < 2.01 * Math.PI; beta += PI / gradation) {
x = (float) (radius * Math.cos(beta) * Math.sin(alpha));
y = (float) (radius * Math.sin(beta) * Math.sin(alpha));
z = (float) (radius * Math.cos(alpha));
glVertex3f(x, y, z);
x = (float) (radius * Math.cos(beta) * Math.sin(alpha + PI / gradation));
y = (float) (radius * Math.sin(beta) * Math.sin(alpha + PI / gradation));
glTexCoord2f(x, y);
glVertex3f(x, y, z);
}
glEnd();
}
}
``````

This is my rendering method from my “Star” class:

``````	public void render() {
rotation += rotationSpeed;
glPushMatrix();
glRotatef(90, 1, 0, 0);
glRotatef(5, 0, 1, 0);
glRotatef(rotation, 0, 0, rotation);
glTranslatef(distance, distance, 0);
if (translate) {
glTranslatef(x, y, z);
}
glEnable(GL_TEXTURE_2D);