Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 6 di 53
  • livello principiante
Indice lezioni

Compilare con la Content Pipeline

Capire la compilazione dei "progetti content" e agire sui parametri
Capire la compilazione dei "progetti content" e agire sui parametri
Link copiato negli appunti

Il lavoro della content pipeline avviene tutto a tempo di compilazione. Gli importer e i processor vengono istanziati per ogni file del progetto content quando compiliamo il progetto (Build > Build Solution). Nella finestra Output, che ci mostra il risultato della compilazione, possiamo visualizzare il risultato della compilazione di tutti i nostri progetti.

Se un progetto XNA di gioco aveva una content reference, allora il relativo progetto content sarà stato compilato, e troveremo in Output il log di questa compilazione:

------ Rebuild All started: Project: Webcasts, Configuration: Debug x86 ------
  Building large_font.spritefont -> D:CodeplexTFSXNA2009-2010WebcastsWebcastsWebcastsbinx86DebugContentlarge_font.xnb
  Building small_font.spritefont -> D:CodeplexTFSXNA2009-2010WebcastsWebcastsWebcastsbinx86DebugContentsmall_font.xnb
  Building BigFont.spritefont -> D:CodeplexTFSXNA2009-2010WebcastsWebcastsWebcastsbinx86DebugContentBigFont.xnb
  Building font.spritefont -> D:CodeplexTFSXNA2009-2010WebcastsWebcastsWebcastsbinx86DebugContentfont.xnb
  Building ship.dds -> D:CodeplexTFSXNA2009-2010WebcastsWebcastsWebcastsbinx86DebugContentship.xnb
  Building starfield.dds -> D:CodeplexTFSXNA2009-2010WebcastsWebcastsWebcastsbinx86DebugContentstarfield.xnb
  Building asteroid1.png -> D:CodeplexTFSXNA2009-2010WebcastsWebcastsWebcastsbinx86DebugContentasteroid1.xnb
  Building B1_nebula01.jpg -> D:CodeplexTFSXNA2009-2010WebcastsWebcastsWebcastsbinx86DebugContentB1_nebula01.xnb
  Building B1_nebula02.jpg -> D:CodeplexTFSXNA2009-2010WebcastsWebcastsWebcastsbinx86DebugContentB1_nebula02.xnb
  Building B1_stars.jpg -> D:CodeplexTFSXNA2009-2010WebcastsWebcastsWebcastsbinx86DebugContentB1_stars.xnb
  Webcasts -> D:CodeplexTFSXNA2009-2010WebcastsWebcastsWebcastsbinx86DebugWebcasts.exe
========== Rebuild All: 3 succeeded, 0 failed, 0 skipped ==========

Vediamo che nel progetto principale (Webcasts) sono stati compilati tutti i files della content pipeline e, quando la compilazione di questi è terminata con successo, allora è stato prodotto l'eseguibile finale.

Risultati della compilazione

Una volta compilata la content pipeline, troviamo il risultato della compilazione nella cartella BINX86DEBUG oppure BINX86RELEASE, in cui l'eseguibile del nostro progetto è stato creato. Di default troveremo i nostri files compilati nella cartella Content, e ciascun file avrà estensione .xnb (XNa Binary). Questi files sono opachi, ossia contengono dati binari non facilmente leggibili senza conoscere il formato di serializzazione.

Modificare semplici opzioni

Possiamo modificare alcune opzioni della content pipeline che influenzano il modo in cui i file sono processati o importati. Tali opzioni sono disponibili espandendo il simbolo accanto al nome del content importer o del content processor.

Selezioniamo l'opzione desiderata, apparirà una tabella con una serie di righe (una per ogni proprietà modificabile) la cui prima cella è il nome della proprietà, mentre la seconda cella è il valore correntemente associato alla proprietà. Selezionando una cella qualsiasi di una proprietà comparirà in basso la descrizione della proprietà, con cui possiamo identificare l'effetto che ha il valore di questa proprietà rispetto all'importing o al processing del file.

Gli importer di default sono privi di proprietà modificabili, mentre alcuni processor di default ne hanno varie.

Parametri del ModelProcessor

Il model processor si occupa di trasformare una gerarchia di NodeContent in un ModelContent che sarà poi caricato in un Model disegnabile tramite il runtime di XNA.

I parametri disponibili nel ModelProcessor sono:

Parametro Tipo Descrizione Valore di default
Color Key Color colore Colore che sarà usato come colore trasparente nelle textures del modello Color.Magenta
Color Key Enabled booleano Indica se il color keying è abilitato (per cui tutti i pixels il cui colore è uguale alla key avranno l'alpha impostata a 0, ossia saranno resi trasparenti) true
Generate Mipmaps booleano Indica se verranno generate delle mipmaps dalle textures del modello (per cui la texture sarà memorizzata a varie risoluzioni progressivamente sempre più piccole in modo da rendere più veloce il rendering di tale texture su una superficie di schermo molto piccola) false
Generate Tangent Frames booleano Indica se verranno generati i frames Tangente-Normale-Bitangente per ogni vertice del modello (per usarlo con uno shader che effettui normal mapping) false
Resize Textures to Power of Two booleano Indica se le textures del modello saranno ridimensionate alla più vicina Potenza di due per aumentare il numero di GPUs con cui il gioco sarà compatibile false
Scale float Rappresenta la scala che verrà applicata uniformemente al modello 1.0
Swap Winding Order booleano Indica se l'ordine di memorizzazione degli indici dei triangoli va scambiato. Questo è utile per i modelli da disegnare "rovesciati", ossia visti dall'interno e non dall'esterno false
Texture Format TextureProcessorOutputFormat Un valore qualsiasi che rappresenta il formato in cui le textures del modello saranno memorizzate. Le textures possono essere lasciate intatte, convertite al formato Color oppure convertite nel formato compresso DXT Compressed
X Axis Rotation intero Gradi di rotazione da applicare ai vertici del modello intorno all'asse X 0
Y Axis Rotation intero Gradi di rotazione da applicare ai vertici del modello intorno all'asse Y 0
Z Axis Rotation intero Gradi di rotazione da applicare ai vertici del modello intorno all'asse Z 0

Parametri dello SpriteFontTextureProcessor

Lo SpriteFontTextureProcessor si occupa di trasformare una texture che contiene uno sprite font in uno SpriteFontContent che sarà poi caricato in uno SpriteFont disegnabile tramite SpriteBatch dal runtime di XNA.

Figura 8. Una sprite font texture
Una sprite font texture

I parametri disponibili nello SpriteFontTextureProcessor sono:

Parametro Tipo Descrizione Valore di default
First Character carattere Un qualsiasi carattere che rappresenta il primo carattere dell'alfabeto rappresentato nella texture spazio (' ')

Parametri del Texture Processor

Il TextureProcessor si occupa di elaborare una texture in modo che possa essere usata in uno shader, con uno SpriteBatch o come skin di un modello dal runtime di XNA.

Tale processor viene automaticamente invocato dal ModelProcessor per elaborarne le texture, per questo motivo i suoi parametri sono presenti anche nel ModelProcessor. Vediamo quali sono, le relative descrizioni le troviamo nella tabella dei parametri del ModelProcessor:

Parametro Tipo Default
Color Key Color colore Color.Magenta
Color Key Enabled booleano true
Generate Mipmaps booleano false
Resize Textures to Power of Two booleano false
Texture Format TextureProcessorOutputFormat

Ti consigliamo anche