Export formátovaného formátu textury pomocí kanálu obsahu obrázku v sadě Visual Studio
Tento článek popisuje, jak pomocí kanálu obsahu obrázku exportovat textury, jako jsou například ty, které obsahují mipmapy nebo premultiplied alfa, nebo dokonce ty, které lze použít s direct2D nebo javascriptovými aplikacemi.
Export textury obsahující mipmapy
Kanál obsahu obrázku může generovat mipmapy ze zdrojové image jako součást fáze sestavení projektu. Abyste dosáhli určitých efektů, musíte někdy zadat obsah obrázku jednotlivých úrovní MIP ručně. Pokud nepotřebujete zadat obsah obrázku jednotlivých úrovní MIP ručně, generování map mipmap v době sestavení zajistí, že se obsah mipmap nikdy nesynchronizuje. Eliminuje také náklady na výkon generování mipmap za běhu.
Tento článek se věnuje následujícím tématům:
Konfigurace zdrojové image pro zpracování kanálem obsahu obrázku
Konfigurace kanálu obsahu obrázku pro generování mipmap
Export mipmap
Mipmapping poskytuje automatické úrovně podrobností na obrazovce pro texturované povrchy ve 3D hře nebo aplikaci. Vylepšuje výkon vykreslování hry nebo aplikace tím, že předkomputuje vzorkované verze textury. Předkomputování verzí vzorkovaných dolů znamená, že při každém vzorkování není nutné vzorkovat celou texturu.
Export textury s mipmapami
Začněte základní texturou. Načtěte existující soubor obrázku nebo ho vytvořte. Chcete-li podporovat mipmapy, zadejte texturu, která má šířku a výšku, které mají stejnou velikost, například 64x64, 256x256 nebo 512x512.
Nakonfigurujte soubor textury, který jste právě vytvořili, aby byl zpracován kanálem obsahu obrázku. V Průzkumník řešení otevřete místní nabídku pro soubor textury, který jste vytvořili, a pak zvolte Vlastnosti. Na stránce Obecné vlastnosti>konfigurace nastavte vlastnost Typ položky na kanál obsahu obrázku. Ujistěte se, že vlastnost Content je nastavena na Ano a Vyloučit z sestavení je nastavena na Ne. Vyberte Použít.
Zobrazí se stránka vlastností konfigurace kanálu obsahu obrázku.
Nakonfigurujte kanál obsahu obrázku tak, aby generoval mipmapy. Na stránce Obecné kanál>obsahu image vlastností>konfigurace nastavte vlastnost Generate Mips na Yes (/generatemips).
Vyberte OK.
Když projekt sestavíte, kanál obsahu obrázku převede zdrojový obrázek z pracovního formátu na zadaný výstupní formát, včetně úrovní MIP. Výsledek se zkopíruje do výstupního adresáře projektu.
Export textury s přednásobenou hodnotou alfa
Kanál obsahu obrázku může generovat předem připravené alfa textury ze zdrojového obrázku. Jejich použití a robustnější než textury, které neobsahují premultiplied alfa, můžou být jednodušší.
Tento dokument ukazuje tyto aktivity:
Konfigurace zdrojové image pro zpracování kanálem obsahu obrázku
Konfigurace kanálu obsahu obrázku tak, aby vygenerovala předem nastavenou alfa.
Premultiplied alpha
Premultiplied alfa nabízí několik výhod oproti konvenční, ne premultied alfa, protože lépe představuje skutečnou interakci světla s fyzickými materiály oddělením barevného příspěvku texelu (barva, kterou přidává do scény) od jeho průsvitnosti (množství podkladové barvy, kterou umožňuje). Mezi výhody použití premultiplied alfa patří:
Kombinace s premultiplied alfa je asociativní operace; Výsledek prolnutí více průsvitných textur je stejný bez ohledu na pořadí, ve kterém jsou textury kombinovány.
Vzhledem k asociativní povaze kombinování s premultiplied alfa, multi-pass vykreslování průsvitných objektů je zjednodušené.
Pomocí premultiplied alfa lze současně dosáhnout jak čistě přídatného mixování (nastavením alfa na nulu), tak lineární interpolace. Například v částicovém systému může se směšovaná částice z směšovaného ohně stát průsvitnou kouřovou částice, která se směšuje pomocí lineární interpolace. Bez premultifikovaných alfa byste museli nakreslit částice ohně odděleně od kouřových částic a upravit stav vykreslení mezi voláními kreslení.
Textury, které používají premultiplied alfa komprimaci s vyšší kvalitou než ty, které nemají, a neukazují zabarvené hrany – nebo "halo efekt", což může vést k tomu, že směšujete textury, které nepoužívají premultiplied alfa.
Vytvoření textury, která používá premultiplied alfa
Začněte základní texturou. Načtěte existující soubor obrázku nebo ho vytvořte.
Nakonfigurujte soubor textury tak, aby byl zpracován kanálem obsahu obrázku. V Průzkumník řešení otevřete místní nabídku pro soubor textury a pak zvolte Vlastnosti. Na stránce Obecné vlastnosti>konfigurace nastavte vlastnost Typ položky na kanál obsahu obrázku. Ujistěte se, že vlastnost Content je nastavena na Ano a Vyloučit z sestavení je nastavena na Ne a pak zvolte tlačítko Použít. Zobrazí se stránka vlastností konfigurace kanálu obsahu obrázku.
Nakonfigurujte kanál obsahu obrázku tak, aby vygeneroval premultiplied alfa. Na stránce Obecné kanál>obsahu obrázku vlastností>konfigurace nastavte vlastnost Převést na předem vynásobený alfa formát na Ano (/generatepremultipliedalpha).
Zvolte tlačítko OK.
Při sestavování projektu kanál obsahu obrázku převede zdrojový obrázek z pracovního formátu na zadaný výstupní formát – to zahrnuje převod obrázku na předem připravený alfa formát a výsledek se zkopíruje do výstupního adresáře projektu.
Export textury pro použití s rozhraním Direct2D nebo aplikacemi JavaScript
Kanál obsahu obrázku může generovat textury, které jsou kompatibilní s interními konvencemi vykreslování Direct2D. Textury tohoto druhu jsou vhodné pro použití v aplikacích, které používají Direct2D, a v aplikacích pro UPW vytvořených pomocí JavaScriptu.
Tento dokument ukazuje tyto aktivity:
Konfigurace zdrojové image pro zpracování kanálem obsahu obrázku
Konfigurace kanálu obsahu obrázku pro vygenerování textury, kterou můžete použít v aplikaci Direct2D nebo JavaScript.
Vygenerujte blokový komprimovaný soubor .dds .
Vygenerujte premultiplied alfa.
Zakažte generování mipmap.
Konvence vykreslování v Direct2D
Textury, které se používají v kontextu Direct2D, musí odpovídat těmto interním konvencím vykreslování Direct2D:
Direct2D implementuje transparentnost a průsvitnost pomocí premultiplied alfa. Textury používané s Direct2D musí obsahovat premultiplied alfa, i když textura nepoužívá průhlednost nebo průsvitnost.
Textura musí být zadána ve formátu .dds pomocí jednoho z těchto formátů komprese bloků:
komprese BC1_UNORM
komprese BC2_UNORM
komprese BC3_UNORM
Mapy Mipmap se nepodporují.
Vytvoření textury kompatibilní s konvencemi vykreslování Direct2D
Začněte základní texturou. Načtěte existující image nebo vytvořte novou. Chcete-li podporovat kompresi bloků ve formátu .dds , zadejte texturu, která má šířku a výšku, která je násobkem čtyř velikostí, například 100x100, 128x128 nebo 256x192. Vzhledem k tomu, že mipmapping není podporovaný, textura nemusí být čtvercová a nemusí být mocnina dvou velikostí.
Nakonfigurujte soubor textury tak, aby byl zpracován kanálem obsahu obrázku. V Průzkumník řešení otevřete místní nabídku pro soubor textury, který jste vytvořili, a pak zvolte Vlastnosti. Na stránce Obecné vlastnosti>konfigurace nastavte vlastnost Typ položky na kanál obsahu obrázku. Ujistěte se, že vlastnost Content je nastavena na Ano a Vyloučit z sestavení je nastavena na Ne a pak zvolte tlačítko Použít. Zobrazí se stránka vlastností konfigurace kanálu obsahu obrázku.
Nastavte výstupní formát na jeden z komprimovaných formátů bloku. Na stránce Obecné kanál>obsahu obrázku vlastností>konfigurace nastavte vlastnost Komprimovat na BC3_UNORM kompresi (/compress:BC3_UNORM). V závislosti na vašich požadavcích můžete zvolit kterýkoli z dalších formátů BC1, BC2 nebo BC3. Direct2D v současné době nepodporuje textury BC4, BC5, BC6 nebo BC7. Další informace o různých formátech BC naleznete v tématu Komprese bloků (Direct3D 10).
Poznámka:
Zadaný formát komprese určuje formát souboru vytvořeného kanálem obsahu obrázku. To se liší od vlastnosti Formát zdrojové image v Editoru obrázků, která určuje formát zdrojového souboru bitové kopie jako uložený na disku – to znamená pracovní formát. Obvykle nechcete, aby byl komprimovaný pracovní formát.
Nakonfigurujte kanál obsahu obrázku tak, aby vytvářel výstup, který používá premultiplied alfa. Na stránce Obecné kanál>obsahu obrázku vlastností>konfigurace nastavte vlastnost Převést na předem vynásobený alfa formát na Ano (/generatepremultipliedalpha).
Nakonfigurujte kanál obsahu obrázku tak, aby negeneroval mapy mipmap. Na stránce Obecné kanál obsahu>image vlastností>konfigurace nastavte vlastnost Generate Mips na Ne.
Zvolte tlačítko OK.
Když projekt sestavíte, kanál obsahu obrázku převede zdrojový obrázek z pracovního formátu na zadaný výstupní formát – převod zahrnuje generování premultiplied alfa– a výsledek se zkopíruje do výstupního adresáře projektu.
Související obsah
Další informace o tom, jak pomocí Editoru obrázků v sadě Visual Studio vytvářet nebo upravovat textury a obrázky používané při vývoji aplikací DirectX, najdete v části Práce s texturami a obrázky .