|
08.12.2011, 17:31
|
#1
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Тормоза opengl
Например приложение работающее с одной моделью дает 200 FPS, с четырьмя такими же 90 ???
Рисую модели с помощью вызовов glTexCoord2f, glNormal3f, glVertex3f
Пробовал рисовать массивами glDrawElements, лучше не стало (( че за х, как оптимизировать?
|
(Offline)
|
|
08.12.2011, 18:50
|
#2
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Тормоза opengl
VBO.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
|
|
08.12.2011, 19:54
|
#3
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Тормоза opengl
HolyDel +1
Да и учитывай что падение с 100 на 75, не то же самое как с 75 на 50, хоть в кажом теряется 25 кадров, усилий же для падения с 75 на 50 нужно больше.
Короче говоря, степень снижения fps не линейна относительно нагрузке, а геометрически уменьшается.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.12.2011, 20:08
|
#4
|
Дэвелопер
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений (для 4,642 пользователей)
|
Ответ: Тормоза opengl
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 777 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
|
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.12.2011, 21:09
|
#5
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Тормоза opengl
Сообщение от MoKa
HolyDel +1
Да и учитывай что падение с 100 на 75, не то же самое как с 75 на 50, хоть в кажом теряется 25 кадров, усилий же для падения с 75 на 50 нужно больше.
Короче говоря, степень снижения fps не линейна относительно нагрузке, а геометрически уменьшается.
|
вкурсе, но спасибо за подтверждение.
|
(Offline)
|
|
08.12.2011, 21:48
|
#6
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Тормоза opengl
Сообщение от HolyDel
VBO.
|
600 FPS ураааааааа, вот теперь можно и анимацию пилить
|
(Offline)
|
|
08.12.2011, 23:27
|
#7
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Тормоза opengl
нет. ты хочешь считать на ЦПУ. такчто тебе один фиг надо будет каждый раз заливать буфер в видеопамять.
|
(Offline)
|
|
08.12.2011, 23:30
|
#8
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Тормоза opengl
я уже попробовал (с симуляцией матричных преобразований, перемещал модель, на уровне точек), фпс не упал.
делал glBufferSubDataARB, (GL_STREAM_DRAW) вот у меня на работе карточка поддерживает не выше opengl 2.0, как мне заточить проект именно под эту версию. Пользуюсь расширениями glew
|
(Offline)
|
|
09.12.2011, 01:43
|
#9
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Тормоза opengl
Шейдеры..
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
09.12.2011, 01:48
|
#10
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Тормоза opengl
фпс не упал по сравнению с чем? по сравнению с глбегин/гленд естественно не упадет. но ты еще не пробывал рассчитывать скин по костям на ГПУ. вот тут вбо поможет.
|
(Offline)
|
|
09.12.2011, 09:21
|
#11
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Тормоза opengl
яже написал что сделал эмуляцию анимирования модели (я ее крутил), что с анимацией что без, фпс не упал. Все это на VBO, без VBO там вообще пару фпс выдает , вот еще, как определить в поле видимости модель или нет? Чтобы ее не рисовать.
|
(Offline)
|
|
09.12.2011, 12:02
|
#12
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Тормоза opengl
тьфу. я думал у тебя скининг. с трансформацией не упадет, да
|
(Offline)
|
|
09.12.2011, 12:21
|
#13
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Тормоза opengl
Не могу повернуть точку исходя из положения кости... вот есть у меня позиция кости XYZ, и кватернион поворот кости, и дана точка, как ее повернуть?
|
(Offline)
|
|
09.12.2011, 12:44
|
#14
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Тормоза opengl
vec3 VertexTransform(vec3 p, int index)
{
int i = index * 7;
// restore rotation component (quaternion)
float x = bones[i];
float y = bones[i+1];
float z = bones[i+2];
float w = bones[i+3];
// restore offset component (vec3)
float tx = bones[i+4];
float ty = bones[i+5];
float tz = bones[i+6];
// original code from DooM 3 SDK
float xxzz = x*x - z*z;
float wwyy = w*w - y*y;
float xw2 = x*w*2.0;
float xy2 = x*y*2.0;
float xz2 = x*z*2.0;
float yw2 = y*w*2.0;
float yz2 = y*z*2.0;
float zw2 = z*w*2.0;
vec3 ret = vec3((xxzz + wwyy)*p.x + (xy2 + zw2)*p.y + (xz2 - yw2)*p.z,
(xy2 - zw2)*p.x + (y*y+w*w-x*x-z*z)*p.y + (yz2 + xw2)*p.z,
(xz2 + yw2)*p.x + (yz2 - xw2)*p.y + (wwyy - xxzz)*p.z);
return ret + vec3(tx, ty, tz);
}
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
09.12.2011, 17:54
|
#15
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Тормоза opengl
хер знает, весь мозг съел уже! Модель вроде как делает преобразования, но она вся ломаная. Вроде видно как шагает и все такое... хрен знает, перемануалил кучу инфы уже. Я в ступоре.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:36.
|