Re: Una lacuna per risolvere un algoritmo di distorsione di un'immagine

Messaggioda Paolone64 » 21/11/2014, 09:41

Funziona! :)
Per ora l'ho provato come programmino in visual basic per verificare l'algoritmo.
Poi lo inseriro' nel codice di rimappatura delle texture in C.
C'e' una lieve distorsione nei bordi dell'immagine finale ma immagino sia fisiologico vista la griglia ortogonale dei pixel.

Questo e' il sorgente VB del programmino di prova:
http://www.webalice.it/paolone2011/download/distorsione_img.zip

Come immaginavo funziona anche con i triangoli, basta solo far coincidere C con D e l'immagine finale sara' un rettangolo dove l'immagine sorgente era il triangolo A-B-(CD)
Cosa molto utile perche' se come texture finale devo ottenere solo rettangoli, a livello sorgente possono anche esserci texture triangolari.
Grazie ancora, mi avete risparmiato settimane di bizzarri tentativi. :)
Paolone64
Starting Member
Starting Member
 
Messaggio: 14 di 32
Iscritto il: 24/03/2011, 19:49

Re: Una lacuna per risolvere un algoritmo di distorsione di un'immagine

Messaggioda apatriarca » 21/11/2014, 12:33

Hai quindi mesh con topologia mista e non solo quadrangolare? È curioso come dopo parecchi anni da Tomb Raider Chronicles si stia tornando a soluzioni simili (PTEX) a quelle che hai descritto (anche se più che altro nei film e con tool/algoritmi di molto superiori). Un'alternativa a quella di passare per gli UV potrebbe probabilmente in effetti essere quella di convertire un file PTEX. Ovviamente devi avere accesso ad un programma in grado di lavorare con tali file e non credo che ci siano al momento software open-source o a basso prezzo che lo supportino.
apatriarca
Moderatore
Moderatore
 
Messaggio: 3613 di 10435
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: Una lacuna per risolvere un algoritmo di distorsione di un'immagine

Messaggioda Paolone64 » 23/11/2014, 14:52

In pratica e' mista sia a livello di sorgente (con texture quadrangolari o triangolari) che come destinazione, solo che in questo caso sono sempre basate su una texture rettangolare dove il triangolo e' sempre scelto tra uno dei quattro triangoli rettangolo che idealmente formano quel rettangolo.
A questo proposito mi rendo conto di avere gridato vittoria troppo presto...
E' vero che applicando quella formula posso convertire anche un un triangolo in un rettangolo, facendo coincidere C e D, ma ora mi rendo conto che non e' quello che voglio ottenere.
Non per i triangoli intendo.
Visto che tomb raider quando ha una faccia triangolare da riempire, vuole un triangolo rettangolo, incluso in un rettangolo, trasformare la texture orginale (UVmap) in un rettangolo non va bene, devo proprio trasformarla in un altro triangolo rettangolo.

Immagine
In pratica avendo la texture di sinistra, dovrei ottenere quella di destra.
Che modifiche dovrei fare all'algoritmo precedente per riuscirci? :roll:
Paolone64
Starting Member
Starting Member
 
Messaggio: 15 di 32
Iscritto il: 24/03/2011, 19:49

Re: Una lacuna per risolvere un algoritmo di distorsione di un'immagine

Messaggioda apatriarca » 24/11/2014, 11:54

Un metodo semplice potrebbe essere quello di definire un punto D come A + (B - A) + (C - A) e usare questo punto come quarto vertice del quadrilatero. In effetti hai che D1 = A1 + (B1 - A1) + (C1 - A1) anche nell'altro caso.
apatriarca
Moderatore
Moderatore
 
Messaggio: 3615 di 10435
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: Una lacuna per risolvere un algoritmo di distorsione di un'immagine

Messaggioda Paolone64 » 24/11/2014, 23:00

Grande, semplice ma geniale, grazie ancora. Vado a provare. :)
Paolone64
Starting Member
Starting Member
 
Messaggio: 16 di 32
Iscritto il: 24/03/2011, 19:49

Precedente

Torna a Geometria e algebra lineare

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite