В настоящее время я практикую OpenGL и C ++, пытаясь создать 2D-игру.Просто что-то очень простое.Прямо сейчас мне удалось использовать библиотеку GLM для настройки «камеры» (с перспективой, а это не то, что мне нужно), но я столкнулся с несколькими проблемами при попытке отобразить часть пиксельной графики.made.
Например, есть система координат.Он явно сделан для 3D и рисования вещей в «мировом пространстве», а НЕ для рисования пиксельной графики на экране.Я просто хочу иметь возможность установить размер и положение каждой вершины, которую я рисую, используя обычную систему координат.Вот почему я перешел на Stack Exchange.
Из того, что я смог сказать, я должен использовать орфографический вид, но установка матрицы проекции на glm::ortho()
, похоже, не помогает.,На самом деле ничего не появляется.Я получаю пустой экран.Сначала я подумал, что это связано с тем, что мои вершины все еще имеют размер в 1 пиксель, но даже после изменения их положения для формирования прямоугольника соответствующего размера (два треугольника, технически, но все же), на экране ничего не появилось.
Возможно, я неправильно использовал glm::ortho()
или это какая-то другая проблема.
Установка матрицы проецирования на glm::ortho()
.
ProjectionMatrix = glm::ortho(0, 640, 480, 0);
Настройкавершины.
Vertex vertices[] = {
// Position // Color // Texcoord
glm::vec3(0.0f, 80.0f, 0.0f), glm::vec3(1.0f, 0.0f, 0.0f), glm::vec2(0.0f, 1.0f), // bottom left
glm::vec3(0.0f, 0.0f, 0.0f), glm::vec3(0.0f, 1.0f, 0.0f), glm::vec2(0.0f, 0.0f), // top left
glm::vec3(40.0f, 0.0f, 0.0f), glm::vec3(0.0f, 0.0f, 1.0f), glm::vec2(1.0f, 0.0f), // top right
glm::vec3(40.0f, 80.0f, 0.0f), glm::vec3(1.0f, 1.0f, 0.0f), glm::vec2(1.0f, 1.0f) // bottom right
};
Если потребуется какой-либо дополнительный код / информация, не стесняйтесь, дайте мне знать.Я немного не уверен, что показать, поэтому решил придерживаться очевидного.