Fondamentalmente, ho 2 triangoli che appaiono leggermente diversi nel colore (sembra un problema di illuminazione a causa di normali non corretti). Ma non credo che questo è il caso ...Rendering poligono casella w/normali che mostrano luci/colori strani
dettagli
Ho un semplice cubo (box), in cui ogni faccia è composta da 6 vertici utilizzando un vertex buffer (non sto usando un buffer di indice al momento).
Oltre ai miei vertici ho definito i valori normali per ogni faccia.
Tuttavia, sembra che qualcosa sia leggermente sbagliato con le normali (che non credo ci siano problemi) e/o con l'illuminazione.
Ciascuna faccia è tracciato usando WebGl.drawArrays utilizzando TRIANGLE_STRIP. L'immagine mostra la faccia anteriore del cubo. Di seguito sono riportati i suoi vertici (si noti che l'origine è l'angolo in alto a sinistra della faccia anteriore):
0, 1, 0,
0, 0, 0,
1, 0, 0,
1, 0, 0,
1, 1, 0,
0, 1, 0
Di seguito sono le sue normali:
0, 0, 1,
0, 0, 1,
0, 0, 1,
0, 0, 1,
0, 0, 1,
0, 0, 1
Domanda
Qualche idea per cui il 1 ° triangolo è più chiaro del secondo triangolo?
Probabilmente questo non risolverà il problema, ma dovresti usare TRIANGLES invece di TRIANGLE_STRIP se hai 6 vertici per faccia. Per usare TRIANGLE_STRIP hai bisogno di 4 vertici, dal tuo array sarebbero 1 °, 2 °, 3 ° e 5 ° linea. Prova a risolvere il problema dal momento che stai attualmente disegnando 4 triangoli per facciata anziché 2. –
Mostraci il codice responsabile del disegno degli array. Anche se i dati normali possono sembrare corretti, può accadere che i dati passati allo shader siano errati. Condividi un po 'di codice, perché scommetterei i miei soldi su dati normali cattivi. – Elvithari
@Matic. Prenderò in considerazione l'idea di andare ai triangoli. Lo uso perché desidero che il mio cubo assomigli a una finestra wireframe quando si utilizza LINE_STRIP (nessuna linea diagonale). – AlvinfromDiaspar