Esportare formati di trama avanzati usando la pipeline di contenuto immagine in Visual Studio
Questo articolo descrive come usare la pipeline di contenuto immagine per esportare trame, ad esempio quelle che contengono mipmap o alfa premoltiplicate o persino quelle che possono essere usate con app Direct2D o JavaScript.
Esportare una trama che contiene mipmap
La pipeline di contenuti immagine può generare mipmap da un'immagine di origine come parte della fase di compilazione del progetto. Per ottenere alcuni effetti, a volte è necessario specificare manualmente il contenuto dell'immagine di ogni livello MIP. Quando non è necessario specificare manualmente il contenuto dell'immagine di ogni livello MIP, la generazione di mipmap in fase di compilazione garantisce che il contenuto mipmap non diventi mai non sincronizzato. Elimina anche il costo delle prestazioni della generazione di mipmap in fase di esecuzione.
Questo articolo tratta:
Configurazione dell'immagine di origine che deve essere elaborata dalla pipeline di contenuti immagine.
Configurazione di pipeline di contenuti immagine per generare mipmap.
Esportare mipmap
La creazione di mipmap offre un livello di dettaglio automatico sullo spazio della schermata per aree con trame in giochi 3D o in app. Migliora le prestazioni di rendering di un gioco o di un'app precompilazione delle versioni campionate di una trama. La pre-compilazione delle versioni campionate significa che l'intera trama non deve essere campionata ogni volta che viene campionata.
Per esportare una trama con mipmap
Iniziare con una trama di base. Caricare un file di immagine esistente o crearne uno. Per supportare le mipmap, specificare una trama la cui larghezza e altezza corrispondano a un valore esponenziale con base due, ad esempio, 64 x 64, 256 x 256 o 512 x 512.
Configurare il file di trama appena creato in modo che venga elaborato dalla pipeline di contenuti immagine. In Esplora soluzioni aprire il menu di scelta rapida per il file di trama creato e quindi scegliere Proprietà. Nella pagina Proprietà di configurazione>Generale impostare la proprietà Tipo di elemento su Image Content Pipeline (Pipeline di contenuti immagine). Assicurarsi che la proprietà Contenuto sia impostata su Sì e che l'opzione Exclude From Build (Escludi da build) sia impostata su No. Selezionare Applica.
Viene visualizzata la pagina delle proprietà di configurazione Image Content Pipeline (Pipeline di contenuti immagine).
Configurare la pipeline di contenuti immagine per generare mipmap. Nella pagina Proprietà di configurazione>Image Content Pipeline (Pipeline di contenuti immagine)>Generale impostare la proprietà Genera MIP su Sì (/generatemips).
Seleziona OK.
Quando si compila il progetto, la pipeline di contenuti immagine converte l'immagine di origine dal formato di lavoro al formato di output specificato, includendo i livelli MIP. Il risultato viene copiato nella directory di output del progetto.
Esportare una trama che contiene alfa premoltiplicati
La pipeline di contenuti immagine può generare trame con valori alfa premoltiplicati da un'immagine di origine. Questi possono essere più semplici da usare e più robusti rispetto alle trame che non contengono caratteri alfa premoltiplicati.
Questo documento illustra queste attività:
Configurazione dell'immagine di origine che deve essere elaborata dalla pipeline di contenuti immagine.
Configurazione della pipeline di contenuti immagine per generare valori alfa premoltiplicati.
Valori alfa premoltiplicati
I valori alfa premoltiplicati offrono diversi vantaggi rispetto ai valori convenzionali non premoltiplicati, perché rappresentano meglio l'interazione reale di luce con materiali fisici separando il contributo di colore del texel (il colore che viene aggiunto all'immagine) dalla traslucidità (la quantità di colore sottostante consentita). Alcuni dei vantaggi dell'uso di valori alfa premoltiplicati sono:
La fusione con valori alfa premoltiplicati è un'operazione associativa. Il risultato della fusione di più trame traslucide è simile, indipendentemente dall'ordine in cui vengono fuse le trame.
Grazie alla natura associativa della fusione con valori alfa premoltiplicati, il rendering a più passaggi degli oggetti traslucidi risulta semplificato.
Tramite l'uso di valori alfa premoltiplicati, la fusione correttiva pura (impostando alfa su zero) e la fusione interpolata linearmente possono essere realizzate contemporaneamente. Ad esempio, in un sistema di particelle, una particella Fuoco fusa in modo cumulativo può diventare una particella Fumo semitrasparente che viene fusa tramite l'interpolazione lineare. Senza valori alfa premoltiplicati, sarebbe necessario disegnare le particelle Fuoco separatamente dalle particelle Fumo e modificare lo stato di rendering tra le chiamate di disegno.
Le trame che usano valori alfa premoltiplicati vengono compresse con una qualità superiore alle altre e non presentano bordi offuscati o "effetti aureola"causati dalla fusione di trame che non usano valori alfa premoltiplicati.
Per creare una trama che usa alfa premoltiplicato
Iniziare con una trama di base. Caricare un file di immagine esistente o crearne uno.
Configurare il file di trama in modo che venga elaborato dalla pipeline di contenuti immagine. In Esplora soluzioni, aprire il menu di scelta rapida del file della trama e scegliere Proprietà. Nella pagina Proprietà di configurazione>Generale impostare la proprietà Tipo di elemento su Image Content Pipeline (Pipeline di contenuti immagine). Assicurarsi che la proprietà Contenuto sia impostata su Sì e che l'opzione Exclude From Build (Escludi da compilazione) sia impostata su No, quindi scegliere il pulsante Applica. Viene visualizzata la pagina delle proprietà di configurazione Image Content Pipeline (Pipeline di contenuti immagine).
Configurare la pipeline di contenuti immagine per generare valori alfa premoltiplicati. Nella pagina Proprietà di configurazione>Image Content Pipeline (Pipeline di contenuti immagine) >Generale, impostare la proprietà Convert to pre-multiplied alpha format (Converti in formato alfa premoltiplicato) su Sì (/generatepremultipliedalpha).
Scegli il pulsante OK.
Quando si compila il progetto, la pipeline di contenuti immagine converte l'immagine di origine dal formato di lavoro al formato di output specificato. Ciò include la conversione dell'immagine nel formato alfa premoltiplicato. Il risultato viene copiato nella directory di output del progetto.
Esportare una trama da usare con app Direct2D o JavaScript
La pipeline di contenuti immagine può generare trame compatibili con le convenzioni di rendering interne di Direct2D. Le trame di questo genere sono adatte alle app che usano Direct2D e alle app UWP create mediante JavaScript.
Questo documento illustra queste attività:
Configurazione dell'immagine di origine che deve essere elaborata dalla pipeline di contenuti immagine.
Configurazione della pipeline di contenuti immagine per generare una trama che è possibile usare in un'app JavaScript o Direct2D.
Generare un file con estensione dds compresso a blocchi.
Generare il valore alfa premoltiplicato.
Disabilitare la generazione di mipmap.
Convenzioni di rendering in Direct2D
Le trame usate nel contesto di Direct2D devono essere conformi alle convenzioni di rendering interne di Direct2D seguenti:
Direct2D implementa la trasparenza e la traslucidità usando il valore alfa premoltiplicato. Le trame usate con Direct2D devono contenere i valori alfa premoltiplicati, anche se la trama non usa la trasparenza o la traslucidità.
La trama deve essere specificata in formato dds, usando uno dei formati di compressione a blocchi seguenti:
Compressione BC1_UNORM
Compressione BC2_UNORM
Compressione BC3_UNORM
Le mipmap non sono supportate.
Per creare una trama compatibile con le convenzioni di rendering Direct2D
Iniziare con una trama di base. Caricare un'immagine esistente o crearne una nuova. Per supportare la compressione a blocchi in formato dds, specificare una trama con valori di larghezza e altezza multipli di quattro, ad esempio 100x100, 128x128 o 256x192. Poiché mipmapping non è supportato, la trama non deve essere quadrata e non deve essere una potenza di due dimensioni.
Configurare il file di trama in modo che venga elaborato dalla pipeline di contenuti immagine. In Esplora soluzioni aprire il menu di scelta rapida per il file di trama creato e quindi scegliere Proprietà. Nella pagina Proprietà di configurazione>Generale impostare la proprietà Tipo di elemento su Image Content Pipeline (Pipeline di contenuti immagine). Assicurarsi che la proprietà Contenuto sia impostata su Sì e che l'opzione Exclude From Build (Escludi da compilazione) sia impostata su No, quindi scegliere il pulsante Applica. Viene visualizzata la pagina delle proprietà di configurazione Image Content Pipeline (Pipeline di contenuti immagine).
Impostare il formato di output su uno dei formati compressi a blocchi. Nella pagina Proprietà di configurazione>Image Content Pipeline (Pipeline di contenuti immagine) >Generale, impostare la proprietà Comprimi su BC3_UNORM compression (/compress:BC3_UNORM) (Compressione BC3_UNORM (/compress:BC3_UNORM)). È possibile scegliere uno degli altri formati BC1, BC2 o BC3, in base alle specifiche esigenze. Direct2D attualmente non supporta le trame BC4, BC5, BC6 o BC7. Per altre informazioni sui diversi formati BC, vedere Block Compression (Direct3D 10) (Compressione a blocchi (Direct3D 10)).
Nota
Il formato di compressione specificato determina il formato del file generato dalla pipeline di contenuti immagine. Questo si differenzia dalla proprietà Formato dell'immagine di origine nell'editor di immagini, che determina il formato del file di immagine di origine così com'è archiviato su disco, ovvero il formato di lavoro. In genere, non è consigliabile usare un formato di lavoro compresso.
Configurare la pipeline di contenuti immagine in modo da generare output che usa il valore alfa premoltiplicato. Nella pagina Proprietà di configurazione>Image Content Pipeline (Pipeline di contenuti immagine) >Generale, impostare la proprietà Convert to pre-multiplied alpha format (Converti in formato alfa premoltiplicato) su Sì (/generatepremultipliedalpha).
Configurare la pipeline di contenuti immagine in modo che non generi mipmap. Nella pagina Proprietà di configurazione>Image Content Pipeline (Pipeline di contenuti immagine)>Generale impostare la proprietà Genera MIP su No.
Scegli il pulsante OK.
Quando si compila il progetto, la pipeline di contenuti immagine converte l'immagine di origine dal formato di lavoro al formato di output specificato, generando anche valori alfa premoltiplicato. Il risultato viene copiato nella directory di output del progetto.
Contenuto correlato
Per altre informazioni su come usare l'editor di immagini in Visual Studio, vedere Usare trame e immagini per creare o modificare trame e immagini usate nello sviluppo di app DirectX.