Войти
ПрограммированиеФорумГрафика

OpenGL несколько контекстов для смены msaa на лету.

Страницы: 1 2 3 4 Следующая »
#0
18:33, 16 авг 2018

Одно окно. Как создать  несколько контекстов чтобы налету менять Msaa ?
Gl 4.5
Есть VAO и 3 текстуры.
Не хочу resolve

#1
18:51, 16 авг 2018

Marmilad
> Не хочу resolve
Почему?

#2
20:47, 16 авг 2018

Теряем fps.
Уж лучше перезапустить прогу.
Мой вопрос как расшарить ресурсы для нескольких контекстов ?

#3
20:52, 16 авг 2018

Marmilad
> Теряем fps.
Это вряд ли. Даю 99%, что драйвер под капотом делает абсолютно такой же glBlitFramebuffer с resolve.

#4
21:37, 16 авг 2018

Marmilad
MrShoor
Что за resolve?
Я не в теме, если что.

#5
22:11, 16 авг 2018

Great V.
> Что за resolve?

resolve он и в Африке resolve

это типа усреднение, из msaa в non msaa

#6
1:50, 17 авг 2018

А не проще создавать буфер кадра с нужным значением сглаживания и при изменении значения удалять и создавать с новым значением? Или на худой конец создать несколько буферов с разными значениями... или я чего-то не понимаю?

glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, Antialiasing, GL_RGBA, screenWidth, screenHeight, GL_TRUE);

Если что, кури framebuffer и msaa. Хотя все нормальные люди и от этого уже отходят в пользу постсглаживания для отложенного рендеринга освещения.
А расшаривать ресурсы очень просто, расшариваешь контекст и ресурсы становятся общими для всех контекстов, только VAO не шарятся, поскольку контейнеры, и для каждого контекста нужно создавать по-новой и оборачивать в них VBOs.
Но для реализации антиалиаснига расшаривание контекста = это всё равно, что из пушки по воробьям стрелять )))

#7
10:34, 17 авг 2018

Iron Man
> все нормальные люди и от этого уже отходят в пользу постсглаживания для отложенного рендеринга освещения.
это правда. нам приходится тащить легаси код с поддержкой мсаа и это боль повсюду. основная проблема даже не в создании контекстов и не в резолвах, а в том, что у видюхи есть предел пропускной способности, который если превысить, то производительность очень резко дропается. я не вдавался в подробности, но на практике это выражается в том, что в разрешении 1080p разница fps без msaa и c x8 msaa может быть, допустим, 20%, а в разрешении 2k разница может быть 200%, причём скачок происходит при превышении достаточно конкретной величины пропускной способности. и чем выше bits per pixel (включая mrt), тем раньше этот предел превышается.

#8
11:50, 17 авг 2018

Я когда пробовал отключить MSAA через пересоздание контекста, у меня вообще всё зависало или черный экран был.
Поэтому я сделал проще - если MSAA не нужен вначале кадра вызываю glDisable( GL_MULTISAMPLE_ARB ); и всё выключается.
Включать аналогично.

Правда при таком подходе не удастся поменять кол-во сэмплов без рестарта.

#9
12:33, 17 авг 2018

Suslik
> это правда. нам приходится тащить легаси код с поддержкой мсаа и это боль
> повсюду. основная проблема даже не в создании контекстов и не в резолвах, а в
> том, что у видюхи есть предел пропускной способности, который если превысить,
> то производительность очень резко дропается.

давай те откажемся от msaa - в чём проблема ?

Iron Man
> Но для реализации антиалиаснига расшаривание контекста = это всё равно, что из
> пушки по воробьям стрелять )))

ну да, давно уже можно FBO + msaa

#10
2:17, 18 авг 2018

Suslik
> а в разрешении 2k разница может быть 200%
Если памяти на фрейм не хватает, то драйвер начинает выгружать загружать данные, что медленно. Возможно вы столкнулись именно с таким эффектом.

#11
2:20, 18 авг 2018

innuendo
> ну да, давно уже можно FBO + msaa
Я следом за многими уже и от этого отхожу, тоже реализую G-буфер.
Поэтому до сих пор ещё твёрдо не определился со сглаживанием :)

#12
3:06, 18 авг 2018

Iron Man, я что-то знаю о сглаживании.
И точно говорю, выпиливай msaa.

#13
6:00, 18 авг 2018

vindast
Я не о том, что выпилить, а о том, что запилить

#14
6:04, 18 авг 2018

vindast
> я что-то знаю о сглаживании.
> И точно говорю, выпиливай msaa.

даже на Forward+ нужно выпиливать ?

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.