Genshin Impact использует кастомный Scriptable Render Pipeline на Unity, применяя Deferred рендеринг, что необычно для мобильных игр. Рендеринг начинается с создания текстур неба и облаков, за которыми следует заполнение G-буфера, состоящего из трех текстур для нормалей, диффузного цвета и дополнительных данных, а также буфера глубины со стенсил-информацией для определения типа объектов.
Растительность, включая траву и деревья, рендерится с использованием инстансинга и LOD. Трава обрабатывается преимущественно в вертексном шейдере с псевдорандомизацией и динамическим приминанием. Деревья комбинируют статичную геометрию и спрайты. Не-стилизованные объекты используют карты нормалей и спекуляра. Персонажи имеют ink-обводку и необычно сгруппированные текстуры в атласы, а блики в глазах сделаны отдельной геометрией.
После заполнения G-буфера создается текстура глубины пониженного разрешения, а затем рассчитываются тени, причём тени от Omni-источников упаковываются в RGBA, что нетипично. Отдельно генерируется текстура для приминания травы. Далее рассчитываются тени, screen space reflections, рендерятся полупрозрачные объекты и, наконец, происходит deferred рендеринг с применением PBR для основных объектов, cell-шейдинга для персонажей и отдельного шейдера для растительности.
Завершается рендеринг применением источников света (используется геометрия), облаков, тумана, водных поверхностей и эффектов, а также bloom и цветокоррекции. UI рендерится последним. Несмотря на высокий уровень детализации, игра оптимизирована за счет инстансинга и LOD, хотя есть неэффективности, такие как рендеринг приминания травы в интерьерах. Мобильная версия дополнительно оптимизирована за счет отключения некоторых эффектов и апскейла кадра.
Изображение носит иллюстративный характер
Растительность, включая траву и деревья, рендерится с использованием инстансинга и LOD. Трава обрабатывается преимущественно в вертексном шейдере с псевдорандомизацией и динамическим приминанием. Деревья комбинируют статичную геометрию и спрайты. Не-стилизованные объекты используют карты нормалей и спекуляра. Персонажи имеют ink-обводку и необычно сгруппированные текстуры в атласы, а блики в глазах сделаны отдельной геометрией.
После заполнения G-буфера создается текстура глубины пониженного разрешения, а затем рассчитываются тени, причём тени от Omni-источников упаковываются в RGBA, что нетипично. Отдельно генерируется текстура для приминания травы. Далее рассчитываются тени, screen space reflections, рендерятся полупрозрачные объекты и, наконец, происходит deferred рендеринг с применением PBR для основных объектов, cell-шейдинга для персонажей и отдельного шейдера для растительности.
Завершается рендеринг применением источников света (используется геометрия), облаков, тумана, водных поверхностей и эффектов, а также bloom и цветокоррекции. UI рендерится последним. Несмотря на высокий уровень детализации, игра оптимизирована за счет инстансинга и LOD, хотя есть неэффективности, такие как рендеринг приминания травы в интерьерах. Мобильная версия дополнительно оптимизирована за счет отключения некоторых эффектов и апскейла кадра.