Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Временное сглаживание или Почему G-буфер «дрожит»
Временное сглаживание – это уникальная особенность UE4, которая отлично влияет на качество изображения, потребляя при том среднее количество ресурсов. Заметьте, что на предыдущем изображении края объекта не были сглажены. Но во время движения вы заметите, что силуэт объекта «дрожит». Это происходит по той причине, что временное сглаживание перемещает рендеринг все сцены каждый кадр на каждый пиксель. Из нескольких кадров, скомбинированных вместе, получается финальное сглаженное изображение. Хотя, мы, конечно, можем переместить материал в более раннее положение в графе постобработки для исправления подобных артефактов. Мы получили стабильное и сглаженное изображение. Правда, как говорилось, в движении можно наблюдать появление артефактов, связанных с временным сглаживанием. Из-за использования буфера глубины для перепроецирования старого изображения. В случае рендеринга краев внутри объекта, все работает хорошо, но как только мы назначаем рендер краев поверх объекта, появляются артефакты. Для того, чтобы их избежать, требуется настроить буфер глубины (эта функция пока не реализована полностью и потребляет слишком много ресурсов). Известные проблемы ● Блок материала SceneTexture o Separate Translucency не работает. o Отфильтрованные (билинейно) lookups не работают. o Определенные lookups не работают в некоторых проходах (возможно, не все из них будут исправлены, ввиду больших затрат ресурсов компьютера). o MaterialFunction может выдавать ошибку, хотя и продолжать работать с доменом постобработки. ● Материалы o UV в PostProcesMaterial не может принимать значения из промежутка от 0 до 1(например, при уменьшении размеров вьюпорта).
o Миниатюра ассета с материалами постобработки отображается неправильно. o Альфа-канал в качестве выхода пока не поддерживается (используйте «Opacity» (Непрозрачность). o Предпросмотр материала в редакторе материалов отображается неправильно. o В некоторых случаях изменение материала ни к чему не приводит в постобработке. Для исправления – перезагрузите редактор. o Браузер контента должен позволять легко фильтровать материалы постобработки. o Режим смешивания материалов не работает для материалов постобработки. ● Смешивание o При смешивании двух волюмов постобработки, возможно проявление неаккуратного перехода. Это можно избежать, если использовать непривязанный волюм со стандартными настройками материала.
Blendables Blendables – ассет, имеющий свойства, позволяющие ему аккуратно смешиваться с другими такими же. Мы в Epic Games чаще всего используем Blendables для PostProcessMaterials, но эта система подходит для всего, что зависит от вида (т.е. в основном, для связанного с камерой). Blendable Ассеты Blendable уже реализованы в движке, хотя и используются только для PostprocessMaterils / PostprocessMaterialInstances. Тем не менее, по идее, основная задача Blendable – предоставить возможность смешивать произвольные данные (как наиболее подходящие примеры: линейные значения, цвета) для выдачи результатов любой из подсистем. К примеру, в случае со сплит-скрином вы сможете раздельно реализовывать постобработку для каждого из экранов. Blendable – это объект, который имеет IBlendableInterface, в данный момент реализованный следующими типами ассетов: ● PostprocessMaterials ● PostprocessMaterialInstances ● LightPropagationVolumeBlendable Контейнер Blendable находится в PostProcessSettings, которые имеются у следующих объектов: ● PostProcessVolume ● PostProcessComponent ● SceneCaptureActor ● CameraComponent Ассет LightPropagationVolumeBlendable создан как пример создания нового blendable и замены существующих PostProcessSettings. Эта система работает хорошо с малым количеством настроек, в других случаях нужна более сложная система. Blendable в контент-браузере имеют собственную категорию – «Blendable». Можно использовать кнопку «Add New» или отфильтровать ассеты по категориям. Плюсы новой системы:
● Простота расширения и обновления (нет необходимости менять целую единую структуру, можно просто создать отдельный модуль) ● Гибкие связи между пакетами позволяют работать с контентом без определенного уровня доступа (СКВ) ● Они же дают возможность использовать один ассет во многих случаях (уменьшение избыточности, большая гибкость) ● Возможно создание отдельного UI для каждого blendable (гораздо сложнее делать это с единой структурой) ● Каждый экземпляр blendable имеет свой «вес», как и ассеты (см. LightPropagationVolumeBlendable), благодаря чему легко определить «вес» каждому свойству ● Разбиение крупной структуры упрощает работу с блупринтами, делая её эффективнее и лаконичнее. Контейнер Blendables Контейнер реализован как массив «весов» и ссылок на lendableInterface. Открыв параметры PostProcessVolume и посмотрев на массив blendable, вы увидите массив «весов» с ссылками на ассет blendable. Значения «веса», как правило, располагаются в промежутке от 0 до 1. А ссылки указывают на ассеты, расположенные в пакете (созданном в браузере контента) или в объекте, содержащем массив blendables. Blendables-контейнеры можно найти в настройках пост-обработки. Массив здесь имеет три элемента: LightPropagationVolumeBlendable (из объекта волюма), пока не используемый элемент массива и ссылка на ассет LPV0 из пакета. Значение веса равняются 1.0. Когда вы создаете новый элемент массива, можно выбрать: создать blendable определенного типа (на данный момент только LightPropagationVolumeBlendable), либо использовать (LightPropagationVolumeBlendable, Material, Material Instance). Время от времени нам приходится создавать новые типы blendable (к примеру, Bloom, SceneColor, DepthOfField и другие). Ссылка может быть любого типа blendable (если реализовывается IBlendableInterface). Порядок в массиве обратен тому, как устроены слои, поскольку смешивание применяется к ним сверху вниз, перезаписывая прежние данные. Запомните, данные множества волюмов (или других объектов) комбинируются. Примечание: Хорошим тоном считается иметь несвязанный «глобальный» PostProcessVolume с низким приоритетом на уровне. Для получения полного контроля над всем уровнем вы можете добавить несвязанный волюм с высоким приоритетом. Тогда, для проверки наличия эффекта у blendable, вам достаточно изменить его вес до 0 и обратно. Blendable в пакете: как часть объекта (к примеру, волюма)/динамически созданные в блупринте Это ваш выбор, но мы советуем метод с пакетом (ссылаться на ассет в пакете), так как это позволяет минимизировать конфликты в системе контроля версий. Для максимальной гибкость, конечно, можно создавать blendable прямо в блупринте. Так как блупринты, по сути, форма программирования, передача параметров в UI равносильна их жесткому определению в коде. Хотя последний метод считается менее гибким для других разработчиков. LightPropagationVolumeBlendable описывает свое отображение в редакторе. Неважно, был ли создан blendable в контент-браузере (слева) или в объекте (т.к. волюм постобработки): пользовательский интерфейс не меняется. Хорошим тоном считается давать каждому свойству свой чек-бокс (weight=0 или weight=1), а всей структуре – смешанный вес. Примечание: Параметры LightPropagationVolumeBlendable до сих пор существуют в PostProcessSettings для обратной совместимости. Однако мы планируем удалить их и сделать blendables одним методом. Блупринт Блупринт AddOrUpdateBlendable обеспечивает удобный доступ к контейнеру blendables. Вы передаете объекту, содержащему контейнер blendables, вес и ссылку на blendable. При наличии этих параметров они просто обновляются. Элементы контейнера не удаляются, так как это может привести к нарушению работы другого кода и сборки мусора. Удаление элементов не является необходимостью, ввиду малых затрат ресурсов.
Здесь вы можете увидеть, как ссылаться на ассет blendable в контент-браузере: Переменная ‘BlendableVar’ типа LightPropagationVolumeBlendable (Object Reference) используется в качестве ссылки на ассет под названием LightPropagationVolumeBlendable ‘LPV0′. С блупринт-функцией ConstructObjectFromClass вы можете создавать новый blendable непосредственно в блупринте. Соединяя вход «Outer» нового объекта с объектом, имеющим контейнер blendable, вы добьетесь аналогичного поведения, если бы создавали объект в UI. Здесь мы создаем объект типа LightpropagationVolumeBlendable, получаем настройки и определяем членов с функцией SetMembersIn. Примечание: Вам понадобится вручную определить флаг как true (установленный чек-бокс), иначе свойство с тем же именем не будет выбрано. В качестве эксперимента вы можете использовать showflag VisualizeLPV (в редакторе: Visualize/Light Propagation Volume) для отображения смешанных параметров. Это реализовано в коде на C++ и только для данного типа blendable, но позже мы реализуем подобную возможность для каждого свойства без необходимости привносить в код какие бы то ни было изменения. Showflag Visualize отображается смешанные значения, что полезно при отладке. Scene Fringe Scene Fringe – эффект хроматической аберрации, симулирующий изменения цвета при использовании обычных линз. Наиболее заметен на краях изображения.
Screen Space Reflections SSR (Screen Space Reflection) – эффект, включенный по умолчанию, который добавляет отражения на поверхность объектов. Эти отражения работают в реальном времени. Поскольку это эффект постобработки, отражается только то, что видно на экране. Поэтому то, что не рендерится на экран не будет отражаться через SSR отражения. При этом границы могут быть размыты. У SSR всего лишь несколько настроек:
Vignette
Vignette – Виньетирование. Эффект затемнения по краям изображения при использовании обычных линз. Высококачественные линзы стараются компенсировать его. Настройки виньетирования можно найти в настройках постобработки под вкладкой Scene Color.
Аудио и звуки Звуки Звук имеет огромное значение для создания правдоподобной и виртуальной реальности. От окружающих звуков в уровне, до интерактивных звуков от транспортных средств или оружия, до звука диалога персонажей, звук в игре значит очень многое. Создание звука в игре звучащего так же как он должен звучать может быть трудной задачей. Аудиосистема Unreal Engine 4 предоставляет инструменты и функции формирования звуков в игре, чтобы придать им нужный вид. Это важно, поскольку это означает, что чистый вариант звука может быть создан один раз во внешнем приложении, после чего импортироваться, а затем быть обработанным в движке, чтобы получить соответствующий результат. Обзор аудиосистемы Аудиосистема в Unreal Engine 4 состоит из нескольких компонентов, все они работают вместе, чтобы создать нужное звучание. После импорта аудио файла в движок, у вас будет несколько способов представить его на уровне например Volume или Pitch, Импорт звуковых файлов Unreal Engine 4 в настоящее время поддерживает импорт несжатых 16-битных звуковых файлов с любой частотой дискретизации (см. таблицу ниже). Для достижения наилучших результатов рекомендуется, использовать частоту дискретизации 44100 Гц или 22050 Гц.
Импорт звукового файла в редактор генерирует ассет Sound Wave, который может быть выставлен непосредственно на уровень или может быть использован для создания Sound Cues и отредактирован внутри Sound Cue Editor. Импорт звукового файла может быть сделан двумя путями: Через Content Browser: 1. В Content Browser, нажмите кнопку Import (на фото ниже).
2. Выберите файл. WAV, который вы хотите импортировать. Или: 1. Выберите звуковой файл в окне Проводника Windows. 2. Перетащите его в Content Browser. Unreal Engine 4 также поддерживает многоканальные (например, 5.1) звуки и использует специальное именование при импорте файлов для использования нескольких каналов. Типы звуковых ассетов Чтобы добавить звуковой ассет, нажмите кнопку в Content Browser и выберите звук который вы хотите добавить. Есть несколько различных типов звуковых ассетов, которые могут быть добавлены к вашим проектам, они описаны ниже. Sound Cue Sound Cues являются составными звуками, которые позволяют изменять поведение воспроизведения звука, комбинировать звуковые эффекты, а также применять звуковые модификаторы Sound Nodes, чтобы изменить конечный результат. Sound Attenuation Sound Attenuation ассеты позволяют определять свойства затухания множеством способов. Вместо того что бы настраивать затухание в каждом звуке, вы можете использовать Sound Attenuation ассеты. Реверберация Эффекты реверберации являются ассетами с несколькими свойствами, которые могут быть легко отрегулированы и применены к любому звуку, помещенному в ваш уровень. С эффектом реверберации, вы можете настроить многие параметры (на фото ниже), Sound Class Sound Class представляют собой набор свойств, которые могут быть применены к ряду звуковых ассетов. Иерархии могут быть созданы путем добавления дочерних классов, которые позволят вам перенести вниз только специфические свойства из родительского класса. Вы можете подключить класс внутри Sound Class Editor, который имеет подобный Cue Editor Sound интерфейс. Вы можете также добавить звуковое смешивание (смотрите раздел Sound Mix ниже) к Sound Class, которые будут активироваться автоматически всякий раз, когда звук класса играет Sound Mix Sound Mix позволяют устанавливать настройки эквалайзера и изменения громкости и высоты тона в свойства Sound Class. Несколько Sound Mix могут быть активными в одно и то же время, все это способствует общему звучанию. Вы можете Push (Включить) или Pop (Деактивировать) Sound Mix непосредственно внутри блупринта. Значение -1 указывает на то, чтобы никогда не будет отключен автоматически Sound Mix так же не будет автоматически выключен. Dialogue Voice & Dialogue Wave Ассеты Dialogue Voice и Dialogue Wave используются для генерации в игре диалогов события, создания субтитров, и для упрощения усилий по локализации. Dialogue Wave предоставляет больше возможностей. Кроме того, производится связь между диалогом аудио и текстовыми субтитрами. Dialogue Wave представляет собой единую линию диалога и основной компонент настроек Dialogue Voice является разделом Dialogue Contexts. Внутри раздела Dialogue Contexts, вы можете указать Speaker или Directed At в соответствующих разделах путем присвоения Dialogue Voice. Фактическая аудио линия диалога может быть добавлена в качестве звуковой дорожки через Content Browser. В том случае, если у вас есть несколько актеров, которые говорят ту же линию диалога, Add Dialogue Context позволит вам создать новую запись для диалога, где вы можете установить новый Speaker и Directed At разделы. Dialogue Wave также может быть применен к Sound Cue с помощью узла Dialogue Player внутри Sound Cue Editor. Кроме того, вы можете получить доступ к Dialogue Wave непосредственно из блупринта с помощью Play Dialogue at Location и Play Dialogue Attached. В дополнение к Dialogue Contexts, вы можете применить Mature фильтр. Под Script, вы можете ввести текст, на котором говорят в приложенном аудио внутри Spoken Text раздела. Общий объем, руководство Что касается громкости в потенциальном объеме, здесь существует несколько различий. Например, стерео файл с 1,0 объемом будет в два раза громче, чем моно файл. Тем не менее, в конечном итоге мы попадаем под общий порог и выходной звук начинает искажаться.
Volume Ducking Volume Ducking, как правило, используется для уменьшения объемов всех других звуков, кроме одного, который должен быть услышан, чаще всего — диалога. ● Идентификация Sound Class, который должен быть использован в Volume Ducking. ● Когда звук из этого Sound Class срабатывает, другие Sound Class начинают уменьшаться в объеме (Sound Mix: Fade In Time = 0,3 секунды). ● Укажите количество других Sound Class уменьшающихся в объеме (Sound Mix: Volume Adjuster = 0,4). ● Когда звук из Sound Class останавливается, другие классы увеличиваются в объеме и возвращаются к нормальной громкости (Sound Mix: Fade Out Time = 0,3 секунды). ● Вы можете также исключить Sound Class в процессе приглушения (например, музыки). Этот подход будет гарантировать, что акцент делается на важных аспектах вашего аудио и что он не «утонет» под поверхностными или не-важных звуковыми элементами.
|
||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2020-12-17; просмотров: 142; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.221.67 (0.065 с.) |