Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 25.11.2012, 23:33   #1
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
странность скорости отрисовки opengl

Раньше у меня каждый объект хранил 2 vbo, для вершин и индексов. Сделал 2 общих vbo на все объекты, при отрисовки просто буффер оффсетится, так скорость упала на 10-20% что за фигня? Где логика...
(Offline)
 
Ответить с цитированием
Старый 26.11.2012, 02:47   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: странность скорости отрисовки opengl

на каких платформах наблюдается такое поведение?
(Offline)
 
Ответить с цитированием
Старый 26.11.2012, 14:54   #3
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: странность скорости отрисовки opengl

А сколько раз делаешь SetBuffer?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 26.11.2012, 16:06   #4
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: странность скорости отрисовки opengl

А сколько раз делаешь SetBuffer?
загоняет данные очевидно сколько моделей раз.

вообще по идее техника должна давать буст. может просаживается в каких-то смежных местах.
(Offline)
 
Ответить с цитированием
Старый 26.11.2012, 16:21   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: странность скорости отрисовки opengl

Я как-то на Unity генерил меш из субмешей. Субмеши имели разные материалы. И вот из-за разных материалов в статистике было вершин больше во столько раз, сколько было этих материалов. Т.е. Unity ставила вершинный буфер например 3 раза для трех материалов. В результате вершин было в статистике х 3.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 26.11.2012, 16:23   #6
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: странность скорости отрисовки opengl

Ну это нормально, любой меш режется по материалам, насколько я знаю нельзя сразу вывести несколько материалов.
__________________
(Offline)
 
Ответить с цитированием
Старый 26.11.2012, 18:35   #7
HolyDel
 
Регистрация: 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
jimon
 
Сообщений: n/a
Ответ: странность скорости отрисовки opengl

Сообщение от HolyDel Посмотреть сообщение
просто брать данные для вершин для каждого меша можно либо из отдельного вершинного буфера, либо с общего вершинного буфера, просто указывая начало. техника должна давать буст. она же дает тормоза. мне тоже интересно почему.


я тоже думал о такой оптимизации (ли?).
суть такова: под каждый набор vertex attribs ставится генерится свой вершинный буфер, чтобы данные в нем располагались как можно плотнее.
Но потом меня напугало большое число ВБО, большое число лишней информации и менеджмент ее. Возможно введу такую оптимизацию (ли?) для позиций. Т.е. 2 ВБО - в одном все. Во втором только позиции. Второй нужен для рендеринга в z early pass или для рендеринга в текстуру глубины (для теней например).
какой смысл в плотности если ты их один раз загоняешь в vram ? надо чтобы в линейки кеша попадало, а они 32 байтовые зачастую
 
Ответить с цитированием
Старый 26.11.2012, 19:25   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: странность скорости отрисовки opengl

какой смысл в плотности если ты их один раз загоняешь в vram ?
допустим тебе нужны только позиции.
в общем случае, кроме позиций есть еще нормаль, тангент и пара текстурных координат.
весь кусок памяти для такого случая будет в 3 раза больше, чем чисто позиции. мне кажется, что с в три раза меньшего куска моделька отрисуется быстрее. но надо проверять.
(Offline)
 
Ответить с цитированием
Старый 26.11.2012, 21:30   #10
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: странность скорости отрисовки opengl

Сообщение от HolyDel Посмотреть сообщение
на каких платформах наблюдается такое поведение?
там хрень какаято скорость отрисовки растет а фпс нет.. странность короче, буду копаться, походу opengl что то мудрит из-за какогонибудь флага
(Offline)
 
Ответить с цитированием
Старый 26.11.2012, 21:38   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: странность скорости отрисовки opengl

На телефонах ограничение FPS, на iOS вроде 30, на андроедах 60.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 26.11.2012, 21:44   #12
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: странность скорости отрисовки opengl

на iOS у всех 60, наверное тока у юнити 30.
__________________
(Offline)
 
Ответить с цитированием
Старый 26.11.2012, 22:10   #13
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: странность скорости отрисовки opengl

там хрень какаято скорость отрисовки растет а фпс нет..
может ошибки в расчете фпс?
(Offline)
 
Ответить с цитированием
Старый 26.11.2012, 23:00   #14
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: странность скорости отрисовки opengl

нет, мерял аналогичным методом, как и время рендера. Время рендера уменьшается а фпс такой же.. как то в голове не укладывается почему так, гдето читал что это из-за энергосбережения...
(Offline)
 
Ответить с цитированием
Старый 06.12.2012, 00:47   #15
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: странность скорости отрисовки opengl

Путем ковыряний пришел к выводу, что glbindbuffer ничего не стоит, и нет смысла хранить кучу объектов в одном vbo. разве что для оптимизации дипа.
Очень сильно кушает время дип. gldrawelements. Как тут можно оптимизировать? Если куча разношерстных объектов с разными материалами, получается никак? Впринципе я добился достойного фпс на говеном железе, это поднял с 15 до 51 на adreno 200, но хочется большего. У кого какие соображения??
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:37.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com