2D графика с Direct3D - PullRequest
       20

2D графика с Direct3D

4 голосов
/ 28 декабря 2010

Я пытаюсь использовать Direct3D для рендеринга 2D-графики, как рекомендовано всеми, начиная с устаревшего DirectDraw.На самом деле я не беспокоюсь о трехмерности, а просто хочу иметь возможность рисовать линии, круги и блики друг на друга.Мои вопросы, таким образом,

  1. Мне нужно загрузить много изображений из файлов и нарисовать их друг на друге.Были бы подходящими текстуры?
  2. Очень глупый вопрос, но я не могу найти ничего: как вы рендерируете одну поверхность на другую?текстуру, а затем нарисуйте ее на экране в виде спрайта или просто нарисуйте много текстур?
  3. Как вы рисуете линии и т. д. на текстуре / поверхности / спрайте?Я предполагаю, что есть лучший способ, чем получить контекст устройства и использовать GDI для рисования на нем?

1 Ответ

3 голосов
/ 30 декабря 2010
  1. Да
  2. Создайте 2 треугольника, образующих квад. Установите значения УФ соответственно. Значения UV устанавливаются в диапазоне от 0 до 1. Таким образом, для изображения размером 1024x1024 (или фактически ЛЮБОЙ текстуры с разрешением, именно поэтому это делается так), верхний левый угол равен 0,0, а нижний правый равен 1,1. ID3DXSprite поможет вам здесь.
  3. Лучше всего поместить несколько «кадров» в одну текстуру, чтобы избежать слишком частого изменения текстуры (это дорого).
  4. Вы можете использовать D3DPT_LINELIST / STRIP ... В противном случае используйте 2 треугольника (см. ID3DXLine ).
...