Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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


Edited by johnwhile

Share this post


Link to post
Share on other sites

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:


Edited by johnwhile

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...
Aspetta! x