federicoc80 ha scritto:Ciao a tutti ^^
Premetto che ho iniziato da poco a smanettare con xna seguendo la guida di Wilez (straordinaria). Però, ho un problema..
Quando faccio i modelli con Cinema 4d, assegno i materiali, lo esporto in .x tramite un plug-in e lo carico sul mio programma, il modello non è come sul 4d; da quanto capito il problema è che io carico i modelli dalla mia soluzione tramite lo shader di XNA. Quello a cui voglio arrivare è questo: sapete darmi delle indicazioni su quello che mi devo studiare per poter ottenere lo stesso effetto di un mio file cinema4d sul programma? Grazie in anticipo!
Ciao e benvenuto nell' allegra combriccola
Cosa intendi per "stesso effetto"? Intendi l'effetto di renderizzazione con i materiali che hai assegnato su Cinema 4D?
Il modello .x che esporti dal Cinema 4D è in pratica una serie di numeri e coordinare che determinano solo la geometria del modello, cioè la posizione dei vertici, l'orientamento delle normali, le coordinare di mappature e altri dati. Tra questi dati non ci sono i materiali (settaggi di riflessione, trasparenze ecc..) che hai utilizzato su Cinema 4D. I materiali si impostano tramite gli shader da XNA, ovvero tramite i file.x (
alcuni esempi scaricabili).
Se usi il BasicEffect (shader di default di XNA) avrai a disposizione alcuni parametri (texture diffuse, numero di luci ecc...) che comunque renderanno un effetto differente da quello che hai su Cinema 4D. Il rendering con i programmi di modellazione è differente da quello di uno shader in real time perchè di norma vengono usati svariati effetti di postrendering e shader che puntano sopratutto sull'aspetto visivo piuttosto sulla velocità di renderizzazione.
Ma se vuoi avvicinarti all'effetto che hai su Cinema 4D puoi farlo, però ti devi creare uno shader che implementi tutte le caratteristiche che hai usato su Cinema 4D. Dunque dipende se hai usato delle trasparenze, delle textures di bump mappig ecc... e se poi il Cinema 4D usa di default degli effetti di post renderig tipo blur, sharpen e così via. Se hai uno shot dell'effetto in Cinema 4D che vuoi ottenere potrei dirti di più.