Tesi Robotica Analisi, progettazione e implementazione... | Page 182

i i “LP_Tesi” — 2013/10/17 — 18:27 — page 182 — #182 i 182 i 8. VISUALIZZATORE DISPARITÀ seguente forma: [0, 4, 1, 5, 2, 6, 3, 7, 11, 6, 10, 5, 9, 4, 8, 12, 9, 13, 10, 14, 11, 15]. Ricapitolando, per una mesh che rappresenta un immagine 4x4 pixel sono necessari 16 vertici e 18 triangoli, utilizzando la codifica per gli indici vista prima sono necessari 22 elementi. Per il calcolo di questi valori sono state scritte le funzioni getVerticesCount e getIndicesCount, per quanto riguarda il numero di vertici è facile intuire che il numero di elementi che devono essere presenti nell’array è width∗height∗3, in cui width è il numero di pixel in larghezza e height il numero di pixel in altezza, il moltiplicatore 3 si rende necessario dato che si stanno trattando punti 3D. La legge che regola il numero di indici in funzione dell’altezza e della larghezza è stata invece un po’ più complicata da trovare, ma sperimentalmente si è visto che possiede la seguente forma: (width ∗ height) + (width − 1) ∗ (height − 2). A questo punto in Alg:8.2 è possibile vedere come vengono generati i vertici. Come si può vedere nulla di troppo difficile, si genera semplicemente una griglia Algoritmo 8.2 Generatore di vertici 1 2 3 4 5 6 7 8 9 10 11 float ∗ getVertices ( int width, int height ) { vertices = new float[ getVerticesCount( width, height ) ]; int i = 0; for ( int row=0; row