timeles

Рендеринг и движок Enfusion

От автора с reddit: На официальном форуме велось много разговоров насчёт нового рендера. Я создал этот поясняющий пост о том, что такое рендер и какую роль он играет. Вся информация, написанная в этом посте, основана на комментариях разработчиков с официального форума.

Что такое визуализация (рендеринг)?
Рендеринг это особый процесс создания или получения изображения по 2D или 3D модели. Этот процесс отвечает за геометрические данные, положение камеры наблюдателя, текстурирование, освещение и степень затенения, которые объединяясь, создают визуальную сцену. Чаще всего процесс рендеринга разделяется на CPU и GPU. Большинство световых эффектов создаются с помощью сложного процесса рендеринга, который использует источники света в качестве основы.

Когда мы описываем изменения, чаще всего мы говорим об изменении версии DirectX. DirectX - это просто интерфейс программирования приложений, который разработчики могут использовать при написании кода для процесса рендеринга. Версия DirectX выступает в качестве средства, которое упрощает процесс визуализации компьютерной сцены. Чем новее версия DirectX, тем эффективнее разделяется процесс рендеринга между CPU и GPU.

Почему в DayZ плохой рендеринг?
Как мы все знаем, города приводят к сильным падениям FPS и чаще всего FPS падает ниже 30, даже для топовых игровых компьютеров. Рендеринг в DayZ сильно устарел, он использует технологию DirectX 9, а некоторые элементы рендеринга ночного времени вообще используют технологию DX 7. В DayZ и Arma 3 процесс рендеринга подключен к симуляции (то есть все функции завязаны напрямую). Это сильно влияет на FPS, связанно это с тем, что сервер обрабатывает большую часть информации о луте, игроках, зомби, физике и прочее. Когда симуляция связана с рендерингом, то низкий FPS сервера сильно влияет на клиентский FPS и ему не важно, какие у вас компы.

Что нам даст новый движок Enfusion с точки зрения рендеринга?

  • Рендеринг будет отключен от симуляции
  • GPU станет в большей степени использоваться в процессе визуализации сцены за счёт оптимизации, нового освещения, большей выборки, новых материалов, новой модели местности, системы частиц и т.п.
  • Большинство видимых изменений помимо производительности будут добавлены со временем
  • Улучшенная система частиц (кровь, вспышки от выстрела, искры от пуль, взрывы и т.д.)
  • Полный переход на более новую версию DirectX намечен на конец года (это значит, что игра пока будет использовать DX 9, по крайней мере, ещё 10 месяцев)
  • Пост-обработка и некоторые более продвинутые эффекты тоже запланированы на конец года
  • Переход будет на DirectX 11, в будущем возможно на DirectX 12
  • Эффект рассеивания света и улучшенная визуализация всех источников света (свет больше не будет проходить сквозь объекты)
  • Улучшенная и более правдоподобная визуализация ночного времени
  • Движок Enfusion, скорее всего, будет использоваться в будущих проектах BI (возможно ArmA 4?)
  • Другие визуальные эффекты, связанные с персонажем (кровотечение, намокание, признаки заболеваний и т.д.)
  • Улучшенное отсечение невидимых объектов (технология Occlusion culling)
  • Поддержка многоядерных и многопоточных систем
  • Переход на 64-битные системы (пора бы уже забыть Win XP)
  • Улучшенная обработка объектов
  • Темные интерьеры зданий (в закрытых помещениях при отсутствии освещения)
  • Большие визуальные изменения

Когда работа над этим будет завершена?
К концу первого квартала 2015 года, мы должны закончить работу над отключением рендеринга от симуляции. Это поможет устранить проседания FPS связанные с загруженностью сервера. Полная замена текущего рендера совершенно новой технологией, переход на DirectX 11\12 и новые эффекты визуализации будут осуществляться постепенно вплоть до релизной версии DayZ.

Вся информация из оригинального поста на reddit взята из комментариев разработчиков на официальном форуме.