![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DDraw VSync [Delphi, Windows]
Красный молоток © (2004-08-02 20:00:00)Начал разбираться с DDraw по модулям JEDI. Использую DDUtil.pas. Проблема такая - в полноэкранном режиме всега <=80 FPS. Мне кажется что это из-за вертикальной синхронизации, так вот - как ее отключить?
Evgeniy_K (2004-08-03 20:41:00) [1]Нет можно, по крайней мере у меня получалось.
Да, действительно стоит приобрести, я уже подумывал об этом, но сначала не было книги, а потом денег. Щаас стоит еще попытаться.
Если не сложно стукни в 146735863, я дам мыло и скинешь мне пример, только код. Си не проблема, он мне даже больше делфи нравится да и в делфи я стараюсь свои программы к стилю си приближать :)
NikeOLD (2004-08-03 20:08:00) [2][12] Нельзя, равно как и нельзя изменить формат пиксела поверхности.
[11] Пример-то можно, но он, во-первых, на С++; во-вторых, там несколько громоздких дополнительных библиотек, звуки и BMP без которых не скомпилируется, а выдергивать это все и перекомпилировать у меня времени нету (уж извиняйте); в-третьих, если очень надо, могу скинуть экзешник и основной файл (пиши на мыло); в-четвертых, возможно имеет смысл приобрести Ламота, много полезного.
Основной упор сделан на то, чтобы показать как синхронизировать игру по реальному времени и по FPS. Где-то здесь я видел в ветке по таймеру, кажется.
Evgeniy_K (2004-08-03 19:23:00) [3]Еще извините за глупый вопрос, но можно ли сделать VSync в оконном приложении?
Evgeniy_K (2004-08-03 19:11:00) [4]Можно пример Ламонта?
Почему в холостую? Ведь монитор-то обновляется на все 60 FPS.
NikeOLD (2004-08-03 15:31:00) [5]
> Красный молоток (03.08.04 11:08) [4]
> Evgeniy_K (03.08.04 11:16) [5]
В холостую работать будете, незачем. Остальное выше :)
NikeOLD (2004-08-03 15:27:00) [6]Для 3D необходимый минимум в 60 FPS.
Когда FPS ниже происходит следующее: кадр не успевает подготовиться и отрендериться, когда в догонку летит еще один. Из-за этого происходит замирание изображения. После короткой паузы (во время которой происходит работа по рендерингу нескольких следующих кадров) происходит рендеринг не n+1, а n+m кадров. Получается эффект, как будто вы закрыли глаза повернули голову и снова открыли. То, что вы могли бы видеть с открытыми глазами, выпало из поля зрения. Игрок просто не успевает среагировать.
Большинство "тормозов" в играх обусловлено низким FPS, когда кадры не успевают менятся с положенной частотой.
У того же Ламота есть хороший пример на эту тему.
Micah'GF (2004-08-03 15:20:00) [7]а объясните мне почему у квакеров чел с fps 60-100 имеет значительное преимущество перед теми у кого 30-50 ?!
parovoZZ (2004-08-03 12:16:00) [8]А зачем машину мучать бесполезным занятием?
cyborg (2004-08-03 11:31:00) [9]Потому, что больше не требуется.
Evgeniy_K (2004-08-03 11:16:00) [10]Да, действительно почему?
Красный молоток (2004-08-03 11:08:00) [11]>Я здесь недавно уже высказывался, что для DirectDraw необходимо и достаточно 30 FPS.
Почему?
cyborg (2004-08-03 09:20:00) [12]
> [2] NikeOLD (02.08.04 22:37)
Я однако придерживаюсь 33 ;)
NikeOLD (2004-08-02 22:37:00) [13]Я здесь недавно уже высказывался, что для DirectDraw необходимо и достаточно 30 FPS. В книге Ламота даже рекомендуется делать искуственную паузу, чтобы всегда было 30 FPS
cyborg (2004-08-02 21:26:00) [14]В функции флипинга добавь флаг DDFLIP_NOVSYNC, но не нужно это отключать,полосы пойдут при сильном изменении экрана.