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

Вниз

Для чего нужен параметр doWaitVBlank в DXDRAW?   Найти похожие ветки 

 
RyDmi ©   (2004-07-27 00:48) [0]

Дело в том, что с ним перерисовка просходит значительно медленее и наглюченее. Меня сбивает с толку то, что этот параметр стоит по умолчанию. Так зачем же он всё-таки нужен и многое ли изменится если я его уберу?Подскажите пожалуйста.


 
Megabyte-CeerCop ©   (2004-07-27 06:20) [1]

Точно не знаю, но он заставляет ждать CPU пока карта не отрисует спрайт, и только после этого посылать на отрисовку новый.


 
NikeOLD   (2004-07-27 15:38) [2]


> Точно не знаю, но он заставляет ждать CPU пока карта не
> отрисует спрайт, и только после этого посылать на отрисовку
> новый.

Отрисовка спрайта здесь не при чем. Просто вывод на экран синхронизируется обратным вертикальным ходом луча. Тормозит по сравнению с обычным, не спорю, но позволяют более плавный вывод осуществлять. В противном случае может получиться так, что при рендеринге заднего буфера полэкрана будет со старой картинкой, а полэкрана с новой. На быстрых машинах это правда почти исключено.


 
RyDmi ©   (2004-07-28 00:21) [3]

Вот я делаю 2D. У меня Athlon-1700, GeForce2 32Mb, @56 Ram.
Необходим ли мне doWaitVBlank?


 
parovoZZ ©   (2004-07-28 02:49) [4]

На пальцах: допустим, в игрушке FPS = 100. Включаем вертикальную синхронизацию, FPS падает до частоты развёртки монитора (85 Гц самая ходовая частота). Вот отсюда и тормоза.


 
Megabyte-CeerCop ©   (2004-07-28 06:14) [5]

NikeOLD [2]
Синхронизация с лучем утверждается флагом doHardWare. Проверено.
Именно после его установки фпс падает с 600 до 75.
RyDmi [3]
Нет, если ты не предпологаешь что её будет запускать ещё кто-то, кроме тебя. (Думай об окружающих).


 
NikeOLD   (2004-07-28 13:35) [6]


> RyDmi [3]

Необходимо думать и о других, кто играть будет, если это предполагается.

Вообще если речь иде о FPS, то могу сказать, что для DirectDraw необходимо и достаточно (!) 25 FPS. Меньше нельзя, больше можно, но не за чем. В профессиональных играх даже стоит специальное ограничение на 25-30 FPS. Все остальное время программа либо "спит", либо готовит следующий кадр.

Очень часто имеет смысл включать синхронизацию с обратным ходом луча.


 
Megabyte-CeerCop ©   (2004-07-28 14:49) [7]

[6] для анимации спрайтов 20 fps это более чем достаточно, однако скроллинг экрана и объектов нужно делать как минимум 40 fps. В Киркопе например FPS 40, просчет координат спрайтов идет с тойже частотой, а вот анимация спрайтов сменяется в два раза реже, чтобы память графикой не перегрузить...

Короче: разница в анимации 20 fps и 40 fps незаметна,
а разница в скроллинге экрана (с шагом более чем 1 pixel) 20 и 40 очень и очень заметна.


 
NikeOLD   (2004-07-28 15:27) [8]

[7] Я объясню почему именно 25 и не меньше!
Слышал когда-нибудь про смену видеокадров? Так вот частота смены кадра ОБЯЗАНА быть ровно 24 кадра в секунду. FPS это и есть частота смены кадров. Частоту смены 25 и выше человеческий глаз уловить не в состоянии, на сем эффекте и основан пресловутый 25 кадр. Если будет меньше, то глазу будет заметно дрожание и наложение новой картинки на старую, поэтому 25 и ни кадром меньше! Если мне не доверяешь, читай корифеев, Ла Мота, например.


 
parovoZZ ©   (2004-07-28 19:30) [9]

Не путайте хрен с редькой. В первых кинопроекторах действительно частота кадров была 24 кадра в секунду. Но человеческий глаз улавливал мерцания, поэтому позднее один кадр стали показывать дважды (боюсь ошибиться, абтеруатор что ли называется, перекрывал один  и тот же кадр 2 раза), получилось как-бы 48 кадров в секунду, хотя съёмка по прежнему велась со скоростью 24 кадра. В телевидении сделали по другому. Кадр поделили на чётные и не чётные строки (так называемые поля), а для совместимости с киноплёнкой вставляют специфический 25 кадр. Получается, что передаются всё те же 25 кадров в секунду, но растр отрисовывается с частотой 50 полей в с, то бишь 50 Гц.
Это так, прелюдия. Не знаю чем там занимается Ла Мота, но для телевидения минимальная частота смены кадров 48 Гц.
Кстати, в мониторах сделана прогрессивная (построчная) развёртка, но даже при этом 50 Гц на глаз очень сильно заметно. На самом деле всё зависит от того, в какую часть сетчатки попадёт изображение, потому как для бокового зрения оптимальньой является частота 75 Гц.


 
NikeOLD   (2004-07-28 19:57) [10]


> parovoZZ ©   (28.07.04 19:30) [9]

Еще раз: 25 для DirectDraw и 60 для 3D! Ни кадром меньше. Ла Мот профи, в отличие от профанов. Сходство с проектором тут может и ни причем, а вот ваш кадр просто не будет успевать подготовиться и отрендериться в случае с меньшим FPS. Отсюда тормоза, когда графика как-бы замирает, а потом появляется совершенно не втом месте. Именно из-за низкого FPS!
А Ла Мота цитировать мне очень не хочется, пожалуйста не вунуждайте. Поищите ответ еще где-нибудь.


 
parovoZZ ©   (2004-07-28 22:06) [11]

И всё-таки не надо путать частоту развёртки монитора с частотой обновления экранного буфера. Это совершенно разные вещи. Согласен, если для DirectDraw FPS 25 является нормальным, то монитор с частотой развёртки 25 Гц Вы бы первым выкинули на помойку; и не надо утверждать, что человеческий глаз воспринимает минимум 25 кадров в секунду. 48, и не кадром меньше. Ну, среднестатистически.


 
NikeOLD   (2004-07-28 23:10) [12]

А Вы, позвольте, игромейкер или "киношник"? Вынуждаете в толмудах копаться :) ? Может я тоже чего уже не припоминаю....

Ну, пожалуй соглашусь с Вами кое-в чем, но ноги все оттуда растут. Да вот у Ла Мота уточнение минимум 30 FPS, говорится, конечно, что можно и на 15 работать, но гарантии за хорошее качество малова-то.

Кстати, мы увлеклись. Где, собственно, хозяин вопроса?


 
parovoZZ ©   (2004-07-28 23:44) [13]

Не сочтите за оффтоп, но если задан вопрос, на него должен быть дан ответ. Кино не смотрю, в игры играю очень редко, по специальности инженер. ВСЁ.


 
RyDmi ©   (2004-07-29 00:50) [14]

[12]: Хозяин вопроса здесь. Наблюдаю за происходящим.

[10]: У меня скроллинг карты. 25 маловато для качественного отображения.


 
RyDmi ©   (2004-07-29 00:50) [15]

[12]: Хозяин вопроса здесь. Наблюдаю за происходящим.

[10]: У меня скроллинг карты. 25 маловато для качественного отображения.


 
Megabyte-CeerCop ©   (2004-07-29 06:30) [16]

Объясню, почему в кино 24 - это незаметно, а в игре 24 - очень ломит в глазах.
В кино на каждом кадре есть очень качественное MotionBlur поэтому кадры переходят один в один не заметно. А в игре мы имеем лишь ряд статичных картинок. Хотите плавного скролинка карты при низком FPS, - делайте MotionBlur. (Хотя дешевле обойдется повышение FPS).


 
parovoZZ ©   (2004-07-29 11:33) [17]

В современном кино - 48.


 
RyDmi ©   (2004-07-30 02:54) [18]

Всем спасибо. Пора закрывать этот пост.



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

Форум: "Игры";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.083 c
8-1093947884
ExpertTech
2004-08-31 14:24
2004.11.28
Как в гриде границу ячейки нарисовать толще?


14-1099944915
Knight
2004-11-08 23:15
2004.11.28
Как в Пиратах Карибского моря...


10-1068562249
AlexanderSK
2003-11-11 17:50
2004.11.28
В каком режиме синхронном или асинхронным работает DataSnap?


1-1099942188
Rusty
2004-11-08 22:29
2004.11.28
Вызов процедуры, принадлежащей дочернему окну...


1-1100512557
TObjectField
2004-11-15 12:55
2004.11.28
Работа с TObjectField........





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский