OpenGL: generazione di un piano con una sola striscia triangolare

1

Vorrei seguire questa domanda , tranne che io non ho codice da mostrare, quindi ho deciso di chiederlo qui.
Nella domanda collegata, l'OP stava cercando un algoritmo che potesse generare un piano con una sola striscia triangolare OpenGL. Ha trovato una soluzione che funziona quasi perfettamente:

L'ordine dei vertici per la striscia è indicato dalle frecce: 1-5-2-6-3-ecc.
L'unico inconveniente è che genera anche un triangolo non necessario su ogni coppia di righe (nell'immagine: triangoli 4-8-12 e 5-9-13).

Nel caso dell'OP, non era tanto un problema: dal momento che il suo aereo era piatto, ci sarebbero solo pochi artefatti proprio sul bordo della griglia. Tuttavia, voglio disegnare un toroo ( come sono gli aerei e i tori correlati: quando tu " spiega "un toro, ottieni una superficie piatta divisa in quadrilateri). Dove l'OP nella domanda precedente avrebbe solo pochi artefatti su alcuni bordi, avrei triangoli pieni che attraversano la superficie del toro. :(

Ho provato a pensare ad altre soluzioni come questa, che è molto simile:

Ma con questo, invece, i triangoli 7-4-12 e 10-5-13 vengono disegnati due volte.

La soluzione più semplice e a prova di errore che so funzionerà è quella in cui i triangoli vengono separati separatamente da ogni riga:

Tuttavia, temo problemi di prestazioni, e non sarebbe appropriato adottare una simile soluzione .

Invece, c'è un modo per togliere tutti i triangoli dall'aereo in una volta sola e senza triangoli inutili o doppi?
Grazie per il tuo tempo!

    
posta qreon 28.03.2017 - 06:27
fonte

1 risposta

4

OpenGL ha la funzionalità Primitive Restart per disegnare più strisce triangolari. L'idea alla base di questa estensione è di utilizzare un valore di indice speciale per indicare che una nuova striscia deve essere avviata dopo tale indice.

    
risposta data 19.05.2018 - 13:14
fonte

Leggi altre domande sui tag