Форум: "Игры";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
ВнизFPS Найти похожие ветки
← →
Xerx © (2004-07-14 08:19) [0]Объясните, почему у меня FPS не поднимается выше 72? Словно OpenGL использует вертикальную синхронизацию по-умолчанию! Весь движок - заливка экрана черным цветом!!! И все! Почему?
← →
Magikan © (2004-07-14 08:41) [1]А он и использует по умолчанию вертикальную синхронизацию
← →
ПсихЪ_просто (2004-07-14 09:07) [2]http://delphi84.valuehost.ru/cgi-bin/forum.pl?id=1088438773&n=9
← →
Колбасьев © (2004-07-14 15:40) [3]Тем более что реально обновление как раз и будет с данной частотой. Ведь обычно FPS в играх - не количество кадров сменяющихся на экране в секунду, а количество кадров сменяющихся в памяти в секунду.
← →
ПсихЪ_просто (2004-07-14 17:15) [4]
> Колбасьев © (14.07.04 15:40) [3]
Получается, что OpenGL по умолчанию тормозит систему.
← →
ViK © (2004-07-14 23:27) [5]Это твои дрова используют синхронизацию по умолчанию, в детонаторе есть три опции:
1) всегда выкл
2) по умолчанию выкл.
3) по умолчанию вкл.
Измени эту опцию и будет у тебя 300 фпс
← →
ПсихЪ_копия (2004-07-15 00:07) [6]Ссылку-то я дал, но вот как заюзать ту функцию - не знаю Может кто поделится? (: Каковы параметры инмпортированной функции?
← →
Magikan © (2004-07-15 03:47) [7]
wglSwapIntervalEXT2:=wglSwapIntervalEXT_Func(SDL_GL_GetProcAddress("wglSwapIntervalEXT"));
if @wglSwapIntervalEXT2<>nil then
wglSwapIntervalEXT2(0);
← →
Magikan © (2004-07-15 03:49) [8]И еще тип нужно определить
type
wglSwapIntervalEXT_Func = function (i: Integer): Boolean; stdcall;//cdecl;
var
wglSwapIntervalEXT2: wglSwapIntervalEXT_Func;
← →
Magikan © (2004-07-15 03:53) [9]Млин. Это старые наработки, где я SDL библиотеку использовал.
В винде нужно вместо SDL_GL_GetProcAddress использовать wglGetProcAddress (стандартная WinAPI"евская функция)
← →
Xerx © (2004-07-16 04:11) [10]> Колбасьев
А то я не знаю! 3 месяца убил для 860 FPS в VESA в Паскале.
> ПсихЪ_просто
То, что я давно искал! И так просто!
← →
Xerx © (2004-07-16 04:29) [11]>Magikan
А что-то разницы ни в 1 FPS!
← →
Magikan © (2004-07-16 04:31) [12]Xerx ©,
OpenGL"евское расширение wglSwapIntervalEXT доступно с версии OpenGL 1.12
Объявляешь тип (прототип) функции wglSwapIntervalEXT:
type
wglSwapIntervalEXT_Func = function (i: Integer): Boolean; stdcall;
Далее где-нибудь объявляешь переменную этого типа, которая и будет являться функцией расширения
var
wglSwapIntervalEXT2: wglSwapIntervalEXT_Func;
Дальше нужно инициализировать переменную (получить адрес расширенной функции)
wglSwapIntervalEXT2:=wglSwapIntervalEXT_Func(wglGetProcAddress("wglSwapIntervalEXT"));
Проверяешь, произошла инициализация или нет. Если произошла, отключаешь синхонизацию
if @wglSwapIntervalEXT2<>nil then
wglSwapIntervalEXT2(0);
Если хочешь обратно включить синхронизацию, то задаешьwglSwapIntervalEXT2(1);
← →
Magikan © (2004-07-16 04:33) [13]Это действует в полноэкранном режиме, где и происходит вертикальная синхронизация
← →
Xerx © (2004-07-18 04:42) [14]> Magikan
Ну да, все так. wglSwapIntervalEXT2(0); - вызывается, но разницы нет. А как проверить версию OpenGL? glGetString(GL_VERSION)?
Версия - это поддержка на уровне видео карты?
← →
Magikan © (2004-07-19 03:41) [15]Версия - это поддержка на уровне OpenGL (самой графической библиотеки). Если карточка от nvidia, то OpenGL-библиотека поставляется вместе с драйверами. Насчет ATI не знаю
← →
Xerx © (2004-07-26 04:28) [16]И что мне делать, если у меня версия 1.4.0. Обновляться прикаждой перестановке системы и вместе с программой поставлять обновление OpenGL?
← →
Xerx © (2004-07-28 04:22) [17]Я выключил в системе ограничение по FPS и получил 487. А как снять это ограничение програмно в системе (без OpenGL) раз оно там есть?
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c