Войти
ФлеймФорумПрограммирование

Потестируйте 1000 кубов на плавность [завершено, итоги в сообщении #72, всем спасибо]

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 4 5 6 Следующая »
#0
(Правка: 14:05) 13:59, 14 фев. 2019

Доброго дня.

Вводная.
- Есть софтварный 3д рендер. Софтварный означает, что он строит картинку в оперативной памяти на cpu. И полность готовую отправляет на gpu.
- Есть несколько способов отправки картинки на gpu. Самый простой через вин-апи, gdi. Однако в нём нет вертикальной синхронизации, vsync. Также есть способы вывести картинку с синхронизацией, например через библиотеку sdl2.
- И возник у меня вопрос: насколько vsync требуется для 3д-софтрендера.

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

Основные вопросы:
а) Где на глаз лучше плавность? А если на фоне будет работать к примеру ютуб?
б) Заметно ли различие в шуме кулера процессора, где меньше шумит?
в) Работает ли полноэкранный режим в sdl2 - версии? (Разрешение выставляется в самом тесте на стартовом экране)

Архив: https://drive.google.com/file/d/1PkwEHgjsLfuZQ2P6T2OFJidMSdrQg6MV… w?usp=sharing


#1
14:15, 14 фев. 2019

a) sdl версия, естественно, плавнее (почти идеально). Небольшие поддёргивания в gdi есть, но если бы ничего другого не было, то жить всё равно можно. По скорости разницы не заметил.
б) не заметил
в) работает, если выбрать разрешение идентичное разрешению рабочего стола

#2
14:23, 14 фев. 2019

122
> Также есть способы вывести картинку с синхронизацией, например через библиотеку
> sdl2.
А она как делает? Тащить целую библиотеку ради одной функции, ну пипец же.

#3
14:28, 14 фев. 2019

1 frag / 2 deaths
> Тащить целую библиотеку ради одной функции, ну пипец же.

Да даже один только блиттинг на SDL будет в пару раз меньше по коду, чем на WinAPI.

#4
14:29, 14 фев. 2019

122
> Основные вопросы:
> а) Где на глаз лучше плавность? А если на фоне будет работать к примеру ютуб?
винапи изредка еле-еле подрагивает
сдл каждые 5 секунд замирает на четверть секунды

#5
(Правка: 14:34) 14:33, 14 фев. 2019

1 frag / 2 deaths
> сдл каждые 5 секунд замирает на четверть секунды
СЕНСАЦИЯ!!!!1 Невиданный обман! Афера века!

+ Показать
#6
14:36, 14 фев. 2019

1 frag / 2 deaths
> А она как делает?

На винде она через D3D работает (по крайней мере у меня). С точки зрения же API просто прописываешь флаг PRESENT или как то так при вызове функции создания окна.

#7
(Правка: 14:47) 14:47, 14 фев. 2019

0iStalker
Спасибо!

1 frag / 2 deaths
> Тащить целую библиотеку ради одной функции, ну пипец же.
Пипец, но вариантов то нет. В соседней теме vsync на хаках предлагают делать, а хаки это х10 раз больший пипец. Переносимость на линукс например закапывайте сразу.

> винапи изредка еле-еле подрагивает
> сдл каждые 5 секунд замирает на четверть секунды
Ого, прямо на ЧЕТВЕРТЬ секунды?
А система какая?
Если не трудно, во время теста зажми капс-лок: увидишь пару системных окошек. В правом будет FPS и два числа, среднее и минимальное из 100 кадров. Скажи оба, разумеется когда пройдёт такой лаг.

#8
14:55, 14 фев. 2019

122
> В правом будет FPS и два числа, среднее и минимальное из 100 кадров. Скажи оба,
> разумеется когда пройдёт такой лаг.
Цифры меняются между
58,56
и
58,7

122
> Ого, прямо на ЧЕТВЕРТЬ секунды?
Не, меньше. Но очень заметно.

122
> А система какая?
Win10

#9
14:58, 14 фев. 2019

1 frag / 2 deaths
> Win10
А проц? А разрешение экрана?

> Цифры меняются между
> 58,56
> и
> 58,7
Реально херово.
Не должно такого быть. Хоть отказывайся от vsync'а...

#10
15:01, 14 фев. 2019

122
> А проц?
i7-7700HQ 2.8GHz

122
> А разрешение экрана?
1920x1080

#11
15:04, 14 фев. 2019

122
> а) Где на глаз лучше плавность? А если на фоне будет работать к примеру ютуб?
Проверял без Ютуба. Плавнее работает SDL-версия. Тестировал на Win10. Если интересно, то winapi-версия видимо учитывает 125% масштаб, выставленный в винде, так как окошко по факту больше, чем задано разрешение, и все слегка размытое. SDL версия игнорит масштаб.
> б) Заметно ли различие в шуме кулера процессора, где меньше шумит?
Кулер шуршит одинаково.
> в) Работает ли полноэкранный режим в sdl2 - версии? (Разрешение выставляется в самом тесте на стартовом экране)
Работает, если поставить разрешение равное разрешению рабочего стола.

#12
15:11, 14 фев. 2019

Vitorio
Спасибо!
Масштабирование винды, да. Это нормально. В свойствах файла можешь отключить, в вин7 это свойства файла, вкладка "совместимость".

1 frag / 2 deaths
Вот например sdl2 из архирва Quake Spazm'а. Чуть более старая версия.
Можешь проверить, как с ней пойдёт?
Если лаг исчезнет - это на 100% косяк SDL-я.
Файл: quake_spazm SDL2
Но что делать всё равно хз. Старых версий у них не скачать нормально.

#13
15:25, 14 фев. 2019

122
> Можешь проверить, как с ней пойдёт?
> Если лаг исчезнет - это на 100% косяк SDL-я.
Лаг исчез

И почему-то сдл при нажатии на выход 3 секунды тупит.

#14
(Правка: 20:02) 16:32, 14 фев. 2019

SDL версия плавнее, даже если отключить vsync. Хоть и появляются подергивания, как-будто интерполяция сломана и картинка периодически "проскакивает". В GDI версии как будто просто 30 fps. Если в настройках поставить 30, то примерно одинаково получается.

Если в винде (седьмой) включить аэро, то и GDI версия начинает сносно работать. Тоже с небольшими подлагиваниями, но сильно лучше, чем без аэро. Без аэро примерно как doom2 на стандартных 35 кадрах.

Страницы: 1 2 3 4 5 6 Следующая »
ФлеймФорумПрограммирование