Рендеринг нескольких разных текстур с одним изображением? (например, шрифты) - PullRequest
0 голосов
/ 03 декабря 2009

Допустим, у меня есть текстура, представляющая собой один файл с отдельными блоками 20 на 20 пикселей. Внутри каждого из этих блоков есть новый персонаж, и я хотел бы отображать различные символы на экране в качестве текстур, используя эти блоки. Как я могу использовать DirectX для рендеринга отдельных частей файла текстуры?

Ответы [ 3 ]

1 голос
/ 03 декабря 2009

Координаты текстуры нормализованы, поэтому верхний / левый угол текстуры равен (0,0), а нижний / правый угол равен (1,1). Выясните координаты текстуры, которые представляют ограничивающую рамку каждого глифа в вашей текстуре шрифта. Если вы хотите визуализировать определенный глиф на квад, установите UV-координаты каждой вершины квадрата (координаты текстуры) равными координатам текстуры глифа, который вы хотите визуализировать. Это трудно объяснить без изображения, поэтому, если вам нужна дополнительная информация, воспользуйтесь Google «Texture mapping».

1 голос
/ 03 декабря 2009

Вам потребуется визуализировать квад (два треугольника) с UV-координатами, сопоставленными с правильным местоположением в этой текстуре для каждой отрисовываемой буквы.

Итак, если у вас был такой квад:

|\ |
| \|

и вы хотите нарисовать всю текстуру, вы бы присвоили вершинам координаты UV:

TopLeft: 0,0
TopRight: 1,0
BottomLeft: 0,1
BottomRight: 1,1

Если вы хотите назначить букву в 40,60 с шириной и высотой 20 и шириной и высотой текстуры 200 для этого четырехугольника, тогда координаты UV будут:

TopLeft: 40/200,60/200
TopRight: TopLeft.x + 20/200, TopLeft.y
BottomLeft: TopLeft.x, TopLeft.y + 20/200
BottomRight: TopRight.x, BottomLeft.y
0 голосов
/ 03 декабря 2009

Нарисуйте 2 триса (т.е. четырехугольника) с ультрафиолетом, который окружает только того персонажа, которого вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...