一,纹理坐标系统。
坐标的范围为[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。