Дядя Миша ты предлагаешь копировать в полноэкранную текстуру куски с предыдущим отрисованным стеклом? Почему это проще? У меня копируется n кусков, у тебя копируется n-1 кусок и полноэкранная текстура.
Добавлено 21-11-2016 в 00:02:
Можно просто иметь 2 буфера и рендерить в них по очереди. Это будет самый быстрый способ для стекол без мипов
в параное как сделано. Есть одна большая текстура. bbox стекла переводится в экранные координаты и по этим координатам из буффера кадра в текстуру копируется выделенный кусок. Рисуем следующее стекло - перезаписываем новый кусок. Полноэкранная текстура изначально не копируется вообще, она с нулевым буффером. Она всегда обновляется только кусками.
Добавлено 21-11-2016 в 00:06:
Цитата:
ncuxonaT писал: Можно просто иметь 2 буфера и рендерить в них по очереди.
можно, но для этого нужно гарантированно иметь поддержку FBO, а параноевский рендерер умеет работать и без него.
Всё понял, но не вижу разницы. Ты копируешь куски в большую текстуру, я копирую куски в текстуру размером с кусок. По производительности должно быть одинаково.
Вопрос в том, почему у вас такой сильный дроп от рисования квада в маленькие текстуры. Может, из-за переключения шейдера?
Еще у себя заметил странную нелинейность падения фпс от количества генерируемых мипов. Например, 2,3,4 мипа - 100фпс, 5 мипов - 92фпс, 6 мипов - 85фпс. Причем последние мипы же самые мелкие, типа 4х4.
ncuxonaT писал: Сделал новую версию, теперь мипы делаются вручную с гауссовым размытием. Это позволило убрать мерцание, а на фпс практически не повлияло (по крайней мере на моих видеокартах). Интересно, как оно поведет себя на ваших системах в сравнении с прошлой версией.
ncuxonaT писал: По производительности должно быть одинаково.
В теории много чего должно быть. Поэтому всегда проверять надо.
Я к примеру думал, что в теории выгоднее всю траву затолкать в один большой VBO - будет быстрее. На практике оказалось, что много маленьких VBO и быстрее и оптимальнее.
Дядя Миша попробовал по-твоему. Как-то странно получается. Мой метод даёт лучший фпс, если стекол 5 или меньше. После этого фпс делает резкий скачок вниз. А в твоем методе зависимость фпс от количества стекол примерно линейная. Вот, график нарисовал.
на fullscreen_texture_copy = true у меня 150 fps.
на false 45 fps.
Если отключить размытие, то за стёклами видно радикально ч0рный чайник Рассела. Проблема в том, что чайник размывается независимо от того, за стеклом он или перед стеклом. Ну это так, к слову. Есть тутор от крайтека по этой проблеме.
Добавлено 22-11-2016 в 16:42:
А к чему ты собственно эту демку делаешь? Просто побаловаться или будешь движок песать?
ncuxonaT писал: А от количества стекол фпс меняется линейно, или есть рывки?
первый вариант линейно. Второй просаживает фпс до 20, пока в кадре есть хотя бы одно стекло (имеется в виду что оно занимает весь экран и фпс падает).
Пля, ну выключи вертикалку в приложении. Я заманался уже туда-сюда в драйвере её отключать. Что за неуважение к юзеру.
Цитата:
XaeroX писал: А зачем размывать то, что за стеклом?
ну мало ли что там? Вдруг 18+. Лучше подстраховаться.