Condividi tramite


Filtro delle trame (Direct3D 9)

Quando Direct3D esegue il rendering di una primitiva, esegue il mapping della primitiva 3D a uno schermo 2D. Se la primitiva ha una trama, Direct3D deve usare tale trama per produrre un colore per ogni pixel nell'immagine sottoposta a rendering 2D della primitiva. Per ogni pixel nell'immagine sullo schermo della primitiva, deve ottenere un valore di colore dalla trama. Questo processo è denominato filtro delle trame.

Quando viene eseguita un'operazione di filtro trama, la trama utilizzata viene in genere ingrandita o minimizzata. In altre parole, viene eseguito il mapping in un'immagine primitiva più grande o più piccola di se stessa. L'ingrandimento di una trama può comportare il mapping di molti pixel a un texel. Il risultato può essere un aspetto in blocchi. La minimizzazione di una trama spesso significa che viene eseguito il mapping di un singolo pixel a molti texel. L'immagine risultante può essere sfocata o con alias. Per risolvere questi problemi, è necessario eseguire alcune combinazioni dei colori del texel per arrivare a un colore per il pixel.

Direct3D semplifica il processo complesso di filtro delle trame. Offre tre tipi di filtro delle trame: filtro lineare, filtro anisotropico e filtro mipmap. Se non si seleziona alcun filtro delle trame, Direct3D usa una tecnica denominata campionamento dei punti più vicini.

Ogni tipo di filtro delle trame presenta vantaggi e svantaggi. Ad esempio, il filtro lineare delle trame può produrre bordi frastagliati o un aspetto in blocchi nell'immagine finale. Tuttavia, si tratta di un metodo di filtraggio delle trame a basso sovraccarico di calcolo. L'applicazione di filtri con mipmap produce in genere i risultati migliori, soprattutto se combinati con il filtro anisotropico. Tuttavia, richiede la maggior parte della memoria delle tecniche supportate da Direct3D.

Le applicazioni che usano puntatori all'interfaccia trama devono impostare il metodo di filtro delle trame corrente chiamando il metodo IDirect3DDevice9::SetSamplerState . Impostare il valore del primo parametro sul numero di indice intero (0-7) della trama per cui si sta selezionando un metodo di filtro delle trame. Passare D3DSAMP_MAGFILTER, D3DSAMP_MINFILTER o D3DSAMP_MIPFILTER per il secondo parametro per impostare il filtro di ingrandimento, minificazione o mipmapping. Passare un membro del tipo enumerato D3DTEXTUREFILTERTYPE come valore nel terzo parametro.

Questa sezione presenta i metodi di filtro delle trame supportati da Direct3D. È organizzato negli argomenti seguenti.

Nota

Anche se gli stati di rendering del filtro delle trame presenti nel tipo enumerato D3DRENDERSTATETYPE vengono sostituito dagli stati della fase della trama, IDirect3DDevice9::SetRenderState, anziché la versione IDirect3DDevice2, non ha esito negativo se si tenta di usarli. Il sistema esegue invece il mapping degli effetti di questi stati di rendering alla prima fase della catena multitexture, fase 0. Le applicazioni non devono combinare gli stati di rendering legacy con i corrispondenti stati di fase della trama, perché possono verificarsi risultati imprevedibili.

 

Trame Direct3D