Рендеринг и движок 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 взята из комментариев разработчиков на официальном форуме.