2015-01-05 11 views

risposta

4

Il numero di coordinate di posizione, normale e di trama può essere diverso perché due vertici possono condividere una coordinata in uno spazio ma differire in un altro.

Pensa a una scatola (8 volt) utilizzando 6 diverse forme rettangolari (una per facciata) nello spazio texture -> questo è 6 * 4 = 24 coordinate texture.

Modifica: Una mappa uv comune per una casella si presenta sotto (14 coordinate di trama). Ho annotato tre diversi vertici: A, B e C. Notare che in una casella ogni vertice è adiacente a tre facce che deve essere vero anche nella mappa uv. C ottiene una coordinata della trama adiacente a tre facce, ma è necessario duplicare B e lo standard A è triplicato.

Box-uv

+0

Grazie BeyelerStudios, non so se ho capito cosa intendi. Una scatola ha 8 punti 3D (i nostri vertici). La texture che applico si adatta a tutte le 6 forme. In questo caso una faccia è definita da 4 vertici. Se voglio trovare i valori di rgb per un vertice posso sceglierne più di uno? Scusa, penso di averti torto :( – Chrizzldi

+0

Ah sì, ti capisco! Il fatto, che la texture non ha bisogno di essere in un unico pezzo si traduce in più vtextures di vertici. Grazie! – Chrizzldi

+0

Questa è una spiegazione molto buona, dovresti aggiungere questo a wikipedia. Non lo spiegherò al momento :)! – Chrizzldi

0

ho trovato la fonte del problema. Avevo prematuramente ottimizzato il mio programma e non mi ero reso conto che le coordinate della trama potevano essere di una quantità maggiore rispetto alle coordinate del vertice a causa del fatto che le trame sono mappate per faccia piuttosto che per vertice, quindi ciascun vertice potrebbe avere molte coordinate di trama associate ad esso . Spero che qualcuno imparerà dai miei errori.

Qualcosa ho trovato strano però è stato in fase di inizializzazione di un sf::RenderWindow prima di eseguire il mio .obj parser ha provocato nessun messaggio di errore che sono gettati e l'incidente da segnalare in una zona completamente diverso da quello che è stato realmente accadendo.