Sdílet prostřednictvím


Mip-map Generation Variant

Umožňuje mapy mip na textury, které nejsou vykreslení cíle.

Výklad

Mapy MIP jsou především používá k odstranění aliasy artefaktů v textury pod minimalizaci předem výpočet menší verzí systému struktury.I když tyto další textury spotřebovat paměti GPU – o 33 procent více než původní struktury – jsou také efektivnější vzhledem k tomu, že více jejich povrchu, která vyhoví v mezipaměti struktury GPU a její obsah dosažení vyšší využití.

U 3D scény doporučujeme mapy mip při paměti je k dispozici k uložení Další textury, protože jejich zvýšit výkon vykreslování a kvalitu obrázku.

Pokud je tato varianta zobrazena značné zvýšení výkonu, označuje, že používáte textury bez povolení mapy mip a tedy není vytěžit maximum z mezipaměti struktury.

Poznámky

Generování mapy MIP nucené při každém volání na ID3D11Device::CreateTexture2D , který vytvořil zdroj struktury.Konkrétně generování mapy mip nucené při předaný objekt D3D11_TEXTUR2D_DESC pDesc popisuje neměnnými shader prostředku. To je:

  • Člen BindFlags má pouze příznak D3D11_BIND_SHADER_RESOURCE nastaven.

  • Člen využití je nastavena na D3D11_USAGE_DEFUALT nebo D3D11_USAGE_IMMUTABLE.

  • Člen CPUAccessFlags je nastaven na hodnotu 0 (žádný přístup CPU).

  • Člen SampleDesc má jeho počtu členů nastaven na hodnotu 1 (žádné více ukázky proti aliasy (MSAA)).

  • Člen MipLevels je nastavena na hodnotu 1 (žádné existující mip mapy).

Když počáteční data pochází aplikací, formát struktury musí podporovat mapy mip automatické generování – stanovený D3D11_FORMAT_SUPPORT_MIP_AUTOGEN – není-li formát BC1, BC2 nebo BC3; v opačném případě struktury se nemění a žádné mapy mip jsou generovány, pokud je zadána počáteční data.

Je-li mapy mip byly automaticky generovány pro struktury, zavolá na ID3D11Device::CreateShaderResourceView úpravou během přehrávání používat řetězu mip odebraných struktury.

Příklad

Generování mapy Mip variant lze reprodukovat pomocí kódu nějak takto:

D3D11_TEXTURE2D_DESC texture_description;

// ...

texture_description.MipLevels = 0; // generate a full mipchain

std::vector<D3D11_SUBRESOURCE_DATA> initial_data(num_mips);

for (auto&& mip_level : initial_data)
{
    // fill mip_level with the application-supplied initial data
}

d3d_device->CreateTexture2D(&texture_description, initial_data.data(), &texture)

Chcete-li vytvořit struktury, který má úplný řetěz mip, nastavte D3D11_TEXTURE2D_DESC::MipLevels na hodnotu 0.Počet úrovní mip v úplný řetěz mip je floor(log2(n) + 1), kde n je největší rozměr struktury.

Mějte na paměti, která při poskytování počátečních dat k CreateTexture2D, je třeba zadat objekt D3D11_SUBRESOURCE_DATA pro každou úroveň mip.

[!POZNÁMKA]

Pokud chcete zadat vlastní mip úrovně obsah namísto vygenerovaly automaticky, musíte vytvořit své textury pomocí obrázek editor, který podporuje mapované mip textury a potom načíst soubor a mezních hodnot mip k CreateTexture2D.

Viz také

Referenční dokumentace

Half/Quarter Texture Dimensions Variant