Mipmapping в масштабируемом виде, похожем на Google Maps? - PullRequest
1 голос
/ 19 сентября 2010

У меня огромное изображение карты (8192x6144px), которое я хотел бы отобразить в масштабах от 1x до 0,1x.При 1x это составляет около 24 МБ при использовании сжатия PVR 4-bpp - это слишком много.Поэтому я хотел бы загрузить их с различным разрешением, в зависимости от масштаба карты.

Достигает ли мипмапинг того, что мне нужно, то есть загрузки / выгрузки уровней мипмапов в зависимости от масштаба карты?Из того, что я прочитал, звучит так, как будто все уровни mipmap должны быть загружены и не могут быть сгенерированы / выпущены во время выполнения.

1 Ответ

2 голосов
/ 21 сентября 2010

Ну, технически, он может (вы можете выбрать, с какого уровня mipmap вы хотите обновить / извлечь), но это оставляет вас с первоначальной проблемой: когда вы находитесь в режиме максимального увеличения, вы должны иметьвсе изображение в памяти.

Я могу придумать два варианта.

Это первая динамическая текстура атласа, также известная как мегатекстурирование или виртуальное текстурирование.Вы найдете множество ссылок на темы, но это немного излишне для того, что вы хотите.

Второй - это стандартный LOD (уровень детализации).При увеличении 0,1х вы рисуете только 1 квад, с текстурой низкого разрешения.Когда вы увеличиваете масштаб, вы рекурсивно разделяете квад в зависимости от расстояния до камеры (рядом = рекурсивно больше).Для каждого среднего или маленького четырехугольника вы создаете новую текстуру в правильном разрешении и связываете ее.

Таким образом, у вас будет серия изображений 512x512 с различным разрешением, организованная в иерархию.

...