Войти
ПрограммированиеФорумГрафика

Рендеринг ландшафта на основе тайловой сетки

#0
15:05, 1 июля 2015

Всем привет, задача у меня совершенно банальна - отрендерить набор квадратиков на экране.
Буквально 100 чтук.
Каждый квадратик - есть изображение 256х256, совершенно уникальное и используется только один раз.
PS: В общем это обычные web карты.

Варианты:

1. Отрендерить TMU квадов, выбирая на шейдере нужную текстуру.
  - минусы: даже не смешно

2. Тоже самое, но использовать кубические текстуры, таким образом за раз нарисуем в 6 раз больше. 36-96 квадов за раз.
  - минусы: как-то заумно

3. Создать большую текстуру, при загрузке тайлов делать subImage, при сдвиге - делать сдвиг текстуры в самой себе. Рисуем в итоге один большой квад
  - минусы: использование памяти больше нужного

4. Использовать текстурный атлас - делать push/pop туда данных по мере поступления.
  - минусы: глюки на границах тайлов (не попадание текселей в пиксели), а бордеры генерировать и не удобно - плохо упакуется в атлас. Быть может сейчас есть возможность как-то ограничить залезания в соседние текстуры?

Быть может есть более умные идеи для рендерига?

PPS: К сожалению webgl.

#1
18:05, 1 июля 2015

Текстурные массивы. Заводишь массив 256x256x64, к примеру, и менеджеришь тайлы как слои в нём. Рисуешь одним квадратом на тайл - это вполне приемлемо.

#2
18:14, 1 июля 2015

3D текстур в WebGL как бы нет :(

#3
21:38, 1 июля 2015

Kashey
А текстурные массивы есть? Если нет, то 1ый вариант. А что тут смешного? В FullHD это вывод порядка 32 квадов - у тебя тормозит что ли? Квады, которые не попадают в экран отсеиваешь. Биндишь текстуру, рисуешь. Ты же не шейдер переключаешь, а юниформ - это не дорого.
Если у тебя есть уменьшение карты и много квадов выводится, то наверно надо будет сделать уменьшенную карту и подгружать по мере необходимости. Так же и для увеличения.

#4
21:54, 1 июля 2015

А что такое текстурные массивы? uniform sampler2D texture[NUMBER]?
Вы, ребят, простите - я хоть и страшный мамонт, но много лет в мерзлоте лежал.

#5
21:57, 1 июля 2015

Kashey
> А что такое текстурные массивы?
https://www.opengl.org/wiki/Array_Texture
Но их, вроде, тоже в webgl нет.

#6
22:05, 1 июля 2015

Да, этому инвалиду нужны ванильные ламповые решения

ПрограммированиеФорумГрафика

Тема в архиве.