Serve qualche direzione sulla visualizzazione della nuvola di punti 3d usando openGl in C++ (vs2008). Sto cercando di creare una visualizzazione a nuvola di punti 3d con una texture. Ho 3 matrici 2D (ciascuna delle stesse dimensioni 1024x512) che rappresentano x, y, z di ogni punto. Penso di essere sulla strada giusta conopengl nuvola di punti 3d rendering da x, y, z array 2d
glBegin(GL_POINTS);
for(int i=0; i<1024; i++)
{
for(int j=0; j<512; j++)
{
glVertex3f(x[i][j], y[i][j], z[i][j]);
}
}
}
glEnd();
Ora questo carica tutti i vertici nel buffer (credo) ma da qui io non sono sicuro di come procedere. O sono completamente sbagliato qui.
Quindi ho un altro array 2D (stessa dimensione) che contiene dati di colore (valori da 0-255) che voglio utilizzare come texture sulla nuvola di punti 3D e sul display.
Non ho RGB per ogni punto, quindi non posso usare glColor3 * (r, g, b). Sto cercando di usare l'ultimo array (con valori 0-255) come texture per la nuvola di punti 3D. Da GlBegin (GL_POLYGON) lo prendo suggerendo di creare una mesh ???? Di nuovo la domanda è come progredire da ciò che ho sopra. O sto andando nella direzione completamente sbagliata. – user1733628
Bene, il codice precedente disegnerà fondamentalmente una nuvola di punti dai tuoi 3 array di coord. Non esiste un vero "buffer" che viene riempito, si disegna direttamente in modalità immediata. Per i colori: come ho capito, hai un valore di byte senza segno per vertice? Quindi dovresti definire come questi valori rappresentano alcuni colori. Potresti usarli come intensità, oppure puoi usare una tavolozza o qualcosa di completamente diverso. – derhass