Dela via


Automatisk generering av Mipmaps (Direct3D 9)

Nu kan du automatiskt skapa en mipmap som är en serie texturer, var och en filtrerad till en annan upplösning. Mipmaps används ofta för att tillhandahålla olika detaljnivåer vid återgivning. Att automatiskt generera mipmaps vid skapande av struktur drar nytta av maskinvarufiltrering eftersom mipmap finns i videominnet.

Om du vill generera en mipmap automatiskt anger du en ny D3DUSAGE_AUTOGENMIPMAP innan du anropar CreateTexture-. Generering av undernivå från och med nu är helt transparent för programmet. Endast den översta texturnivån är tillgänglig för programmet. texturundernivåerna är inte tillgängliga eftersom de endast skapas när det behövs av drivrutinen. I fall där undernivågenerering kan ta mycket tid använder du GenerateMipSubLevels för att antyda för drivrutinen att den ska generera undernivåer vid en tidpunkt som är lämplig för programmet.

Mipmap-filtrering

SetAutoGenFilterType styr filtreringskvaliteten under automatisk generering. Om du ändrar filtertypen smutsas mipmap-undernivåerna bort och de återskapas. Använd GetAutoGenFilterType för att hämta den aktuella filtertypen. Standardfiltertypen är D3DTEXF_LINEAR. Om drivrutinen inte stöder ett linjärt filter anges filtertypen till D3DTEXF_POINT.

Dessa metoder har ingen effekt om strukturen inte skapas med D3DUSAGE_AUTOGENMIPMAP Och inget fel returneras. Alla filtertyper som stöds av drivrutinen för regelbunden texturfiltrering stöds för automatisk generering förutom D3DTEXF_NONE. För varje resurstyp bör drivrutinerna ha stöd för alla filtertyper som rapporteras i motsvarande textur, CubeTexture och volymtexturfiltertak.

Om du vill kontrollera vilka filtertyper som stöds kontrollerar du vilka tak som stöds av TextureFilterCaps- och/eller CubeTextureFilterCaps-medlemmar i D3DCAPS9.

Stöd för Mipmap

D3DUSAGE_AUTOGENMIPMAP är bara ett tips, och om du anger detta när strukturen skapas eller när du anropar CheckDeviceFormat inte skulle orsaka något fel på någon av DDI-typerna (enhetsdrivrutinsgränssnittet).

Att anropa UpdateTexture är ogiltigt när källan är en automatiskt genererad mipmap, men målet är det inte. Källan kan vara en icke-automatiskt genererad mipmap och målet kan vara en automatiskt genererad mipmap. I det här fallet uppdateras endast den översta matchningsnivån. Alla andra källundernivåer ignoreras. På samma sätt uppdateras endast den översta matchande nivån när både källan och målet genereras automatiskt. Undernivåerna från källan ignoreras och målundernivåerna återskapas.

Om du vill söka efter stöd för automatisk generering av mipmaps kontrollerar du att D3DCAPS2_CANAUTOGENMIPMAP har angetts. I så fall anropar du CheckDeviceFormat med D3DUSAGE_AUTOGENMIPMAP. Om returvärdet är D3D_OK kommer mipmaps garanterat att genereras automatiskt. Om returvärdet är D3DOK_NOAUTOGEN innebär det att anropet för att skapa lyckas, men det kommer inte att genereras några mipmaps.

Direct3D-texturer