formato do modelo 3d do iPhone: arquivo .h, .obj ou algum outro?

7

Estou começando a escrever um jogo para iPhone usando o OpenGL-ES e me deparei com um problema ao decidir em qual formato meus modelos 3D deveriam estar. Eu li (o link me escapa no momento) que alguns desenvolvedores preferem os modelos compilado em arquivos Objective-C .h. Ainda assim, outros preferem ter .obj, pois são mais portáteis (ou seja, para implantação em plataformas que não são do iPhone).

Vários mecanismos de jogos em 3D parecem suportar muitos formatos (?), Mas eu não vou usar nenhum desses mecanismos, pois gostaria de aprender o OpenGL-ES. Estou me colocando em desvantagem aqui por não usar um mecanismo empacotado?

Obrigado!

Tim Reddy
fonte

Respostas:

3

Todo mecanismo que você aprende realmente o ensina melhor o OpenGL ES, desde que você veja o que está acontecendo sob o capô. Você pode rodar seu próprio mecanismo, mas esteja pronto para reescrevê-lo muitas e muitas vezes. É melhor aprender um existente e depois decidir se você deseja escrever do zero.

Dito isto, pessoalmente, acho que armazenar modelos .hé uma maneira muito grosseira e feia de fazê-lo. Funcionará apenas se você tiver apenas alguns modelos. Nem comece a pensar no caso de um jogo que precisará de manipulação de recursos (portanto, há mais do que uma quantidade básica de modelos / texturas).

Kornel Kisielewicz
fonte
1

Não. Tudo depende do que você deseja aprender.

Se você deseja aprender a programação de jogos como um todo, mas mais voltado para a lógica, use um mecanismo de jogo.

Se você quer aprender o OpenGL-ES, é o que você diz, faz muito mais sentido não usar um mecanismo de jogo. Dessa forma, você pode ver o que funciona e o que não funciona. Com um mecanismo de jogo, talvez você faça algo como 'AddModel ("address"); RenderAll (); ' como queiras. Isso não ensina muito o OpenGL.

E para o formato do modelo, acho que faz sentido mantê-los como um arquivo .obj. Você pode editá-los com um programa de modelagem e aprender a carregar modelos universalmente, em vez de apenas no iPhone.

O Pato Comunista
fonte
1

Usar arquivos .h para o seu modelo é realmente útil apenas para algo realmente rápido e sujo. Toda vez que você altera algo no seu modelo, precisa de uma reconstrução. Eu pude ver isso feito por algo que é crucial (digamos, se você tem uma imagem de carregamento em 3D que precisa estar lá, mesmo que o carregamento falhe), mas, além disso, é uma ferramenta muito antiga para o meu gosto (e eu sou um dinossauro na maioria dos departamentos )
Enquanto codificava um cubo ao lidar com um ambiente, eu trocava para carregar modelos assim que colocava meu renderizador principal em funcionamento, pois é apenas uma fração mais difícil de ler os modelos e indexar os dados do que seria ser modelos de referência codificados demais.
Carregá-los também o configura muito melhor para reutilizar o mecanismo, porque se você codificar seus modelos, o restante do código provavelmente acabará seguindo a mesma filosofia codificada e será bastante reutilizável.

Kaj
fonte
0

Os modelos OBJ não são um formato ideal para o OpenGL, pois usam índices separados para posições, normais e cordas de textura. Usar OBJ com OpenGL significa que você deve pré-processar os dados ao carregá-los para criar novos vértices e índices ou usar matrizes não indexadas para renderizar.

Um formato igualmente simples de analisar, mas mais eficiente, é o IQM e seu formato complementar IQE baseado em texto. O IQM também suporta animação esquelética básica e cores de vértice.

http://lee.fov120.com/iqm/

ccxvii
fonte