Texturer med flera element (Direct3D 9)
Traditionella texturer anses vara enelementsstrukturer. Texturer med flera element gör det möjligt för program att skriva samtidigt till flera element i en struktur från pixelskuggningen. Resultatet i nästa återgivningspass är att ett program kan använda ett eller flera av elementen som en textur med ett element , det vill: som indata till pixelskuggningen. Dessa ytterligare element kan betraktas som ett tillfälligt lager för mellanliggande resultat som kommer att användas i ett senare pass av programmet.
Den första generationen maskinvara som exponerar den här funktionen har följande begränsningar:
- Alla texturytor med flera element allokeras automatiskt. Den här begränsningen åtgärdas genom att behandla detta som en ny typ av ytformat med flera RGBA-kanaler mellanlagrade.
- Alla element i strukturen för flera element kan ha samma bitdjup. Den här begränsningen uttrycks av namnet på de nya ytformaten.
- En struktur med flera element kan inte vara primär/visningsbar. Med andra ord får den endast vara utanför skärmen. Den här begränsningen uttrycks av uppräkning i ytformat.
- Ingen gitter, alfatest, fogging, blandning, raster-op eller maskering tillåts. Ingen bearbetning efter pixelskuggning görs, förutom z-test- och stenciltestet.
- Strukturen kan inte vara en mipmap. Det går inte att skapa mip-kedjan.
- Samma element kan inte anges som en struktur samtidigt som det är ett återgivningsmål. Olika element i samma strukturyta med flera element kan dock samtidigt vara texturer och rendera mål.
- Inga antialias stöds.
- Texturytor med flera element kan inte filtreras när de används som textur. Den här begränsningen kan verifieras med CheckDeviceFormat.
- Texturytor med flera element kan inte låsas.
- Mer än en texturyta med flera element kan användas samtidigt genom att tilldela var och en till olika steg, precis som med normala texturer.
- Texturytor med flera element stöder konvertering av gamma från 2,2 till 1,0 vid en läsåtgärd, precis som med andra texturformat.
- Vissa implementeringar tillämpar inte skrivmasken för utdata (D3DRS_COLORWRITEENABLE). De som kan ha oberoende färgskrivningsmasker. Detta uttrycks med hjälp av en ny funktionsbit. Antalet tillgängliga oberoende färgskrivningsmasker är lika med det maximala antalet element som enheten kan använda.
- Clear rensar alla element i strukturen med flera element som anges som återgivningsmål.
Användningen av texturer med flera element följer dessa steg:
- Program identifierar stöd för den här funktionen genom att söka efter tillgängligheten för texturformat med flera element.
- Programmet skapar dessa ytor genom att anropa CreateTexture.
- Programmet anger ytan som ett återgivningsmål med hjälp av anropet SetRenderTarget. Pixelskuggningen ger utdata till ytorna med hjälp av instruktionen mov – ps.
- SetTexture anropas för att ange en texturyta med flera element till en viss fas. Precis som med andra texturer får samma yta ställas in på flera steg samtidigt.
- SetSamplerState anropas för att ange D3DSAMP_ELEMENTINDEX till lämpligt elementnummer i den textur med flera element som exempelexempel på. Standardvärdet för det här tillståndet är 0, vilket innebär att icke-flera element-texturer fungerar. Om du ställer in det här tillståndet på ett olämpligt tal resulterar det i ett odefinierat beteende – om strukturen för flera element bara är två element bred men exempeltagaren uppmanas att ta exempel från det fjärde elementet, till exempel.
API-stöd
Följande är en sammanfattning av API-elementen som stöder texturer med flera element:
Det D3DFMT_MULTI2_ARGB8 ytformatet uttrycker formatets interleaved karaktär.
Det D3DSAMP_ELEMENTINDEX sampler-tillståndet anger vilket elementindex som ska användas.
Följande återgivningstillstånd stöder texturer med flera element:
- D3DRS_COLORWRITEENABLE1
- D3DRS_COLORWRITEENABLE2
- D3DRS_COLORWRITEENABLE3
D3DRS_COLORWRITEENABLE gäller för återgivning av mål (eller element) noll.
Flaggan D3DPMISCCAPS_INDEPENDENTWRITEMASKS anger att enheten stöder oberoende skrivmasker för flera elementstrukturer eller flera återgivningsmål.
Relaterade ämnen