贵阳网站建设980包年秒搜科技Sa50,做古代风格头像的网站,重庆发布的最新消息今天,知名建站的公司纹理不同于缓冲区资源#xff0c;因为缓冲区资源仅存储数据数组#xff0c;而纹理却可以具有多个mipmap层级(后 文有介绍)#xff0c;GPU会基于这个层级进行相应的特殊操作#xff0c;例如运用过滤器以及多重采样。支持这些特殊 的操作纹理资源都被限定为一些特定的数据格式…纹理不同于缓冲区资源因为缓冲区资源仅存储数据数组而纹理却可以具有多个mipmap层级(后 文有介绍)GPU会基于这个层级进行相应的特殊操作例如运用过滤器以及多重采样。支持这些特殊 的操作纹理资源都被限定为一些特定的数据格式。而缓冲区资源就没有这项限制它们可以存储任意类 型的数据。纹理所支持的数据格式由枚举类型DXG1_FORMAT来表示。下面是纹理格式文档
https://learn.microsoft.com/zh-cn/windows/win32/api/dxgiformat/ne-dxgiformat-dxgi_format
以某种具体类型创建的资源其格式是不能更改的。这将 使该资源在运行时的访问得以优化……。”因此我们应当只在不得已的情况下才使用 无类型资源否则就用具体的类型来创建资源。
一个纹理可以绑定到渲染流水线的不同阶段一个常见的例子是既可将一纹理用作渲染目标即 Direct3D中的渲染到纹理技术又能把它作为着色器资源即在着色器中对该纹理进行采样。一个纹 理可以当作渲染目标也可以充当着色器资源但是不能同时“身兼数职”。将数据渲染到一个纹理后 再用它作为着色器资源这种方法称为渲染到纹理render-to-texture。
纹理坐标 Direct3D所采用的纹理坐标系是由指向图像水平正方向的u轴与指向图像垂直正方向的v轴所组成的。取值范围为0≤u,v≤1的坐标(以V)标定的是一 种称为纹素(texel)的纹理元素。
对于每个3D三角形来说我们希望在将要映射于 其上的纹理中定义出与之对应的三角形。设 p0、p1以及p2为3D三角形的3个顶点它们分别对应 于纹理坐标q0、q1与q2。针对3D三角形上任意一点(x, y,z)处的纹理坐标(u,v),我们都可以通过与3D三角形坐标插值所用的相同参数s、t,对顶点纹理坐标进行线性插值来求得。这就是说如果: 左侧的三角形位于3D空间我们将把右侧纹理上的2D三角形映射到左侧的3D三角形上
(x,y,z)p p0 s ( p1 - p0 ) t ( p2 - p0 )
当s ≥ 0, t ≥ 0, s t ≤ 1 时那么
u,vq q0 s ( q1 - q0 ) t ( q2 - q0)
依此方法便可求出三角形上每个点处的对应纹理坐标。