J'ai besoin d'avoir un hémisphère en opengl. J'ai trouvé une fonction drawSphere que j'ai modifiée pour dessiner la moitié du lats (ce qui finit par dessiner la moitié de la sphère) ce qui est ce que je voulais. Il le fait correctement.OpenGL Hémisphère Texture Mapping
Cependant, je ne sais pas ce que je devrais faire avec glTexCoordf pour que les textures soient correctement mappées sur cette demi-sphère. Je ne suis vraiment pas génial avec opengl, et j'ai essayé d'innombrables variations, mais je n'arrive pas à faire apparaître les textures correctement.
void drawHemisphere(double r, int lats, int longs)
{
int i, j;
int halfLats = lats/2;
for(i = 0; i <= halfLats; i++)
{
double lat0 = M_PI * (-0.5 + (double) (i - 1)/lats);
double z0 = sin(lat0);
double zr0 = cos(lat0);
double lat1 = M_PI * (-0.5 + (double) i/lats);
double z1 = sin(lat1);
double zr1 = cos(lat1);
glBegin(GL_QUAD_STRIP);
for(j = 0; j <= longs; j++)
{
double lng = 2 * M_PI * (double) (j - 1)/longs;
double x = cos(lng);
double y = sin(lng);
// glTexCoordf()
glNormal3f(x * zr0, y * zr0, z0);
glVertex3f(x * zr0, y * zr0, z0);
// glTexCoordf()
glNormal3f(x * zr1, y * zr1, z1);
glVertex3f(x * zr1, y * zr1, z1);
}
glEnd();
}
}
Quelqu'un at-il une idée des valeurs que je devrais mettre? Ou ce que j'ai besoin de calculer pour cela?
Merci!
En général, une texture carrée ne peut pas être directement mappée sur une (hémi) sphère; il y a différentes possibilités. À quoi ressemble votre texture? – Thomas
Son pour un jeu pacman simple, si honnêtement même la texture jaune solide serait bien, peut-être une chose jaune avec des yeux là-dessus. Ce n'est rien d'extraordinaire. – Paul