纹理筛选
当通过将 3D 基元映射到 2D 屏幕的形式呈现基元时,纹理筛选针对基元的 2D 呈现图像中的每个像素生成一种颜色。
当 Direct3D 呈现基元时,会将 3D 基元映射到 2D 屏幕。 如果基元有纹理,则 Direct3D 必须使用该纹理,以针对基元的 2D 呈现图像中的每个像素生成一种颜色。 基元屏幕图像中的每个像素都必须从纹理获得颜色值。 此过程称作纹理筛选。
执行纹理筛选操作时,所使用的纹理通常会被放大或缩小。 也就是说,该纹理会被映射到大于或小于自身的基元图像。 放大纹理可使多个像素映射到一个纹素。 由此可能生成大块的图像。 放大纹理通常指单个像素被映射到多个纹素。 由此获得的图像可能模糊不清或混叠。 要解决这些问题,必须进行一些纹素颜色的混合,以混合出一种适合的像素颜色。
Direct3D 使复杂的纹理筛选过程变得简单。 Direct3D 提供三类纹理筛选,即线性筛选、各向异性筛选以及 mipmap 筛选。 如果你未选择任何纹理筛选,则 Direct3D 会使用最近点采样技术。
每类纹理筛选各有利弊。 例如,线性纹理筛选可能产生锯齿形边缘或者大块的最终图像。 但从计算角度,这是一个低开销的纹理筛选方法。 mipmap 筛选的效果最好,与各向异性筛选结合使用时尤为如此。 但这对内存容量的要求最高,以存储 Direct3D 支持的技术。
纹理筛选的类型
Direct3D 支持以下纹理筛选方法。
本部分中的内容
主题 | 说明 |
---|---|
应用程序无需不使用纹理筛选。 可以将 Direct3D 设为使其计算纹素地址(通常不计算为整数),并使用最接近的整数地址复制纹素的颜色。 此过程称作最近点采样。 |
|
双线性筛选 计算最接近取样点的 4 个纹素的加权平均值。 与最近点筛选相比,此筛选方法更加准确和通用。 此方法很有效,因为它是在现代图形硬件中实现的。 |
|
各向异性是可见于 3D 对象的纹素中的失真,此 3D 对象的表面面向与屏幕平面相对的角度。 当各向异性基元中的像素映射到纹素时,其形状就会失真。 |
|
mipmap 是一种纹理序列,每个纹理都以逐步降低的分辨率表示同一图像。 mipmap 中各图像或各级的高度和宽度都比上一级小二次方。 |
相关主题