Системы координат (Direct3D 10)
Системы координат для Direct3D 10 определяются для пикселей и текселей.
Различия между Direct3D 9 и Direct3D 10:
- Direct3D 10 определяет верхний левый угол верхнего левого пикселя в качестве источника целевого объекта отрисовки.
- Direct3D 9 определяет центр верхнего левого пикселя в качестве источника целевого объекта отрисовки.
Система координат для пикселей
Система координат пикселей в Direct3D 10 определяет источник целевого объекта отрисовки в левом верхнем углу. Как показано на следующей схеме. Центры пикселей смещены на (0,5f, 0,5f) от целочисленных расположений.
Система координат пикселей для Direct3D 9
Для справки ниже приведена система координат пикселей для Direct3D 9, определяющая источник или целевой объект отрисовки в качестве центра верхнего левого пикселя (0,5,0,5) от верхнего левого угла, как показано на следующей схеме. В Direct3D 9 центры пикселей находятся в целочисленных расположениях.
Система координат для текселей
Начало системы координат для текселей расположено в верхнем левом углу текстуры, как показано на следующем рисунке. Это делает отрисовку текстур, выровненных по экрану, тривиальной (в Direct3D 10), так как система координат пикселей выравнивается с системой координат текселя.
Система координат для текселей
Координаты текстуры представлены в виде нормализованного или скалярного числа; каждая координата текстуры сопоставляется определенному текселю следующим образом.
Для нормализованной координаты:
- Выборка точек: Texel # = floor(U * Width)
- Линейная выборка: левый тексель # = пол(U * ширина), правый тексель # = левый тексель # + 1
Для скалярной координаты:
- Выборка точек: Texel # = floor(U)
- Линейная выборка: левый тексель # = floor(U - 0,5), правый тексель # = левый тексель # + 1
Где ширина — это ширина текстуры (в текселях).
Упаковка адреса текстуры происходит после расчета расположения текселя.
Связанные темы