Я хочу нарисовать карту тайлов в (ANSI C, C99 нельзя использовать из-за совместимости с Windows), в которой для ускорения графики используется GL, хотя игра представляет собой двухмерную перспективу сверху вниз с использованием текстурированных четырехугольников.Похоже, популярное мнение о работе с временной картой использует объект буфера вершин GL, который я собираюсь написать.Однако я понял, что хочу, чтобы некоторые плитки выходили за пределы вертикальных границ, имитируя наклонный вид с воздуха.Это сделает все, что находится непосредственно над блоком, частично покрытым плиткой.Если я использую VBO здесь, мне нужно будет нарисовать всю плитку за один присест.Это означает, что любой объект, который я нарисую впоследствии, будет находиться непосредственно над плиткой.
Какой самый разумный подход к этой проблеме?Должен ли я сначала нарисовать карту тайлов, затем сущности (игроки / враги), а затем лишнее вертикальное пространство, чтобы они покрывали сущности, и, наконец, эффекты, которые отображаются над обоими?(например, выстрелы, взрывы и так далее).Но это поставило бы меня перед вопросом о том, что кадры не покрыты рельефом, и если я изменю порядок, рельеф неловко покрывает большие взрывы.В качестве альтернативы я могу отсортировать все визуальные объекты и нарисовать их сверху вниз, но это означало бы, что мне нужно часто менять текстуры, поскольку сортировка по текстуре в этом конкретном случае не слишком поможет.
Какну, я хочу иметь возможность динамически изменять цвета каждой отдельной вершины в сетке, чтобы объекты могли преобразовывать цвета в карту.Из того, что я понимаю, путь для достижения этого был бы с помощью вершинного шейдера.Это правильно?
РЕДАКТИРОВАТЬ: Последнее.Если я нарисую VBO, как та карта тайла, которая больше экрана, переводя, переводит ли GL автоматически выбрасывание лиц вне поля зрения или мне нужно изменить VBO каждый раз, когда я перемещаю «камеру»?