oxygen написал:
Я правильно понял, что происходит так, что не успел до низу прорисоваться еще предыдущий кадр, как сверху начинает рисоваться следующий, и в итоге они как-то накладываются?
Не сверху, а дальше.
Рисуется 1-й кадр, дорисовался до трети экрана. Тут видеокарта просчитала второй кадр, и начинает передавать монитору уже его. На второй трети экрана рисуется второй кадр. Опять не успевает до низа дойти, как приходит третий кадр.
В результате изображение разрезано на три разные полосы: верх первого кадра, середина второго и низ третьего.
А на счет синхронизации, пробовал я ее — на респауне посадила fps со 100 до 60-70, в итоге решил убрать
Не посадила, а ограничила. Смысл синхронизации как раз в этом: выдавать ровно столько кадров, сколько может отобразить монитор, причём синхронизированно с рисованием кадра на мониторе.
В результате вместо изломанной картинки и совершенно ненужных 100 fps будет нормальная цельная картинка и максимально возможные для монитора fps. Всё равно на LCD мониторе картинка чаще, чем раз в 60 секунд не обновляется.
Но эту функцию имеет смысл включать только если у тебя всегда более 60 fps. Если в игре 30-40 fps, то из-за vsync может только усугубить и визуально будет выглядеть как 20-25 fps.
Отредактированно Dan (29-01-2010 19:11:54)