All'inizio sembrava ovvio ... Realizza 2 triangoli per faccia ovunque siano stati trovati 4 indici, giusto?
Significato, il seguente:Convertire i quadrilateri in un file OBJ in triangoli?
v 1.000000 1.000000 0.000000
v -1.000000 1.000000 -0.000000
v 1.000000 -1.000000 0.000000
v -1.000000 -1.000000 -0.000000
f -4 -3 -2 -1
... sarebbe, a loro volta, hanno bisogno di essere convertito in qualcosa di simile:
v 1.000000 1.000000 0.000000
v -1.000000 1.000000 -0.000000
v 1.000000 -1.000000 0.000000
v -1.000000 -1.000000 -0.000000
f -4 -3 -2
f -2 -3 -1
Questo particolare esempio, naturalmente, renderebbe correttamente.
Tuttavia, non tutti i casi sono semplici come suddividere la faccia in due facce (dove la prima faccia contiene i primi tre vertici della faccia originale e la seconda faccia contiene gli ultimi 3 vertici, come nell'esempio precedente). Prendere la seguente cubo, ad esempio:
v 0.000000 1.000000 1.000000
v 0.000000 0.000000 1.000000
v 1.000000 0.000000 1.000000
v 1.000000 1.000000 1.000000
v 0.000000 1.000000 0.000000
v 0.000000 0.000000 0.000000
v 1.000000 0.000000 0.000000
v 1.000000 1.000000 0.000000
f 1 2 3 4
f 8 7 6 5
f 4 3 7 8
f 5 1 4 8
f 5 6 2 1
f 2 6 7 3
Questi volti non possono essere divisi nello stesso modo dell'esempio precedente ... Così, avrei avuto bisogno di un po 'modo di sapere come dividere una faccia quadrilatera in due triangolo facce, durante l'utilizzo degli indici corretti per il secondo volto ...
Come può essere ottenuto? Si prega di notare che NON sto usando la pipeline a funzione fissa, e quindi, l'uso di GL_QUADS NON è un'opzione. Il mio motore di rendering è praticamente bloccato solo usando GL_TRIANGLES.
Capisco la confusione qui, passo la ultimi due giorni cercando di capirlo. Questi non sono QUAD ma strisce triangolari, la documentazione è molto scarsa su questo. – Geoffrey