Поделиться через


Системы координат (Direct3D 10)

Системы координат для Direct3D 10 определяются для пикселей и текселей.

Различия между Direct3D 9 и Direct3D 10:

  • Direct3D 10 определяет верхний левый угол верхнего левого пикселя в качестве источника целевого объекта отрисовки.
  • Direct3D 9 определяет центр верхнего левого пикселя в качестве источника целевого объекта отрисовки.

 

Система координат пикселей

Система координат Текселя

Связанные темы

Система координат для пикселей

Система координат пикселей в Direct3D 10 определяет источник целевого объекта отрисовки в левом верхнем углу. Как показано на следующей схеме. Центры пикселей смещены на (0,5f, 0,5f) от целочисленных расположений.

схема системы координат для пикселей в direct3d 10

Система координат пикселей для Direct3D 9

Для справки ниже приведена система координат пикселей для Direct3D 9, определяющая источник или целевой объект отрисовки в качестве центра верхнего левого пикселя (0,5,0,5) от верхнего левого угла, как показано на следующей схеме. В Direct3D 9 центры пикселей находятся в целочисленных расположениях.

схема системы координат пикселей в direct3d 9

Система координат для текселей

Начало системы координат для текселей расположено в верхнем левом углу текстуры, как показано на следующем рисунке. Это делает отрисовку текстур, выровненных по экрану, тривиальной (в Direct3D 10), так как система координат пикселей выравнивается с системой координат текселя.

схема системы координат для текселей

Система координат для текселей

Координаты текстуры представлены в виде нормализованного или скалярного числа; каждая координата текстуры сопоставляется определенному текселю следующим образом.

Для нормализованной координаты:

  • Выборка точек: Texel # = floor(U * Width)
  • Линейная выборка: левый тексель # = пол(U * ширина), правый тексель # = левый тексель # + 1

Для скалярной координаты:

  • Выборка точек: Texel # = floor(U)
  • Линейная выборка: левый тексель # = floor(U - 0,5), правый тексель # = левый тексель # + 1

Где ширина — это ширина текстуры (в текселях).

Упаковка адреса текстуры происходит после расчета расположения текселя.

Ресурсы (Direct3D 10)