Direct3D 10 的坐标系为像素和纹素定义。
Direct3D 9 和 Direct3D 10 之间的差异:
- Direct3D 10 将左上角像素定义为呈现目标的原点。
- Direct3D 9 将左上角像素的中心定义为呈现目标的原点。
- Direct3D 9 的 像素坐标系
像素坐标系
Direct3D 10 中的像素坐标系定义左上角呈现目标的原点。 如下图所示。 像素中心从整数位置偏移(0.5f,0.5f)。
direct3d 10图
Direct3D 9 的像素坐标系
为了参考,下面是 Direct3D 9 的像素坐标系,它将原点或呈现目标定义为左上角像素的中心(0.5,0.5),如下图所示。 在 Direct3D 9 中,像素中心位于整数位置。
direct3d 9图
纹素坐标系
纹素坐标系的原点位于纹理左上角,如下图所示。 这使得呈现屏幕对齐的纹理(在 Direct3D 10 中),因为像素坐标系与纹素坐标系对齐。
纹素坐标系关系图
纹素坐标系
纹理坐标用规范化数字或刻度数表示;每个纹理坐标映射到特定的纹素,如下所示:
对于规范化坐标:
- 点采样:纹素 # = floor(U * Width)
- 线性采样:左纹素 # = floor(U * Width),右纹素 # = 左纹素 # + 1
对于缩放坐标:
- 点采样:纹素 # = floor(U)
- 线性采样:左纹素 # = floor(U - 0.5),右纹素 # = 左纹素 # + 1
其中宽度是纹理的宽度(以纹素为单位)。
纹理地址包装在计算纹素位置后发生。
相关主题