Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

Тормоза 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.037 c
9-1064965146
Анатолий
2003-10-01 03:39
2004.04.11
Поле игры


3-1081944355
zolg
2004-04-14 16:05
2004.04.11
ADO, pack в Dbf


6-1075456598
Morfeus
2004-01-30 12:56
2004.04.11
просмотр рабочего стола клиента на сервере


1-1080304501
GUEST_01234
2004-03-26 15:35
2004.04.11
Замена плюсиков в TreeView


1-1080094311
npr2
2004-03-24 05:11
2004.04.11
caption окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский