纹理和资源概述
1. 为什么需要纹理?
我们的演示程序正在变得越来越有趣,但是顶点颜色无法体现真实世界物体所具有的细节。纹理贴图映射(texture mapping)是一种将图像数据映射到三角形表面的技术,它可以显著提高场景的细节和真实感。例如,我们可以创建一个立方体,然后将一
个板条箱纹理映射到立方体的每个面上,使它看上去更像是一个板条箱(参见下图)。
2. 纹理如何表示?
回顾我们自从第4章之后学习和使用过的一些纹理;尤其是深度缓冲区和后台缓冲区,它们都是通过ID3D11Texture2D接口描述的2D纹理对象。在本节中,我们将回顾第4章讲过的一些有关纹理和材质的知识。
2D纹理是一种数据元素矩阵。2D纹理的用途之一是存储2D图像数据,在纹理的每个元素中保存一个像素颜色。但这不是纹理的唯一用途;例如,在一种称为法线贴图映射(normal mapping)的高级技术中,纹理存储的不是颜色,而是3D向量。因此,从通常意义上讲,纹理用来存储图像数据,但是在实际应用中纹理可以有更广泛的用途。1D纹理(ID3D11Texture1D)类似于一个1D数据元素数组,3D纹理(ID3D11Texture3D)类似一个3D数据元素数组。1D、2D、3D纹理接口都继承自ID3D11Resource接口。
本章稍后会讨论纹理的更多特性。纹理比数据数组要复杂的多;纹理可以带有多级渐近纹理层(mipmap level),GPU可以在纹理上执行特殊运算,比如使用过滤器(filter)和多重采样(multisampling)。
3. 纹理内部的数据可以是什么?
并非所有数据块都能存入纹理;纹理只支持特定格式的数据存储,这些格式由DXGI_

本文介绍了DirectX11中的纹理和资源,包括纹理的重要性、如何表示纹理、纹理的用途及其数据格式。详细讨论了2D纹理、1D和3D纹理,以及纹理在GPU上的操作如过滤和多重采样。还提到了纹理数据的DXGI_FORMAT枚举类型,以及纹理作为渲染目标和着色器资源的角色,强调了资源视图在Direct3D中的作用。

710

被折叠的 条评论
为什么被折叠?



