Вопрос Чем рендерить 500мб картинку?

На самом деле я Zodiak
Участник
Участник
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
1,095
Реакции
199
Короче есть картинка 32000x29000, фулл минимапа игры, вся карта, мне нужно сделать эдитор маршрутов, у меня уже есть вся логика самих маршрутов, переноса world позиции в позицию на этой мапе, короче ВСЁ есть, но я не знаю что мне юзать что бы рендерить этого монстра.

Тот же имгуи просто сжирает 10гб озу и файл подкачки, а кьюты не хочу использовать потому что их ставить муторно, еще и разбираться, потому что я в них ни разу нихуя не делал
 
Короче есть картинка 32000x29000, фулл минимапа игры, вся карта, мне нужно сделать эдитор маршрутов, у меня уже есть вся логика самих маршрутов, переноса world позиции в позицию на этой мапе, короче ВСЁ есть, но я не знаю что мне юзать что бы рендерить этого монстра.

Тот же имгуи просто сжирает 10гб озу и файл подкачки, а кьюты не хочу использовать потому что их ставить муторно, еще и разбираться, потому что я в них ни разу нихуя не делал
поставь ещё 32 гб озу, и все будет заебись
 
Ебать ты ферзь, ну тут только оперативы докидывать, либо отдавать кому-нибудь на сервер
 
Короче есть картинка 32000x29000, фулл минимапа игры, вся карта, мне нужно сделать эдитор маршрутов, у меня уже есть вся логика самих маршрутов, переноса world позиции в позицию на этой мапе, короче ВСЁ есть, но я не знаю что мне юзать что бы рендерить этого монстра.

Тот же имгуи просто сжирает 10гб озу и файл подкачки, а кьюты не хочу использовать потому что их ставить муторно, еще и разбираться, потому что я в них ни разу нихуя не делал
Chat GPT:
Для рендера такого огромного изображения (32000x29000) можно попробовать несколько подходов, чтобы избежать чрезмерного потребления ресурсов:

  1. Тайловый рендеринг (Tiled rendering): Разбей картинку на мелкие тайлы (например, 512x512 или 1024x1024) и рендери только те тайлы, которые видны в текущем окне. Это значительно сократит использование памяти. Можно использовать библиотеки вроде stb_image для загрузки изображений частями.
  2. OpenGL или DirectX: Рендеринг через графический API позволяет эффективнее использовать ресурсы. С OpenGL можно загружать текстуру частями и отображать только нужные фрагменты.
  3. SDL2: Простая библиотека для 2D графики, поддерживает рендеринг на GPU и работу с текстурами. SDL легко настраивается, и у неё не такие большие требования к ресурсам.
  4. NanoVG: Это векторная графическая библиотека, но её можно использовать для отрисовки крупных изображений, применяя техники вроде тайлового рендеринга.
Как вариант, можно комбинировать SDL2 и OpenGL для рендеринга, что обеспечит высокую производительность и гибкость.
 
сжать ее до 300/300 пикселей
 
Короче затапал этого хомячка тайлами. Правда при сильном скроллинге мапы, озу начинает кушать
1725825279802.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
МУЖИК ТЫ ЧО БЛЯТЬ ТАМ УПОТРЕБИЛ
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Короче есть картинка 32000x29000, фулл минимапа игры, вся карта, мне нужно сделать эдитор маршрутов, у меня уже есть вся логика самих маршрутов, переноса world позиции в позицию на этой мапе, короче ВСЁ есть, но я не знаю что мне юзать что бы рендерить этого монстра.

Тот же имгуи просто сжирает 10гб озу и файл подкачки, а кьюты не хочу использовать потому что их ставить муторно, еще и разбираться, потому что я в них ни разу нихуя не делал
1 вопрос ЗАЧЕМ ТЕБЕ ТАКОЕ РАЗРЕШЕНИЕ КАРТИНКИ???
 
Ну уж точно не задавать координатами куда след шаг сделать.
да ты шутишь? он нужен для редактирования записанного маршрута, это не шаги, это точки между которыми расстояние около 10 метров в игровом мире. (upd) блять я подумал я самый последний скрин закинул.
БЕ ТАКОЕ РАЗРЕШЕНИЕ КАРТИНКИ???
Карта в игре очень крупная и наполненная, нужна большая точность
вот тут минимальное расстояние между точками около 10 метров.
1725885224163.png
 
Если такая карта в игре - можно написать Compute шейдер, который будет интерполировать между тайлами, пускай там... тайл будет один занимать приблизительно от 20 units, тогда берётся средний цвет, (можно посчитать по алгоритму APCA), затем можно просто шейдер второй написать, который будет это всё дело выстраивать, ну и UV будет по сути Panning делать. затем просто сразу пустить это в GLFW тот-же и всё) Работает. В Compute shader можно пускать данные о геометрии, или сами спрайты (если 2d)
 
Что за игра с такой картой?
 
Назад
Сверху Снизу