Domanda

Sto scrivendo un piccolo programma di grafica utilizzando DirectX9 che importa alcuni file di modello creati utilizzando frullatore da file .x. Fin qui tutto bene.

I modelli sono materiali che hanno trame ed è semplice per ottenere i nomi di texture e correttamente il rendering degli oggetti però mi piacerebbe utilizzare effetto diverso (lo shader) i file su alcuni dei materiali, ma non riesco a trovare un modo per incorporare le informazioni su ciò shader da utilizzare nel modello nel file .x.

L'idea migliore che ho avuto è stato quello di guardare il nome del file texture in mia applicazione d3d9 e hardcode una tabella di ricerca del nome del file texture effetto. Ma questo non sembra elegante, e significa anche che sarei andato a finire la copia e la ridenominazione texture solo così ho potuto usare la stessa texture con diversi shaders.

Mi sento Devo mancare un modo più semplice per fare questo, qualche suggerimento?

È stato utile?

Soluzione

A differenza dei file immagine di texture, specificando un programma shader può essere molto complicato. È necessario il testo dello shader, nonché le specifiche per i parametri di cui ha bisogno e un modo per chi legge il file per sapere quali valori da impostare per i parametri e come. Alcuni shader richiedono in trame trasformare un parametri ed a volte questi texutres deve essere generato dall'applicazione (ad esempio nel caso di un disturbo Perlin tessitura 3D).
In breve, non c'è modo di trovare un modo standard per specificare genericamente shader che può essere pienamente integrato in un formato di file come ad esempio .x. L'unica scelta è quella di venire con qualcosa ad hoc per l'applicazione. Il metodo suggerite in questione è buono come qualsiasi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top