Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тормоза в OpenGl, Откуда они? 
:(
    Опции темы
Yura_Matsuk
Дата 21.9.2005, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 16.5.2004

Репутация: нет
Всего: нет



Выложил модули своего 3д движка. Но фпс на примере простенького треугуольника не превышает 60-ти. Откуда такие тормоза?

Присоединённый файл ( Кол-во скачиваний: 33 )
Присоединённый файл  3d.rar 6,04 Kb
--------------------
Смех смехом, а ОНА кверху мехом...
PM MAIL   Вверх
p0s0l
Дата 22.9.2005, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 16
Всего: 112



SwapBuffers может ждать синхронизации (это зависит от драйвера/настроек драйвера), поэтому скорость ограничена...



--------------------
С уважением, г-н Посол.
PM   Вверх
Yura_Matsuk
Дата 24.9.2005, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 16.5.2004

Репутация: нет
Всего: нет



Но если размер окна увеличить, то фпс и вовсе падает до 20.. smile
--------------------
Смех смехом, а ОНА кверху мехом...
PM MAIL   Вверх
p0s0l
Дата 24.9.2005, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 16
Всего: 112



Какие FPS у тебя будут в следующих случаях:
1) Если убрать SwapBuffers (видеть ничего не будешь)
2) Оставить SwapBuffers, но убрать PFD_DOUBLEBUFFER (видеть будешь, но с мерцаниями)
3) Убрать SwapBuffers, и рисовать не 1 треугольник, а тысячу (for i := 1 to 1000 do Scene.Draw)

(+ во всех случаях нужно убрать вызов Randomize)



--------------------
С уважением, г-н Посол.
PM   Вверх
Yura_Matsuk
Дата 27.9.2005, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 16.5.2004

Репутация: нет
Всего: нет



Измерил в уменьшенном окне.
Без изменений - 110
Без СвапБуфферсов - (192-384) - скачет ступенчатым образом
убрать PFD_DOUBLEBUFFER - (136-156)
Без Буфферсов и с 1000 треугольников - (8-12)
--------------------
Смех смехом, а ОНА кверху мехом...
PM MAIL   Вверх
p0s0l
Дата 27.9.2005, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 16
Всего: 112



Хм... Скорее всего у тебя OpenGL работает в программном режиме...
Чтобы это проверить, проведи ряд испытаний:
Какое число покажет эта функция ?
Код
var
  pf : integer;
  pfd : PIXELFORMATDESCRIPTOR;

begin
  FillChar (pfd, SizeOf(pfd), 0);
  pfd.nSize := SizeOf(pfd);
  pf := GetPixelFormat (ghDC);
  DescribePixelFormat(ghDC, pf, SizeOf(pfd), pfd);
  ShowMessage (IntToHex(pfd.dwFlags, 8));
  if (pfd.dwFlags and PFD_GENERIC_FORMAT) <> 0 then ShowMessage('Software emulation');
end;
(эту функцию запускать после FormCreate, например, в обработчике OnShow)

И что у тебя возвращают:
glGetString(GL_RENDERER);
glGetString(GL_VERSION);
glGetString(GL_VENDOR);

И еще, для кучи:
Какой FPS будет, если в Draw оставить только inc(fps) ? smile


--------------------
С уважением, г-н Посол.
PM   Вверх
Yura_Matsuk
Дата 29.9.2005, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 16.5.2004

Репутация: нет
Всего: нет



Если оставить только inc(fps), то где-то 35000

Renderer: GDI Generic
Version: 1.1.0
Vendor: (пустая строка)

Функция выдает:
00000465
Software emulation

Хех, а че делать-то? smile
--------------------
Смех смехом, а ОНА кверху мехом...
PM MAIL   Вверх
p0s0l
Дата 29.9.2005, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 16
Всего: 112



А винда какая и видяха ? Дрова надо ставить, чтоб с поддержкой OpenGL были...
Можешь проверить свою прогу на других компьютерах...



--------------------
С уважением, г-н Посол.
PM   Вверх
Гость_Yura_Matsuk
Дата 1.10.2005, 12:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А может это быть инициализация виновата?
  Вверх
p0s0l
Дата 1.10.2005, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 16
Всего: 112



Попробуй разные примеры OpenGL, как они у тебя пойдут...
Можешь попробовать GLScene...


--------------------
С уважением, г-н Посол.
PM   Вверх
Vetos
Дата 27.9.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.4.2005

Репутация: нет
Всего: 4



GLScene вообще ужасает своим фпс,около 300 , не знаю как они умудрились так сделать,
а прога написанная на чистом ОГЛ не дает больше 90 smile 


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
Alexeis
Дата 27.9.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Vetos, это смотря как писать, если рисовать прямоугольник, то легко получается FPS 3000 и более.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Vetos
Дата 27.9.2007, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.4.2005

Репутация: нет
Всего: 4



ну вот допустим я писал, вернее доправлял исходник из книги М.Красного, водопад.
Вообще если использовать Invalidate как и есть в примере то фпс всего 30, а я убрал инвалидат и поставил Paint;фпс стало больше 80-90.Вот так smile 


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
Alexeis
Дата 27.9.2007, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Vetos, не нужно путать тот FPS который в памяти рисуется и тот котрый реально на экран попадает. На экране FPS вообще не может превышать частоту экрана. А если рисовать по invalidatом по таймеру, то получим FPS зависящую от частоты таймера, тока лучше тогда уж юзать мультимедийный таймер, тогда равномерность кадров будет выше. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Vetos
Дата 27.9.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.4.2005

Репутация: нет
Всего: 4



Можно по подробнее про мультимедийный таймер если это не касается GLScene, просто пишу свой движок на OpenGL, если можешь кинь ссылку про мультимедийный таймер, это как раз то что мне нехватает на начальной стадии развития движка, просто нехочу новую тему создавать  smile  smile если можно)))))


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0564 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.