Pergunta

Eu tenho tomado recentemente a mergulhar em DirectX e foram brincando um pouco com Anim8or, e descobriram vários tipos de arquivo que os modelos podem ser exportados para o que são baseados texto. Eu particularmente tomado para arquivos VTX. Eu aprendi como analisar algumas noções básicas fora dele, mas estou, obviamente, faltando algumas coisas.

Ela começa com uma .Faceset com é imediatamente (na mesma linha), seguido do número de malhas no arquivo.

Para cada malha, há uma seção .Vertex e uma seção .Index por essa ordem e o primeiro par de .Vertex / seções .Index são a primeira malha, o segundo conjunto são a segunda malha e assim por diante como você esperaria.

Em uma seção .Vertex do arquivo, há 8 números por linha e um número indefinido de linhas (a menos que você deseja confiar os comentários Anim8or colocou pouco antes da seção, mas que não parece fazer parte das especificações do arquivo, basta Anim8or ser gentil). Os primeiros 3 números correspondem a X, Y, Z e as coordenadas para um ponto particular que vai ser usado posteriormente como um vértice, o outro 5 Não tenho ideia. A maioria do tempo, os últimos 2 números são ambos 0, mas tenho notado que nem sempre é verdadeiro, justo geralmente verdadeiro.

Em seguida, vem a seção .Index correspondente. Esta secção tem 4 números. O primeiro 3 são os números de referência aos vértices indicado anteriormente e os 3 pontos marcar um triângulo no modelo. 0 que significa que o primeiro mencionado vértice, um significado seguinte, e assim por diante, como uma matriz baseada em zero. O quarto número parece ser sempre -1, não posso descobrir qual a importância que tem e eu não posso prometer é sempre -1. No caso de você não pode dizer, eu não estou muito certo sobre qualquer coisa neste tipo de arquivo.

Há também outras informações no arquivo que eu estou escolhendo ignorar agora porque eu sou novo e não quer coisas complicar demais. Como depois de cada seção .Index é:

.Brdf
// Ambient color
0.431 0.431 0.431
// Diffuse color
0.431 0.431 0.431
// Specular color and exponent
1 1 1 2
// Kspecular = 0.5
// end of .Brdf

Parece-me isto é sobre a superfície da malha acabamos de descrever. Mas não é necessário para a colocação de malhas então eu passou por isso por agora.

Passando para o problema real ... Eu posso carregar um arquivo VTX quando só há uma malha no arquivo VTX (ou seja, o .FaceSet é 1). Eu quase posso com sucesso carregar um arquivo VTX que tem várias malhas, cada malha é estruturado com sucesso, mas não devidamente colocado em relação às outras malhas. Eu baixei um modelo AT-AT de um fio Anim8or em um fórum e é composta de 344 malhas, quando eu carregar o arquivo usando apenas as especificações que eu mencionei até agora, parece que a AT-AT é explodida para fora como se fosse um diagrama de como fazê-lo (quando carregado na Anim8or, todas as peças estão perto e assemelham-se uma totalmente montado AT-AT). Todas as peças estão correctamente orientados e têm a mesma direção, mas há uma abundância de espaço extra entre as peças.

Será que alguém sabe como ler um arquivo VTX? Ou sabe de um site que vai explicar o que os outros números significam?

Editar:

A extensão do arquivo .VTX é usada para um monte de coisas diferentes e tem um monte de estruturas diferentes, dependendo do que o uso esperado é. Valve, Visio, Anim8or, e vários outros usam VTX, eu só estou interessado no arquivo VTX que as exportações Anim8or e a estrutura que ele usa.

Foi útil?

Solução

Eu tenho trabalhado em um programa 3D Modeling mim e queria um formato simples para ser capaz de trazer os objetos para o editor para ser capaz de testar a velocidade de minhas rotinas de desenho com grandes conjuntos de vértices e faces. Eu estava procurando por um fácil onde eu poderia começar modelos rapidamente e encontrou o formato .vtx. Eu pesquisei e encontrei sua pergunta. Quando eu era incapaz de encontrar o formato na internet, eu brinquei e comparados exportações .OBJ com os .vtx. (Talvez tenha sido criado apenas para Anim8or?) Aqui está o que eu encontrei:

1) Sim, os vértices tem oito números em cada linha. Os três primeiros são, como se supôs, as coordenadas x, y, e z. Os três seguintes são normais vértice, nx, ny, e nz. Você pode notar que cada vértice aparece várias vezes com diferentes normais para cada rosto que o contém. Os dois últimos números são coordenadas de textura.

2) Quanto aos rostos, chegou às mesmas conclusões que você fez. Os primeiros três números são índices na lista acima vértice. O último número parece ser sempre -1. Eu estou indo supor que ele tem algo a ver com o enfrentamento da face. (Por exemplo, de frente para dentro ou para fora.) Uma vez que a maioria dos modelos são criados com o enfrenta todos virados de forma adequada, é lógico que isso seria o mesmo número para todos eles.

3) Uma nota adicional: Ao comparar o obj com o .vtx, eu notei que as posições dos vértices mudou. Isso também era verdade quando se compara com o arquivo .an8. Isso não deve ser um problema "ENORME" desde que todos eles são compensados ??pela mesma quantidade em cada vértice e cada arquivo. Pelo menos, então ele poderia ser compensada.

Você considerou usando o formato de arquivo obj? Ele é baseado em texto e não é extremamente difícil de analisar ou entender. Há um pouco de informações sobre ele on-line.

Vou acrescentar que, após uma inspeção de algumas horas, a exportação vtx no Anim8or parece estar quebrado. Eu experimentei o mesmo problema que você fez que as peças não foram localizados corretamente. Minha suposição seria que as exportações Anim8or esses objetos usando as coordenadas locais para cada malha e não representam transformações que foram aplicadas. Eu faço também nota que ele não vai importar o arquivo vtx ...

Outras dicas

Com base em algumas googling, parece que você está no lado errado do gasoduto. Pelo que entendi: file A VTX é uma Válvula Proprietary File Format que é a resultar de um conjunto de etapas.

O resultado final do Studiomdl para cada modelo Half-Life é um grupo de arquivos em o gamedirectory / modelos pasta pronto para ser usado pela Game Engine:

  • um .mdl arquivo que define a estrutura de o modelo junto com animação, caixa, caixa hit, material delimitadora, de malha e informações LOD,
  • um arquivo .VVD que posição armazena dados independente plana para os pesos de osso, normais, vértices, tangentes e textura coordenadas utilizadas pelo MDL, atualmente
  • três tipos separados de arquivo VTX:

    • .sw.vtx (Software),
    • .dx80.vtx (DirectX 8,0) e
    • .dx90.vtx (DirectX 9.0), que loja de hardware otimizado material, esfolamento e triângulo tira / ventilador informação para cada um LOD de cada malha no MDL,
  • muitas vezes um arquivo .PHY contendo uma superfície rígida ou articulada (Ragdoll) modelo de colisão, e às vezes
  • um arquivo .ANI para Para fazer: algo a ver com animações modelo

Válvula

Agora, a Fonte SDK válvula pode ter algumas utilidades em-lo para ler VTX do (parece ter a capacidade para fazê-los de qualquer maneira). Algumas pessoas pode ter feito ferramentas 3rd party ou ter código para lê-los, mas é provável que não trabalho em todos os arquivos apenas porque é uma 3ª formato de festa. Eu também achei este post que pode ajudar se você não tê-lo visto antes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top