Vai al contenuto
johnwhile

Teoria File Mesh

Recommended Posts

Salve a tutti, allora di teoria della grafica 3d ne sò poco, mi sono imbattuto in questo problema solo di recente dovuto al fatto che per alcuni programmini che voglio fare (anche tramite maxscript) devo conoscere come archiviare i dati. Se qualcuno mi può consigliare qualche link (dato che non riesco a trovare niente) su come vengono archiviati i file obj,3ds e mesh(questi mesh non sò se sono sempre li stessi o vaiano da programma a programma... in alcuni giochi si chiamano mesh ma non vengono aperti solo dal gioco).

Esempio: non riesco a capire la parte che qui sotto è dedicata alle normali delle superfici:

// number of normals

Cioè sò più o meno che corisponde alla direzione a cui è rivolta una faccia ma non capisco a cosa rappresentano xyz ? forse un vettore ? io avevo messo per esempio :


1.000000 0.000000 0.000000

1.000000 0.000000 0.000000

1.000000 0.000000 0.000000

1.000000 0.000000 0.000000

1.000000 0.000000 0.000000

1.000000 0.000000 0.000000
ma dopo il caricamento (sto usando Milkshape) me li riconverte in:

0.000000 0.000000 1.000000

1.000000 0.000000 0.000000

0.000000 0.000000 -1.000000

-1.000000 0.000000 0.000000

0.000000 1.000000 0.000000

0.000000 -1.000000 0.000000
l'oggetto è un Box, ma comunque sapete indicarmi qualche link, info, teoria su come vengono calcolati queste nomali ?
// number of vertices

20


// vertex: flags, x, y, z, u, v, bone index

0 -10.375000 10.500000 13.750000 0.000000 0.000000 -1

0 -10.375000 -10.250000 13.750000 0.000000 1.000000 -1

0 10.375000 10.500000 13.750000 1.000000 0.000000 -1

0 10.375000 -10.250000 13.750000 1.000000 1.000000 -1

0 10.375000 10.500000 13.750000 0.000000 0.000000 -1

0 10.375000 -10.250000 13.750000 0.000000 1.000000 -1

0 10.375000 10.500000 -4.500000 1.000000 0.000000 -1

0 10.375000 -10.250000 -4.500000 1.000000 1.000000 -1

0 10.375000 10.500000 -4.500000 0.000000 0.000000 -1

0 10.375000 -10.250000 -4.500000 0.000000 1.000000 -1

0 -10.375000 10.500000 -4.500000 1.000000 0.000000 -1

0 -10.375000 -10.250000 -4.500000 1.000000 1.000000 -1

0 -10.375000 10.500000 -4.500000 0.000000 0.000000 -1

0 -10.375000 -10.250000 -4.500000 0.000000 1.000000 -1

0 -10.375000 10.500000 13.750000 1.000000 0.000000 -1

0 -10.375000 -10.250000 13.750000 1.000000 1.000000 -1

0 -10.375000 10.500000 13.750000 0.000000 1.000000 -1

0 10.375000 10.500000 13.750000 1.000000 1.000000 -1

0 -10.375000 -10.250000 13.750000 0.000000 0.000000 -1

0 10.375000 -10.250000 13.750000 1.000000 0.000000 -1


// number of normals

6


// normal: x, y, z

0.000000 0.000000 1.000000

1.000000 0.000000 0.000000

0.000000 0.000000 -1.000000

-1.000000 0.000000 0.000000

0.000000 1.000000 0.000000

0.000000 -1.000000 0.000000


// number of triangles

12


// triangle: flags, vertex index1, vertex index2, vertex index3, normal index1, normal index 2, normal index 3, smoothing group

0 0 1 2 0 0 0 1

0 1 3 2 0 0 0 1

0 4 5 6 1 1 1 2

0 5 7 6 1 1 1 2

0 8 9 10 2 2 2 1

0 9 11 10 2 2 2 1

0 12 13 14 3 3 3 2

0 13 15 14 3 3 3 2

0 12 16 6 4 4 4 3

0 16 17 6 4 4 4 3

0 18 13 19 5 5 5 3

0 13 7 19 5 5 5 3

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

google wiki e simili ti possono dare molte info ad esempio avresti trovato questo

http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/

certe che se non hai idea di cosa sia una normale e le hai messe senza valore, forse è meglio leggere qualche testo da zero sulla CG come il marini bertolo rizzi

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

google wiki e simili ti possono dare molte info ad esempio avresti trovato questo

http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/

certe che se non hai idea di cosa sia una normale e le hai messe senza valore, forse è meglio leggere qualche testo da zero sulla CG come il marini bertolo rizzi

ah grazie in effetti quà ho trovato una osa molto utile:

http://local.wasp.uwa.edu.au/~pbourke/dataformats/ms3d/ms3dspec.h

comunque per le normali dovrebbero essere dei vettori che indicano l'orientamento della faccia ma non è che si trova qualcosa di esauriente su internet.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

scherzi :rolleyes: ci sono 3.2 milioni di pagine con il termine normal vector su google e nessuno è esauriente?

http://www.google.it/search?q=normal+vector

ops, basta trovare la parolina giusta, scusami tanto, forse dovevo cercare meglio :blush:

qui c'è proprio quello che cercavo:

http://www.euclideanspace.com/threed/solidmodel/boundary/mesh/garlandHeckbertExample.htm


Modificato da johnwhile

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

Allora , adesso ho capito come si calcola il Vettore Normale di una superfice (triangolo con 3 punti) e ho provato a fare un test e calcola in modo corretto. Purtroppo mi sono messo a fare un convertitore per Milkshape e dal file ms3d che utilizza questo programma mi sono imbattuto in 15 numeri in (virgola mobile) che lui definisce come normals in base a questa definizione del file:

float vertexNormals[3][3]; //3*3 punti

float s[3]; // 3 punti

float t[3]; // 3 punti totale=15

vi inserisco una parte di quello che ho convertito da un file ms3d:

#---------------Vertici---------------#

8

0 0.033874	3.987692	0.770326	-1	5

0 -2.393179	3.584967	2.523885	-1	4

0 2.393179	2.755151	3.754133	-1	4

0 -0.033874	1.477427	4.285469	-1	5

0 2.393179	-0.572516	1.509594	-1	5

0 -0.033874	-0.961351	3.263152	-1	4

0 0.033874	1.937801	-0.571436	-1	4

0 -2.393179	0.076743	-0.498434	-1	5

#---------------triangoli---------------#

12

#---triangolo 1

0  0 1 2 

0.210050	0.770476	-0.601868	-0.573961	0.694326	0.434144	0.526584	0.585386	0.616468	

0.000000	0.000000	1.000000	

0.000000	1.000000	0.000000	

1 0

#---triangolo 2

0  1 3 2 

-0.573961	0.694326	0.434144	-0.202140	-0.255127	0.945542	0.526584	0.585386	0.616468	

0.000000	1.000000	1.000000	

1.000000	1.000000	0.000000	

1 0

la formula testata con lo stesso programma funziona (perchè esportato il file con il programma stesso in formato testo e nell'esempio di un triangolo mi è venuto fuori il risultato giusto).

La struttura a cui mi riferisco l'ho trovata qui: http://local.wasp.uw...ms3d/ms3dspec.h

Mentre i file a cui mi riferisco (non badate al programmino python): http://www.filefront.com/15827449/Ms3dFile.rar

Qualcuno di voi sicuramente saprà cosa significano quei 15 numeri, io ho provato a cercare deppertutto ma niente, non riesco a capire come sono state calcolate quelle 3 normali... forse è una matrice di rotazione ma non mi sembra abbia senso :blink2:


Modificato da johnwhile

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

scudate adesso mi sono accorto che gli ultimi 2 punti (6 numeri) sono le coordinate UV delle texture... comunque avete dei suggerimenti per gli altri 9 punti ?

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×