Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Тормоза OpenGL   Найти похожие ветки 

 
Igor_ ©   (2003-09-25 16:34) [0]

Я этот вопрос задавал уже в форуме Media - ни кто ни чего не ответил, может здесь мне кто поможет?
У меня такая ситуация, я рисую на OpenGL достаточно простые объекты (если посчитать количество примитивов может будет их пару тысяч). При отрисовке комп заметно тормозит - процессор грузится на полную. Может быть такое, что все это обрабатывается процессором, а не видеокартой?
Этот вопрос возник потому, что игры, использующие OpenGL работают быстро, а все тестовые примеры тормозят. Говорят, что есть специальные команды, чтобы включить использование видеокарты, вместо процессора. Так ли это? И если так, то расскажите пожайлуста, чего надо делать.


 
Илья   (2003-09-25 17:43) [1]

Используй шейдеры(это-уж наверняка:))


 
Asteroid ©   (2003-09-26 02:04) [2]

Аппаратное ускорение в OpenGL по умолчанию, но можно попробовать добавить в PixelFormatDesciptor.dwFlags добавить PFD_GENERIC_ACCELERATED. Кстати, моя видеокарта не поддерживает аппаратное ускорение при 24 битах (серьезные тормоза).


 
Igor_ ©   (2003-10-08 15:05) [3]

Попробовал я этот флаг PFD_GENERIC_ACCELERATED ставить - скорость не меняется.


 
TButton ©   (2003-10-08 16:32) [4]

а я помню время когда пара сотен полигонов было офигенно круто... и как было круто если игра при етом не тормозила (сильно)... где ж ты моя молодость...


 
Asteroid ©   (2003-10-09 01:57) [5]

> TButton ©   (08.10.03 16:32) [4]
Doom будет жить! :)


 
asf   (2003-10-09 10:10) [6]

По поводу аппаратного ускорения: Вызови функцию DescribePixelFormat() и проверь наличие флага PFD_GENERIC_ACCELERATED
По поводу тормозов:
1. конвеер OpenGL очень критичен к объему данных, которые ты в него передаешь.. У видеокарты  есть потолок по числу вершин и объему памяти под текстуры. Для дешевых видеокарт превышение этого предела приводит к лавинообразному спаду быстродействия..
2. Считать нужно не число примитовов - а число вершин которые ты передаешь... а каждая вершина в полном объеме содержит 3 координаты самой точки, 3 координаты нормали, 2 координаты текстуры, причем все с плав.точкой обычно... Вот и считай сколько байт  нужно передать мамке в видюху для прорисовки одного кадра....(это при условии аппаратного ускорения), так что причиной тормозов может быть:
- Нехватка быстродействия мамки по передачи данных в видеокарту... Проверено - быстродействие одной и той же видюхи на разных мамках (или просто разных CPU) отличается, причем прямопропорционально быстродействию мамки. Но скорей всего в твоем случае причина либо в некорректной последовательности вызовов gl-функций, либо в слишком большом объеме обрабатываемой видюхой данных...
-Неправильня  комбинация gl-функций может резко тормозить всю работу... кроме того нужно еще учитывать: число источников света; туман; способ задания цвета для примитива (glColor или glMaterial, в последнем случае число переключений glMaterial напрямую влияет на быстродействие);  число вызовов glTranslate() и.т.п также критично;  использование аппаратного отсечения задних поверхностей повышает быстродействие; вообще сколько вершин растеризуется за кадр, желательно использовать различные алгоритмы отсечения невидимых объектов и в карту передавать информацию только по видимым; ограничиваешь ли ты частоту кадров или нет, в последнем случае твой проц всегда будет загружен на 100%. Короче ньюансов очень мног ибо GL-штука тонкая и капризная, поэтому советую хорошо изучить по нему документацию и экспериментировать с различными способами достижения одного и того же эффекта...
P.S. Более детально могу ответить по e-mail или icq


 
Мусор   (2003-10-11 21:58) [7]

ASF Хорошо написал. А что уважаемый думает о GLScene ?



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
3-1079008357
Uran
2004-03-11 15:32
2004.04.11
Как извлечь данные из интербейсовской базы данных?


1-1080033509
alk_none
2004-03-23 12:18
2004.04.11
creating add-ins for MS Office


8-1076677977
Grinder
2004-02-13 16:12
2004.04.11
mp3 in program


7-1075527641
del_programmer
2004-01-31 08:40
2004.04.11
sound


1-1079634833
Script
2004-03-18 21:33
2004.04.11
Работа с GroupBox