В настоящее время я занимаюсь разработкой и созданием визуализатора изображений на заказ для исключительно больших файлов изображений (иногда в гигапикселях). К счастью, они предоставляются как 256x256 плиток в поэтапных слоях разрешения, а затем, если требуется, переходят на OpenGL.Рендеринг больших прямоугольных черепичных изображений с OpenGL QuadTree
Управление плитами осуществляется через QuadTree, который кажется сильным решением для изображений «почти мощности двух». Однако при использовании изображения с очень широким соотношением сторон (например, 1 гигапиксель x 50 000) модель начинает колебаться с большим количеством нулевых плит. На дисплее будет отображаться только ограниченное количество фрагментов.
Я использую Java 7 с LWJGL для обеспечения контекста OpenGL.
Соответствует ли решение QuadTree этой проблеме или есть лучшие альтернативы управлению данными?
Редактировать: Редактировал заголовок, чтобы иметь больше смысла.
Вы можете добавить дополнительный уровень наверху, разделив изображение на квадратные части, например. 20 изображений 50k x 50k, затем используйте квадраты для квадратов. –
Как и почему вы хотите использовать opengl? – dinony
В текущей реализации системы используется Java Graphics2D & JAI для предоставления изображений. Это доказывает, что он не работает до нуля. По этой причине он меняется на подход OpenGL. OpenGL используется для его рендеринга. Я реализовал прототип прототипа LoD, и, похоже, он работает до сих пор. Что вы думаете об этом @ AndreasHaferburg? (Я понимаю, что система Java, скорее всего, даст меньшую производительность, чем собственный C++, однако Java - это сложное письменное системное требование.) –