ИЗ ЧЕГО СОСТОИТ 1FPS
ฝัง
- เผยแพร่เมื่อ 20 มิ.ย. 2024
- Задумывались ли вы какой процесс происходит 30, 60 или более раз в секунду? Именно об этом я расскажуо в этом видео, а вы сможете хвастаться тем, что знаете больше, чем 99% игроков
⭐ Telegram - t.me/atix_cg
⭐ Поддержать - boosty.to/atixcg/donate
⭐ Поддержать (подольше) - boosty.to/atixcg
0:00 - Интро
0:16 - 1 секунда игры
0:36 - Game Loop
2:57 - Как работает GPU
4:41 - Outro
#atixcg #cg #fps #gamedev #unrealengine5
Молодец, не плохая вводная. Ну теперь ты вынужден подробно рассмотреть рендер пайплайн)
Спасибо! Шикарно объяснили! И если про game loop знают все кто когда-либо писал хоть какие-то игры, то например, про 3 потока которые идут со смещением и про то что происходит на GPU - это объяснено просто шедеврально!
Дружище, спасибо тебе что оформляешь свои видео такими крутыми презентациями. Отличные, ёмкие слайды. Это топ. Лайк подписка
Круто! Давно ждал такой контент!
Интересно и полезно, но мне кажется немного не корректно говорить, что game loop = 1fps(frame per second). Можно говорить 1 из n-fps
Корректнее сказать, что одна итерация игрового цикла (game loop) = 1 кадру (frame).
@@JamesListener или еще корректнее отделять понятие, придуманное тех.дизами движка и более устоявшийся термин геймдизов в контесте цикла "гипотеза-действие-результат" у игрока (максимально упрощено, продолжаем тред ниже), а не цикл рендер пайплайн, скрипты и инпут, т.к. многое сейчас зависит не от частоты кадров (моветон времен гта сан андреас 2004), а от изолированных тиков.
Я думаю просто автор байтит на комменты очевидной ошибкой
Познавательный контент! Продолжай в том же духе!!! 😊
Желаю дальнейших продвижений, очень надеюсь что будет информация о важных этапах экспорта 3д модели (авто/человек/обьект с анимацией) с блендера в унреал
очень полезно, спасибо))
Ну про 99% ты загнул конечно. Только game loop ≠ 1 frame. Это немного некорректное упрощение.
согласен, даже для весьма средне ведающего в этой сфере- это прозвучало странно 😅 одно это обновление процессов, а другое- скорость выведения кадров (результата этих тактов) намонитор, причём дальше в видео он сам-же сказал что "все игры вы видите с задержкой в 1-2 кадра" что не вяжется с тактом обновления самой игры (так-как если они равны- то и задержки не может быть -\_(ッ)_/- )
либо я что-то не правильно понял ^_^"""
В халф лайф,гд и других старых играх всё привязано к фпс, и количество фпс влияет на физику, нпс в халф лайф, на двери(при низком фпс в халфе можно раньше проскочить в открывающуюся дверь)
@@Pank0vmax ну справедливости ради не только в старых играх и не к фпсам, а к тактам... И не в играх, а в движках. И вообще с наступающим тя.
@@Pank0vmax Ну да. А в каком-нибудь железнодорожном симуляторе с хотя бы "получестной" физикой (как минимум продольной динамикой состава) при просадке фпс, если всё привязать к фпс, просто порвётся поезд, например. А при ещё более честной физике с обсчётом вписывания в колею каждой колпары - сразу начнутся сходы с рельсов всего и вся (тут уже даже без просадки фпс - т.к. таких фпс, которые были бы нужны для обсчёта такой честной физики, просто не бывает в реальности).
Я тоже обратил на это внимание. Но давайте по честному, это познавательный контент, а не обучающий, такое допущение только поможет сформировать картинку у новичка
четко и понятно спасибо за труд!
Вот прям бьюсь об заклад, что анализ глубины и отсечение тех пикселей, которые скрыты другими пикселями происходит не на последнем этапе в Output Merger, а ещё на этапе растеризации. В противном случае это задачка на оптимизацию для дошкольника. Мы гоняем тяжёлый и дорогостоящий Pixel Shader для огромного числа пикселей, которые всё равно потом будут отсечены. Интересно, что здесь можно было бы оптимизировать?
Ну нет, видеокарта рендерит все объекты которые ты ему подаешь, в качестве оптимизации у нее есть отбраковка треугольников которые направлены в сторону от камеры, конечно при условии что ты рендеришь только передние части, а не заднюю или обе. поэтому когда видеокарта рендерит тебе треугольник объекта А и его потом перекроет треугольник из объекта Б то видеокарта уже произведет вычисление цвета и освещения для пикселей треугольника который будет по факту перекрыт. Для частичного решения данной проблемы есть отложенное затенение и использование G- буффера. Он по факту производит все вычисления растеризации, но вычисления света происходит потом, благодаря чему происходит затратная операция вычисления конечного цвета только для тех пикселей которые мы видим.
1fps как название видео довольно хорошее, но как термин это не корректно. Это как говорить что 1 метр это 1 метр в секунду
отличное видео!
0:49 наверное оговорились, но "game loop" - это цикл обновления игры, включающий отрисовку кадра, он не равен 1 кадру\сек (1 fps)., он составляет, условно, 1 кадр, а в секунду он выполняется далеко не 1 раз
Хорошее видео! ))
Годно,бро
я бы хотел добавить, что обычно gameloop это 1 тик игры, который не зависит от фпс
2:53 Дк не правильно. Там асинхронно эти три треда работают, просто один, ждёт другой тред пока он завершит так называемую Task'у и вернёт данные, затем Render Thread просто указывает под каким доменом рендерить шейдеры, просто подготавливает ссылки на скомпилиные фрагменты шейдеров, и наложение там происходит на полигоны, затем обновление сеток Nanite, затем RHI уже это напрямую видеокарте передаёт, так как API известен с момента инициализации - ака первичного запуска. Нет никакой задержки в 1,2 кадра. Всё работает на асинхроне, и для того чтобы успеть было разделено на три потока, тем не менее рендерит текущий кадр, без задержки!
0:25 можно ли как то посмотреть на процессы по потокам так же в анриле?
топ качество контента для молодого канала
Не сказал бы что тут было что-то такое не известное, что бы не знало 99% игроков.
Ну и не согласен с game loop = 1fps(frame per second), это не корректно, тогда уж просто 1 итерация game loop = 1 кадру игры
У вас контент по геймдеву будет?
Молодец! Продолжай без рекламы только пж 🥺
Ничего не понятно, но очень интересно.
Очень сильно не хватает примеров, кадров из игр и т.п.
Постоянно слушать и смотреть на текст становится невозможно уже на второй минуте
Физика выполняется в отдельном потоке, и не зависит от основного loop'a.
Ахах. Ты в самом конце открыл "страшную картинку", но сам в ней не разобрался. Весело.
Апдейт и рендер прекрасно умещаются в выделенные на кадр 16мс (при 60фпс), если мощности позволяют, и это даже без существенной многоядерной обработки.
Что уж говорить, если в VR важна вообще каждая миллисекунда, и никакие отставания на несколько кадров непростительны настолько, что пусть лучше изображение будет битым (в случае беспроводной передачи на тот же quest 2/3), чем его не будет вовсе, чтобы неподготовленного человека лишний раз не мутило.
Единственная задержка на кадр, которую сложно убрать - буфер дисплея с вертикальной синхронизацией, и даже для этого придумали g-sync/freesync, который получает от видеокарты сигнал в тот момент, когда кадр полностью передан, чтобы свапнуть буферы и отобразить циферки в памяти в виде пикселей на экране, что позволяет ещё сильнее сократить задержку между геймлупом и отображением результата на экране.
Видео с усилием можно притянуть к тройной буферизации, но в ролике об этом ни слова, да и математика там другая.
Atix, какие ты используешь инструменты при создании видеороликов:
- какими видео- и аудио- редакторами пользуешся;
- где создаёшь арты (рисунки), которые есть в видео.
Да и как выглядит структура создания такого контента?
спасибо, я ничего конечно не понял, но теперь буду меньше жаловаться на маленький фпс (наверно)
ля, почему так мало просмотров? я удивлен
Ну вот и приехал ответ, почему анрил всего на 3х потоках работает. Из 12)))
Из чего состоит 1 фрейм, а не 1 FPS. Название вводит в заблуждение.
я что-то понял
А мы не можем посчитать сколько будет 2*342/1000+581
я 193ый подписчик ЗАПОМНИ ))))))
почему так мало зрителей (я не бот)
Ужас😂
Не сказал бы что тут было что-то такое не известное, что бы не знало 99% игроков.
Ну и не согласен с game loop = 1fps(frame per second), это не корректно, тогда уж просто 1 итерация game loop = 1 кадру игры