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

Вниз

OpenGL   Найти похожие ветки 

 
Vitas2 ©   (2002-08-08 10:03) [0]

Подскажите как добиться высокого FPS при использовании OpenGL? Перепробовал все больше 80-85 не получается.
Вывожу 2 треугольника FPS=80.
Вывожу 1000 треугольников FPS=80.

Видео карта GeForce 2 MX200.
Пробовал Riva TNT2 и GeForce4 результат (+ -) 10 FPS.
А в играх бывает покажут и 200-300. Врут .. ?


 
cyborg ©   (2002-08-08 16:12) [1]

Просто в драйвере стоит синхронизация экрана.


 
Vitas2 ©   (2002-08-08 16:24) [2]

Что за синхронизация и как ее отключить?


 
Ev_genus ©   (2002-08-08 16:30) [3]

А зачем её отключать? Если так сделать, то игрок половины игры не увидит (это если 200 фпс). Монитор то всегда 100 показывает.


 
Vitas2 ©   (2002-08-08 17:33) [4]

Менял частоту монитора и вправду влияет на FPS.
Но как тогда обьяснить увеличение FPS в моей програмке до 160FPS если размер окна сильно уменьшить примерно по 5см в ширену и вусоту.


 
cyborg ©   (2002-08-08 19:53) [5]

В драйверах, если карточка NVidia (Detonator) у тебя туда залезь, там в ОпенГЛ синхронизацию выключи, если нет такого чекбокса, то попробуй RivaTuner, через него много чего покрутить можно.


 
a_n_t   (2002-08-09 02:38) [6]

А зачем тебе 200 FPS - все равно разницу не заметишь: что 80, что 200 :)


 
Vitas2 ©   (2002-08-09 06:37) [7]

Не нашол чегото где убрать эту галочку.
И неплохо бы если кто подскажет как програмно это сделать.


 
Gandalf   (2002-08-09 17:22) [8]

Все верно мешает синхронизация. Либо цикл отрисовки кривой.
Но скорее первое.
> И неплохо бы если кто подскажет как програмно это сделать.

var

wglSwapIntervalEXT: function(interval : Integer) : BOOL; stdcall;
wglGetSwapIntervalEXT: function : Integer; stdcall;

WGL_EXT_swap_control := True;
wglSwapIntervalEXT := wglGetProcAddress("wglSwapIntervalEXT");
wglGetSwapIntervalEXT := wglGetProcAddress("wglGetSwapIntervalEXT");

procedure glSetVSync(VSync: Boolean);
var
I: Integer;
begin
if WGL_EXT_swap_control then
begin
I := wglGetSwapIntervalEXT;
if VSync then
begin
if I <> 1 then
wglSwapIntervalEXT(1);
end
else
begin
if I <> 0 then
wglSwapIntervalEXT(0);
end;
end;
end;

Можно еще конечно на WGL_EXT_swap_control честно проверить, но это уже сам. Если Что пиши.


 
Vitas2 ©   (2002-08-10 07:30) [9]

Спасибо помогло.
Раньше в местах где выводил много треугольников FPS снижалось до 45 а теперь до 70.
А некоторые спрашивали :

А зачем её отключать? Если так сделать, то игрок половины игры не увидит (это если 200 фпс). Монитор то всегда 100 показывает.

Мне 200 не надо и меньше 20 тоже.


 
Gandalf   (2002-08-11 16:17) [10]

>А зачем её отключать? Если так сделать, то игрок половины игры >не увидит (это если 200 фпс). Монитор то всегда 100 показывает.
На эту фразу могу заметить - что это явный гиперболизм. Игрок все увидит. Если кадры в пределах частоты монитора, если меньше будет небольшой дефект графики - многие даже того незначительного ухудшения графики и не замечают, а вот FPS замечают все.



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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
14-5225
Дмитрий К.К.
2003-01-16 06:22
2003.02.03
Именинники 16 января


8-5083
Slava
2002-10-21 08:57
2003.02.03
Печать картинки


14-5237
teebot
2003-01-14 11:48
2003.02.03
Помогите настроить маршрутизацию на Вин98, одна надежда на вас


1-4886
Fill
2003-01-24 21:43
2003.02.03
StatusBar-Image


1-5009
bambina
2003-01-23 11:43
2003.02.03
excel