ho bisogno di avere un emisfero in OpenGL. Ho trovato una funzione drawSphere, che ho modificato per disegnare la metà dei lats (che finisce per disegnare la metà della sfera), che è quello che volevo. Lo fa correttamente.OpenGL emisfero Texture Mapping
Tuttavia, non so cosa dovrei fare con glTexCoordf per ottenere il corretto posizionamento delle trame su questa mezza sfera. Io non sono davvero grande con OpenGL, e ho provato innumerevoli varianti, ma non riesco proprio a trovare le texture per visualizzare correttamente su di esso.
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();
}
}
Qualcuno ha idea di quali valori dovrei inserire? O cosa devo calcolare per questo?
Grazie!
In generale, una trama quadrata non può essere direttamente mappata su una sfera (emi); ci sono diverse possibilità. Com'è la tua texture? – Thomas
È per un semplice gioco di pacman, quindi anche la consistenza di un solido giallo va bene, forse una cosa gialla con gli occhi puntati su di esso. Non è niente di speciale. – Paul