Pergunta

Eu estou escrevendo um pequeno programa de gráficos usando directx9 que as importações de alguns arquivos modelo criado usando liquidificador a partir de arquivos .x. Até aqui tudo bem.

Os modelos têm materiais que têm texturas e é simples para obter os nomes textura e devidamente tornar os objetos no entanto eu gostaria de usar efeito diferente (shader) arquivos em alguns dos materiais, mas não consigo encontrar alguma maneira de incorporar as informações sobre o que shader a ser usado no modelo no arquivo .x.

A melhor idéia que eu tinha era de olhar para a textura nome de arquivo na minha aplicação D3D9 e codificar uma tabela de pesquisa de nome de textura para arquivo efeito. Mas isso não parece elegante, e também significa que eu ia acabar copiando e renomeando texturas só assim eu poderia usar a mesma textura com diferentes shaders.

Eu sinto que deve estar faltando uma maneira mais fácil de fazer isso, alguma sugestão?

Foi útil?

Solução

arquivos de imagem textura Ao contrário, especificando um programa shader pode ser muito complicado. Você precisa o texto shader, bem como as especificações para os parâmetros de que necessita e uma maneira para quem lê o arquivo para saber quais os valores a serem definidos para os parâmetros e como. Alguns shaders exigem em texturas transformar uma parâmetros e, por vezes, estas texutres necessidades a serem gerados pelo aplicativo (por exemplo, no caso de um Perlin ruído 3D textura).
Em suma, não há nenhuma maneira de chegar a uma forma padrão para especificar genericamente shaders, que pode ser totalmente integrasse em um formato de arquivo como .x. Sua única opção é vir com algo ad-hoc para a sua aplicação. O método que você sugere na questão é tão bom quanto qualquer outro.

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