纹理映射(1)

一,纹理坐标系统。

  坐标的范围为[0,1]

 u坐标水平向右,v坐标水平向下。

二,纹理过滤。

分三种模式:nearest point sampling 取最近的纹素颜色值。

linear filtering 取屏幕像素周围的2*2个纹素求得颜色值。

anisotropic filtering 效果最好,也最耗性能,使用该法需指定MAXANISOTROPY的值,值越大效果越好。

三,Mipmap.

D3DXCreateTextureFromFile()以及D3DXFilterTexture()可以又软件模式生成mipmap图。

若使用硬件模式,可使用IDirect3DBaseTexture9::GenerateMipSubLevels();

四,Address Mode

分四种模式:WRAP;简单重复BORDER;取边界颜色MIRROR映射;CLAMP裁剪。

五。多纹理。

1.多个贴图颜色直接相加。

2.通过通道。

六,球面映射和柱面映射

关键在于将顶点坐标从直角坐标系转换到球面坐标系和柱面坐标系:

球面:ρ=sqrt(x*x+y*y+z*z);

         theta=atan2f(z/x)

         phi=acos(y/sqrtZ(xx+yy+zz);

柱面:r=sqrt(xx+zz);

        theta=atan(z/x)

          y=y;

球面坐标系下,theta[0,2π]---->theta[0,1],此即为u坐标;

                    phi【0,pi]---->phi[0,1],此即为v坐标;

柱面坐标系下:theta[0,2pi]---->[0,1]得u坐标;

                     y[a,b]---->y[a-b,0]---->y[-h,0]--->[-1,0]---->[0,1]得v坐标。

七,动态纹理。

随时间变化,dt的增加对纹理坐标加一增量delta=m*dt;当纹理坐标达到1时,重置为o。

 

你可能感兴趣的:(border)