70 likes | 237 Views
Formato OBJ. Leandro Tonietto Computação Gráfica. Formato OBJ - Geral. O formato OBJ carrega informações sobre a malha poligonal, sobre o mapeamento de texturas e uso de materiais.
E N D
Formato OBJ Leandro Tonietto Computação Gráfica
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 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: f v1 v2 v3 Completo: f v1/t1/n1 v2/t2/n2 v3/t3/n3 Vértices e normais: f v1//n1 v2//n2 v3//n3 Vértices e texturas: f 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. • Os índices começam por 1 no arquivo, no entanto, no array C/C++, eles começam em 0. Então, na leitura, diminua 1 do valor lido para o índice do vértice da face. • As faces podem sem 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. Use vector de GLint. • Linhas que começam com “#” são comentários e devem ser ignoradas. • Mais informações podem ser obtidas a partir de: http://www.fileformat.info/format/wavefrontobj/egff.htm
Formato OBJ - Geral g v -0.4389 0.9144 -0.9910 v -0.4389 0.8128 -0.9910 v -0.4770 0.8128 -0.9910 v -0.4770 0.9144 -0.9910 v -0.4770 0.9144 0.9902 v -0.4770 0.8128 0.9902 v -0.4389 0.8128 0.9902 v -0.4389 0.9144 0.9902 g U16 f 1 2 3 f 3 4 1 f 4 3 5 f 3 6 5 f 5 7 8 f 5 6 7 f 7 2 1 f 1 8 7 f 1 4 5 f 5 8 1 f 6 3 7 f 3 2 7 Vértices do grupo Faces do grupo
Formato OBJ - Geral Diagrama de classes para representar o sistema