天天看點

Direct3D 9學習筆記(6)紋理概念

即貼圖

一.加載圖檔資源

Direct3D 9學習筆記(6)紋理概念

二.設定目前紋理

SetTexture方法

D3DXCreateTextureFromFile(
    Device,
    "dx5_logo.bmp",
    &Tex);

Device->SetTexture(0, Tex);
      
Direct3D 9學習筆記(6)紋理概念

三.紋理過濾器

兩種情況:放大和縮小

Direct3D 9學習筆記(6)紋理概念

三種設定方式

Direct3D 9學習筆記(6)紋理概念
//
// Values for D3DSAMP_***FILTER texture stage states
//
typedef enum _D3DTEXTUREFILTERTYPE
{
    D3DTEXF_NONE            = 0,    // filtering disabled (valid for mip filter only)
    D3DTEXF_POINT           = 1,    // nearest
    D3DTEXF_LINEAR          = 2,    // linear interpolation
    D3DTEXF_ANISOTROPIC     = 3,    // anisotropic
    D3DTEXF_PYRAMIDALQUAD   = 6,    // 4-sample tent
    D3DTEXF_GAUSSIANQUAD    = 7,    // 4-sample gaussian
/* D3D9Ex only -- */
#if !defined(D3D_DISABLE_9EX)

    D3DTEXF_CONVOLUTIONMONO = 8,    // Convolution filter for monochrome textures

#endif // !D3D_DISABLE_9EX
/* -- D3D9Ex only */
    D3DTEXF_FORCE_DWORD     = 0x7fffffff,   // force 32-bit size enum
} D3DTEXTUREFILTERTYPE;
      

設定方法

Device->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
Device->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
      

四.漸進紋理鍊

即一個圖檔一下子縮小到很小就可能會産生較大差異化,逐漸減小以盡量保持原圖品質

Direct3D 9學習筆記(6)紋理概念

五.總結