|
25.11.2012, 23:33
|
#1
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
странность скорости отрисовки opengl
Раньше у меня каждый объект хранил 2 vbo, для вершин и индексов. Сделал 2 общих vbo на все объекты, при отрисовки просто буффер оффсетится, так скорость упала на 10-20% что за фигня? Где логика...
|
(Offline)
|
|
26.11.2012, 02:47
|
#2
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: странность скорости отрисовки opengl
на каких платформах наблюдается такое поведение?
|
(Offline)
|
|
26.11.2012, 14:54
|
#3
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: странность скорости отрисовки opengl
А сколько раз делаешь SetBuffer?
|
(Offline)
|
|
26.11.2012, 16:06
|
#4
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: странность скорости отрисовки opengl
А сколько раз делаешь SetBuffer?
|
загоняет данные очевидно сколько моделей раз.
вообще по идее техника должна давать буст. может просаживается в каких-то смежных местах.
|
(Offline)
|
|
26.11.2012, 16:21
|
#5
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: странность скорости отрисовки opengl
Я как-то на Unity генерил меш из субмешей. Субмеши имели разные материалы. И вот из-за разных материалов в статистике было вершин больше во столько раз, сколько было этих материалов. Т.е. Unity ставила вершинный буфер например 3 раза для трех материалов. В результате вершин было в статистике х 3.
|
(Offline)
|
|
26.11.2012, 16:23
|
#6
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: странность скорости отрисовки opengl
Ну это нормально, любой меш режется по материалам, насколько я знаю нельзя сразу вывести несколько материалов.
__________________
|
(Offline)
|
|
26.11.2012, 18:35
|
#7
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: странность скорости отрисовки opengl
просто брать данные для вершин для каждого меша можно либо из отдельного вершинного буфера, либо с общего вершинного буфера, просто указывая начало. техника должна давать буст. она же дает тормоза. мне тоже интересно почему.
Т.е. Unity ставила вершинный буфер например 3 раза для трех материалов.
|
я тоже думал о такой оптимизации (ли?).
суть такова: под каждый набор vertex attribs ставится генерится свой вершинный буфер, чтобы данные в нем располагались как можно плотнее.
Но потом меня напугало большое число ВБО, большое число лишней информации и менеджмент ее. Возможно введу такую оптимизацию (ли?) для позиций. Т.е. 2 ВБО - в одном все. Во втором только позиции. Второй нужен для рендеринга в z early pass или для рендеринга в текстуру глубины (для теней например).
|
(Offline)
|
|
26.11.2012, 19:06
|
#8
|
|
Ответ: странность скорости отрисовки opengl
Сообщение от HolyDel
просто брать данные для вершин для каждого меша можно либо из отдельного вершинного буфера, либо с общего вершинного буфера, просто указывая начало. техника должна давать буст. она же дает тормоза. мне тоже интересно почему.
я тоже думал о такой оптимизации (ли?).
суть такова: под каждый набор vertex attribs ставится генерится свой вершинный буфер, чтобы данные в нем располагались как можно плотнее.
Но потом меня напугало большое число ВБО, большое число лишней информации и менеджмент ее. Возможно введу такую оптимизацию (ли?) для позиций. Т.е. 2 ВБО - в одном все. Во втором только позиции. Второй нужен для рендеринга в z early pass или для рендеринга в текстуру глубины (для теней например).
|
какой смысл в плотности если ты их один раз загоняешь в vram ? надо чтобы в линейки кеша попадало, а они 32 байтовые зачастую
|
|
|
26.11.2012, 19:25
|
#9
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: странность скорости отрисовки opengl
какой смысл в плотности если ты их один раз загоняешь в vram ?
|
допустим тебе нужны только позиции.
в общем случае, кроме позиций есть еще нормаль, тангент и пара текстурных координат.
весь кусок памяти для такого случая будет в 3 раза больше, чем чисто позиции. мне кажется, что с в три раза меньшего куска моделька отрисуется быстрее. но надо проверять.
|
(Offline)
|
|
26.11.2012, 21:30
|
#10
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: странность скорости отрисовки opengl
Сообщение от HolyDel
на каких платформах наблюдается такое поведение?
|
там хрень какаято скорость отрисовки растет а фпс нет.. странность короче, буду копаться, походу opengl что то мудрит из-за какогонибудь флага
|
(Offline)
|
|
26.11.2012, 21:38
|
#11
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: странность скорости отрисовки opengl
На телефонах ограничение FPS, на iOS вроде 30, на андроедах 60.
|
(Offline)
|
|
26.11.2012, 21:44
|
#12
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: странность скорости отрисовки opengl
на iOS у всех 60, наверное тока у юнити 30.
__________________
|
(Offline)
|
|
26.11.2012, 22:10
|
#13
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: странность скорости отрисовки opengl
там хрень какаято скорость отрисовки растет а фпс нет..
|
может ошибки в расчете фпс?
|
(Offline)
|
|
26.11.2012, 23:00
|
#14
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: странность скорости отрисовки opengl
нет, мерял аналогичным методом, как и время рендера. Время рендера уменьшается а фпс такой же.. как то в голове не укладывается почему так, гдето читал что это из-за энергосбережения...
|
(Offline)
|
|
06.12.2012, 00:47
|
#15
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: странность скорости отрисовки opengl
Путем ковыряний пришел к выводу, что glbindbuffer ничего не стоит, и нет смысла хранить кучу объектов в одном vbo. разве что для оптимизации дипа.
Очень сильно кушает время дип. gldrawelements. Как тут можно оптимизировать? Если куча разношерстных объектов с разными материалами, получается никак? Впринципе я добился достойного фпс на говеном железе, это поднял с 15 до 51 на adreno 200, но хочется большего. У кого какие соображения??
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:59.
|