LINUX.ORG.RU

История изменений

Исправление LINUX-ORG-RU, (текущая версия) :

Уменьшай разрешение текстур в 2 раза, есть алгоритмы по быстрому и красивому уменьшению текстур или увеличению именно в кратные 2-ум разы.

Текстуры можно не трогать, я пересобираю FBO цели рендера и вьюпорт уменьшаю, первое освобождает лютую кучу памяти (порой она виновата) второе отсекает кучу текселей растеризатора по итогу framerate падает без видимого на глаз мыла. Можно не трогать fbo но тогда надо вносить нюансы в шейдера, но я так не хочу. Пусть пересоздание буферов даже относительно долгое дело. На уменьшенном вьюпорте можно смело LOD_BIAS текстур уменьшать, соотвецтвено будет уже mipmap выборка и тут как раз освобождённая от FBO память (он стал меньше, ну подключённые целевые текстуры понятное дело) занимается mipmap уровнями текстур. Пока что я вот так думаю. Самый минимальный вариант вообще наипростейший рендерим с вьюпортомvec2_size - resolution_offset во временные буферы, затем итоговую ldr текстуру рендерим на экран с вьюпортом vec2_size + resolution_offset всё, оно уже работает, offset же мы вычисляем в зависимости от того какой у нас fps при 60 например он 0, упало до 58 нам надо два кадра, а лучше три запаса, задаём offset в 50 следующий кадр уже с меньшим разрешением (но хрен ты заметишь ) а кадры пришли назад.

Исправление LINUX-ORG-RU, :

Уменьшай разрешение текстур в 2 раза, есть алгоритмы по быстрому и красивому уменьшению текстур или увеличению именно в кратные 2-ум разы.

Текстуры можно не трогать, я пересобираю FBO цели рендера и вьюпорт уменьшаю, первое освобождает лютую кучу памяти (порой она виновата) второе отсекает кучу текселей растеризатора по итогу framerate падает без видимого на глаз мыла. Можно не трогать fbo но тогда надо вносить нюансы в шейдера, но я так не хочу. Пусть пересоздание буферов даже относительно долгое дело. На уменьшенном вьюпорте можно смело LOD_BIAS текстур уменьшать, соотвецтвено будет уже mipmap выборка и тут как раз освобождённая от FBO память (он стал меньше, ну подключённые целевые текстуры понятное дело) занимается mipmap уровнями текстур. Пока что я вот так думаю. Самый минимальный вариант вообще наипростейший рендерим с вьюпортомvec2_size - resolution_offset во временные буферы, затем итоговую ldr текстуру рендерим на экран с вьюпортом vec2_size + resolution_offset всё, оно уже работает, offset же мы вычисляем в зависимости от того какой у нас fps при 60 например он 0, упало до 58 нам надо два кадра, а лучше три щапаса, задаём offset в 50 следующий кадр уже с меньшим разрешением (но хрен ты заметишь ) а кадры пришли назад.

Исходная версия LINUX-ORG-RU, :

Уменьшай разрешение текстур в 2 раза, есть алгоритмы по быстрому и красивому уменьшению текстур или увеличению именно в кратные 2-ум разы.

Текстуры можно не трогать, я пересобираю FBO цели рендера и вьюпорт уменьшаю, первое освобождает лютую кучу памяти (порой она виновата) второе отсекает кучу текселей растеризатора по итогу framerate падает без видимого на глаз мыла. Можно не трогать fbo но тогда надо вносить нюансы в шейдера, но я так не хочу. Пусть пересоздание буферов даже относительно долгое дело. На уменьшенном вьюпорте можно смело LOD_BIAS текстур уменьшать, соотвецтвено будет уже mipmap выборка и тут как раз освобождённая от FBO память (он стал меньше, ну подключённые целевые текстуры понятное дело) занимается mipmap уровнями текстур. Пока что я вот так думаю. Самый минимальный вариант вообще наипростейший рендерим с вьюпортомvec2_size - resolution_offset во временные буферы, затем итоговую ldr текстуру рендерим на экран с вьюпортом vec2_size + resolution_offset всё, оно уже работает, offset же мы вычисляем в зависимости от того какой у нас fps