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