Costanti altezze banda orizzontali in una mesh poligonale sottoposti a deformazione verticale (OpenGL ES 1.1)

StackOverflow https://stackoverflow.com/questions/512414

Domanda

Nell'attuazione mappatura texture su una mesh poligonale standard utilizzando il solito algoritmo, è possibile eseguire in problematiche legate a deformazioni lungo l'asse y in quanto le deformazioni seguono lungo bande di righe altezza costante di quad invece dei vertici in questa direzione essendo in grado di allungare in modo indipendente rispetto a quella lungo l'asse x.

che sto funzionando in questo perché quando si definiscono i vertici della maglia, ogni riga definisce sia un fondo ed un vertice superiore, causando la fila superiore di vertici per una riga condividere la fila inferiore di vertici per la riga sovrastante .

Mentre questo è ok se si sta solo deformare la mesh lungo gli assi X o z, se deformare la mesh lungo l'asse y senza tener conto di ciò, si vedrà che le file di quad agiscono insieme come una banda di altezza costante anziché di righe di punti indipendenti. Si vedrà deformazione della mesh lungo l'asse y, ma si vedrà anche trama strappo come queste bande non cambiano in larghezza, portando a lacune nella maglia.

Qualcun altro ha eseguito in questo che avrebbe suggerimenti sul modo migliore per applicare un (x, y) filtro mappa di spostamento per una maglia poligonale costruito in questo modo? Oppure l'approccio alla definizione della rete deve cambiare in qualche modo fondamentale?

Un esempio di algoritmo di generazione maglia può essere visto su ZEUS OpenGL | ES Tutorial su Texture Mapping .

Grazie.

È stato utile?

Soluzione

Ok vediamo se ho capito la domanda prima.

Se ho capito bene, si sta cercando di rendere una texture mappato patch. Ma poi quando si sta cercando di strech la patch in direzione verticale così diventa più alto, le diverse fasce orizzontali della tua lacrima di maglia e si finisce con diversi banda orizzontale di patch.

È giusto?

Se è così, il problema è nell'algoritmo di generazione di mesh, il texture mapping stesso deve rimanere invariato. Da quello che posso vedere sul link fornito, i vertici tra ogni fasce orizzontali non sono condivisi, che sono duplicati. Quindi, se si scala la spaziatura tra le top vertici, è inoltre necessario per scalare l'altezza di banda in modo che i vertici di fondo si inserisce la prossima riga in alto vertice.

I fondamentali del lavoro dell'algoritmo, è solo bisogno di regolare sia la spaziatura riga e l'altezza delle righe. Quando si capisce un po 'di più come funzionano le liste primitivi, si potrebbe desiderare di conoscere primitive indicizzate. Coloro che sarà effettivamente permetterà di condividere vertici invece di duplicare per ogni primitiva.

Speranza che aiuta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top