Начал меня мучить вопрос. Прохожу уже сколько не помню OpenGL мне нужно всего ничего. Знать как отрисовывать графику в 2D.И все как один говорят:Используйте фигуры и накладывание на них текстуры". И вот появился вопрос. А не глупо ли юзать фигуры в 2D?Ладно в 3D, можно импортировать модель, и наложить текстуру на неё. Но с 2D я считаю уделом мазохистов на каждый кадр делать фигуры. Да, да, да. Накладывание текстур намного эффективнее метода отрисовки массива пикселей. Ну так вот вопросы которые меня мучают, как я и сказал в первом предложении
Как нормально использовать наложение?Как делают это во всех движках?(В UE4 ведь мы просто загружаем спрайт)
Можно ли делать наложение не так зашкварно, как оно обычно выглядит?(Со всякими линиями, которые создают впечатление что персонаж из конструктора Лего сделан)
И можно ли обойтись без наложения, не потеряв при этом драгоценную производительность видеокарты?
Фигуры и в 2D бывают. А как иначе вы сможете найти границу между двумя текстурами (группами пикселей)? Вам в любом случае придётся выделять области пространства для тех или иных пикселей. Так вот эти области и называются фигурами.
Лежебокер, надо накладывать текстуру. А это значит, что необходимо применять афинные преобразования к набору пикселей текстуры, что бы сопоставить их с фигурой. Но это не такой уж и большой минус для мегагерцового процессора.
Лежебокер, ну тогда почитайте математическое пособие по матрицам.
У нас есть матрица пикселей (фигура), которая заполняется в соответствии с текстурой. Далее мы хотим преобразовать эту матрицу. Как?
Перенос
Масштабирование
Поворот
Можно ещё добавить наклон
Обычно эти преобразования делаются путём умножения исходной матрицы на матрицу преобразования.
Лежебокер, что-то мне подсказывает, что можно. Только это называется коллайдером. У каждого объекта есть рендерер (фигура с текстурой) и коллайдер (прозрачная фигура для столкновений).
Лежебокер, какие обрубки? Какой шейдер? Вы ничего не говорили о движке. Тем более, я же не могу угадать, как он там обрабатывает текстуры. Может галочку где надо поставить, может шейдер исправить.