Qual formato de arquivo 3D meu mecanismo deve usar se não quiser alterá-lo mais tarde? [fechadas]

8

Existe um formato de fato para exportar um modelo 3D do software de modelagem para um mecanismo de jogo?

Eu sei que varia de acordo com o mecanismo e a situação, mas qual é a idéia geral que vem à mente de um desenvolvedor de jogos habilidoso quando essa pergunta surge?

Na minha opinião, o formato obj aparece, mas não suporta animação.

Então, qual poderia ser o melhor formato que suporta / cobre mais ou menos todos os recursos que um mecanismo moderno pode cobrir? FBX? Collada?

Alguma visão profissional ajudaria.

Quazi Irfan
fonte
Eu acho que o termo que você estava procurando é "de fato", não "De-fator".
Nicol Bolas
@ Nicol-bolas fixo
Quazi Irfan

Respostas:

8

Não há "melhor formato"; há apenas vários níveis de irritação.

Collada faz praticamente tudo o que você poderia querer fazer, com o custo de fazer tudo o que não quer fazer também. Isso o torna um formato de intercâmbio útil, mas não é algo que você provavelmente deveria estar carregando diretamente no seu jogo.

O FBX não é tão amplamente suportado, sendo um formato proprietário. E é ... um formato proprietário, mas pelo menos a especificação de formato está disponível.

A maioria dos desenvolvedores de jogos precisa massagear os dados, seja qual for o tipo, em algo que seu jogo possa carregar e jogar na tela o mais rápido possível. Portanto, a maioria dos mecanismos de jogos que suportam os formatos de intercâmbio usarão uma ferramenta off-line para transformá-los em seus formatos específicos de jogo.

E essa geralmente é uma boa maneira de trabalhar. Você tem uma boa separação de código: o código que massageia os dados é separado do código que os carrega no jogo. Você obtém um desempenho de carregamento rápido, enquanto ainda tem a capacidade de formatar os dados conforme necessário para velocidade e uso máximos. E você ainda pode ver como são os dados no formato de arquivo exportado original, que geralmente é algum tipo de arquivo de texto.

Nicol Bolas
fonte
"mas não é algo que você provavelmente deva procurar carregar diretamente no seu jogo." porque?
Quazi Irfan
"... use uma ferramenta off-line para transformá-los em seus formatos específicos de jogo." Tem que ser conversão de nível binário?
Quazi Irfan
4
@iamcreasy: "por quê?" Você já olhou para Collada? Deseja realmente carregar isso, fazer tantas conversões ASCII para flutuar e, depois de tudo isso, compactar os dados na forma final usada pelo seu jogo?
Nicol Bolas
2
@iamcreasy: Ele não precisa ser um arquivo binário, mas também não é uma má idéia. Você pode carregá-lo diretamente como uma imagem de memória em alguns casos. Você pode até carregar dados de vértice diretamente em um ponteiro de objeto de buffer mapeado. Os tempos de carregamento nos jogos são ruins o suficiente sem que alguém os agrave.
Nicol Bolas
11
@iamcreasy Ele tem que ser dados binários, tudo o resto é um desperdício para um motor
Maik Semder