SDL C ++ рисует 2D-массив в квад - PullRequest
0 голосов
/ 15 мая 2018

Как я могу нарисовать 2D-массив RGBA с плавающей точкой цвета / дюйма / и т. Д. ... в квад?

Не квадрат, а форма, в которой я могу определить положение каждого из четырех углов, как на рисунке ниже.enter image description here

1 Ответ

0 голосов
/ 15 мая 2018

Короткий ответ: вы не используете SDL для этого.


Более длинный ответ заключается в том, что, хотя SDL настраивает и управляет для вас большим количеством задач, когда дело доходит до объема рисования, вам придется получить доступ к API нижнего уровня .

Чтобы получить это конкретное преобразование (и целый ряд других), вы должны были бы нарисовать реты в обычном режиме, но с помощью матричной операции, которая преобразует вершины.

В наши дни вы должны делать что-то из следующего:

  1. Создайте четырехугольники, которые вы хотите нарисовать, с их текстурой UV или цветами (или обоими) в массиве вершин.
  2. Напишите шейдер , который преобразует точки в массиве с помощью матрицы, а затем обрабатывает или заполняет фрагменты.
  3. Ешьте тако
  4. Свяжите все ваши данные .. {вершины, текстуры, униформа}
  5. Нарисуйте свой массив.
  6. Все вышеперечисленное

Кроме того, вы захотите изменить перспективу окна или вставить перспективу в матрицу вращения. Все становится сложнее, когда вам нужно больше 3D-материалов, таких как буферы глубины и т. Д. *

Если вы знаете много OpenGL или DirectX, то использование SDL в качестве отправной точки не является проблемой.

Если вы не уверены, как матрица будет вращать квадраты для вас, то SDL не для вас.


Подробнее

...