Formato OBJ
Formato OBJ - Geral
• O formato OBJ carrega informações sobre a malha poligonal, sobre
o mapeamento de texturas e uso de materiais.
• No formato mais básico, o arquivo é composto por um conjunto de
vértices (linhas que começam com “v”), conjunto de normais (linhas
que começam com “vn”), conjunto de mapeamentos de texturas
(linhas que começam com “vt”) e conjunto de faces (linhas que
começam com “f”). É possível ainda que o arquivo seja formado
por grupos. Neste caso, cada grupo delimita o seu subconjunto de
vértices, normais, mapeamentos e faces.
• Os dados de um grupo são delimitados por uma linha com
instrução: “g <identificador nominal>” até encontrar um
novo “g”.
• Na estrutura de dados do programa, é importante guardar
informações sobre o grupo, inclusive, atribuindo um tipo relacionado
ao seu nome, para futura classificação e facilitação de mapeamento
(textura certa para cada tipo).
Formato OBJ - Geral
• Formato para leitura das faces:
Somente vértices:
v1 v2 v3
Completo:
v1/t1/n1 v2/t2/n2 v3/t3/n3
Vértices e normais:
v1//n1 v2//n2 v3//n3
Vértices e texturas:
v1/t1 v2/t2 v3/t3
Formato OBJ - Geral
• Dicas:
– As faces não apontam diretamente para os vértices,
mas sim para o seu índice no array de vértices do
arquivo.
– As faces podem ser triângulos, quadriláteros ou
polígonos quaisquer; portanto, não possível prever a
quantidade de vértices que terá antes de ler o
arquivo.
Formato OBJ - Geral
g
v
v
v
v
v
v
v
v
-0.4389 0.9144 -0.9910
-0.4389 0.8128 -0.9910
-0.4770 0.8128 -0.9910
-0.4770 0.9144 -0.9910
-0.4770 0.9144 0.9902
-0.4770 0.8128 0.9902
-0.4389 0.8128 0.9902
-0.4389 0.9144 0.9902
f123
f341
f435
f365
f578
f567
f721
f187
f145
f581
f637
f327
Vértices do grupo
Faces do grupo
Formato STL
• O STL é um formato originalmente idealizado para stereo-litografia em
sistemas , criado para sistemas 3D. É suportado por muitos sistemas
populares de software para modelagem 3D .
• É muito usado para prototipagem rápida
• Esse formato descreve apenas a superfície geométrica de uma malha
poligonal tridimensional, desconsiderando informações de textura e cor.
• Pode apresentar duas principais representações: ASCII e Binário
ASCII STL
solid name
facet normal ni nj nk
loop
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
endloop
endfacet
endsolid name
STL Binário
UINT8[80] // cabeçalho
Header UINT32 //Número de troângulos
for each triangle
REAL32[3]
REAL32[3]
REAL32[3]
REAL32[3]
UINT16
// vetor normal
// vertex 1
// vertex 2
// vertex 3
// reserva
Download

Formato OBJ