Size: a a a

pro.graphon (and gamedev)

2020 February 10

d

disba1ancer in pro.graphon (and gamedev)
ну да, если умеем в нормальный огл
источник

I

Ilya in pro.graphon (and gamedev)
Fr Mr
Ну так при рендеринге записывай ObjectID в текстуру с условным uint32_t.
Да, мелькала мысль, что бы для объекта где-то сохранять его уникальный цвет.

Т.е. в пиксельный шейдер передаю ещё один параметр вершины (цвет) и шейдером этот цвет возвращаю?
источник

FM

Fr Mr in pro.graphon (and gamedev)
Ну в DX11 было бы просто. При рендеринге записываешь ObjectID из Consntant Buffer-а в RWTexture<uint32_t>
источник

FM

Fr Mr in pro.graphon (and gamedev)
Для OpenGL прогугли аналоги и сделай так
источник

I

Ilya in pro.graphon (and gamedev)
Спасибо!
источник

AG

Andrew Growing in pro.graphon (and gamedev)
Парни, нужен совет. Пробую оценить задачу с точки зрения производительности.
Задача такая -
1) андроид-приложение, экран который отображает одну фотографию на весь экран.
2) есть пул фотографий на диске устройства. Например, 60 фотографий.
3) По скроллингу влево-вправо фотографии меняются.
4) Прямо сейчас реализовано следующим образом - готовлю кэш из битмапов и при скролле ставлю в imageView фотографию по позиции. Работает нормально, но требуется большой кэш, так как каждая фотка в битмапе это разрешение экрана * 4 байта rgba и получается фотка даже из webp весом в 500 кб разворачивается в битмап 7 Мб весом. 60 фоток соответсвенно 420 Мб что для оперативной памяти очень много. На слабых девайсах тупит, конечно же.

Вопрос - есть ли смысл попробовать перенести эту работу на GLES ? Если да, то как именно это мне надо организовать?
Познания на уровне "натягивал текстуру на треугольник", но терпение, труд и чатик всё перетрут )

Пример пула фотографий со скроллингом можно посмотреть здесь https://fyu.se/v/go9m2oe1r6
источник

А

Андрей in pro.graphon (and gamedev)
почему шар свиборга, а не гном?
источник

CU

Columbus Utrigas in pro.graphon (and gamedev)
Andrew Growing
Парни, нужен совет. Пробую оценить задачу с точки зрения производительности.
Задача такая -
1) андроид-приложение, экран который отображает одну фотографию на весь экран.
2) есть пул фотографий на диске устройства. Например, 60 фотографий.
3) По скроллингу влево-вправо фотографии меняются.
4) Прямо сейчас реализовано следующим образом - готовлю кэш из битмапов и при скролле ставлю в imageView фотографию по позиции. Работает нормально, но требуется большой кэш, так как каждая фотка в битмапе это разрешение экрана * 4 байта rgba и получается фотка даже из webp весом в 500 кб разворачивается в битмап 7 Мб весом. 60 фоток соответсвенно 420 Мб что для оперативной памяти очень много. На слабых девайсах тупит, конечно же.

Вопрос - есть ли смысл попробовать перенести эту работу на GLES ? Если да, то как именно это мне надо организовать?
Познания на уровне "натягивал текстуру на треугольник", но терпение, труд и чатик всё перетрут )

Пример пула фотографий со скроллингом можно посмотреть здесь https://fyu.se/v/go9m2oe1r6
А нельзя кешировать в память только некоторые ближайшие к текущей фотографии? Например по 3 в каждую сторону
источник

VD

Vlad Doc in pro.graphon (and gamedev)
Andrew Growing
Парни, нужен совет. Пробую оценить задачу с точки зрения производительности.
Задача такая -
1) андроид-приложение, экран который отображает одну фотографию на весь экран.
2) есть пул фотографий на диске устройства. Например, 60 фотографий.
3) По скроллингу влево-вправо фотографии меняются.
4) Прямо сейчас реализовано следующим образом - готовлю кэш из битмапов и при скролле ставлю в imageView фотографию по позиции. Работает нормально, но требуется большой кэш, так как каждая фотка в битмапе это разрешение экрана * 4 байта rgba и получается фотка даже из webp весом в 500 кб разворачивается в битмап 7 Мб весом. 60 фоток соответсвенно 420 Мб что для оперативной памяти очень много. На слабых девайсах тупит, конечно же.

Вопрос - есть ли смысл попробовать перенести эту работу на GLES ? Если да, то как именно это мне надо организовать?
Познания на уровне "натягивал текстуру на треугольник", но терпение, труд и чатик всё перетрут )

Пример пула фотографий со скроллингом можно посмотреть здесь https://fyu.se/v/go9m2oe1r6
Два варианта: грузить просто с диска. Или грузить в кеш, но кодировать каким нибудь быстрым алгоритмом.
источник

AG

Andrew Growing in pro.graphon (and gamedev)
Columbus Utrigas
А нельзя кешировать в память только некоторые ближайшие к текущей фотографии? Например по 3 в каждую сторону
можно, но создание битмапа занимает время и когда быстро скроллишь возникают затупы
источник

CU

Columbus Utrigas in pro.graphon (and gamedev)
Andrew Growing
можно, но создание битмапа занимает время и когда быстро скроллишь возникают затупы
Это нельзя вынести в отдельный поток?
источник

AG

Andrew Growing in pro.graphon (and gamedev)
Vlad Doc
Два варианта: грузить просто с диска. Или грузить в кеш, но кодировать каким нибудь быстрым алгоритмом.
я так понимаю OpenGL меня не спасёт ?
источник

VD

Vlad Doc in pro.graphon (and gamedev)
Andrew Growing
можно, но создание битмапа занимает время и когда быстро скроллишь возникают затупы
Сделай кеш не на все пички, а на 10 например.
источник

CU

Columbus Utrigas in pro.graphon (and gamedev)
Andrew Growing
я так понимаю OpenGL меня не спасёт ?
Нет, не спасёт, тут не в этом дело
источник

VD

Vlad Doc in pro.graphon (and gamedev)
Andrew Growing
я так понимаю OpenGL меня не спасёт ?
Хочешь хранить битмапы в VRAM?
источник

AG

Andrew Growing in pro.graphon (and gamedev)
всё что касается обычных средств андроида всё уже сделано ))
источник

FM

Fr Mr in pro.graphon (and gamedev)
Создать несколько потоков в которых будет декодится Jpeg
источник

CU

Columbus Utrigas in pro.graphon (and gamedev)
Columbus Utrigas
Это нельзя вынести в отдельный поток?
То есть даже если быстро скролить, фото могут грузиться не моментально, но без лагов
источник

FM

Fr Mr in pro.graphon (and gamedev)
Для ближайших кадров
источник

VD

Vlad Doc in pro.graphon (and gamedev)
Andrew Growing
всё что касается обычных средств андроида всё уже сделано ))
Грузи пички рядом отдельными потоками
источник