Настройки Качества
Unity позволяет вам установить уровень качества графики, на котором будет производится попытка рендеринга. В общем случае, высокое качество снижает частоту кадров, таким образом, иногда лучше не устанавливать наивысший уровень качества на мобильных устройствах или старом оборудовании, так как это будет отрицательно влиять на игровой процесс. Инспектор Quality Settings (в меню: Edit->Project Settings->Quality ) используется для установки уровня качества для выбранных устройств в редакторе. Он разделен на две основные области: в верхней расположена следующая матрица:
Для быстрой ориентации в настройках качества, Unity позволяет вам назначать своим комбинациям настроек уникальные имена. Строки матрицы позволяют вам настроить какой уровень качества будет применён для той или иной платформы. Самая нижняя строчка матрицы не является уровнем качества как таковым, но она позволяет задать стандартный уровень качества для всех платформ (зелёный чекбокс в колонке отвечает за уровень выбранного качества для выбранной платформы). По-умолчанию вместе с Unity идёт 6 предустановленных наборов уровня качества, но вы также можете настраивать и сохранять свои наборы, используя кнопку, расположенную под матрицей. Чтобы удалить ненужный набор, можно воспользоваться значком корзины (расположенном в самой правой колонке).
Для редактирования уровня детализации, можете нажать на его названии под панелью настроек матрицы:
Параметры качества, которые вы можете установить для определенного уровня качества, следующие:
Свойство: | Функция: |
---|---|
Имя | Имя, которое будет присвоено этому уровню качества. |
Визуализация | |
Pixel Light Count | Максимальное значение пиксельных источников света используемых при упреждающем рендеринге (Forward Rendering). |
Texture Quality | Позволяет вам выбрать, отображать ли текстуры в высоком разрешении или в среднем (низкое разрешение требует незначительного количества ресурсов). Варианты настроек следующие Full Res, Half Res, Quarter Res и Eighth Res. |
Анизотропные текстуры не используются. | This enables if and how anisotropic textures will be used. The options are Disabled, Per Texture and Forced On (ie, always enabled). |
###Сглаживание | Устанавливает уровень применяемого сглаживания. Варианты настроек следующие 2x, 4x and 8x мульти-сэмплинг. |
###Мягкие Частицы | Должно ли для частиц использоваться мягкое смешивание? |
Realtime Reflection Probes | Should reflection probes be updated during gameplay? |
Shadows | |
Shadows | This determines which type of shadows should be used. The available options are Hard and Soft Shadows, Hard Shadows Only and Disable Shadows. |
Shadow resolution | Тени могут быть отрендерены в нескольких разрешениях: Low, Medium, High и Very High. Чем выше разрешение, тем больше будет выполнено вычислений. |
Shadow Projection | Существует два метода для проецирования теней из направленных источников света. Плотное прилегание (Close Fit) рендерит тени высокого разрешения, но время от времени при движении камеры они могут слегка колебаться. Стабильное прилегание (Stable Fit) рендерит тени низкого разрешения, но они не колеблются при движении камеры. |
Shadow Cascades | Количество потоков теней может быть равно нулю, двум или четырём. Большее количество потоков означает и лучшее качество создаваемых теней, но также это и большее количество вычислений (для получения дальнейшей информации, просмотрите страницу Направленные тени (Directional Shadows)). |
Shadow Distance | Максимальное расстояние от камеры на котором тени будут видны. Тени расположенные дальше рендериться не будут. |
Shadow Near Plane Offset | Offset shadow near plane to account for large triangles being distorted by shadow pancaking. |
Other | |
Blend Weights | Количество костей, которые могут влиять на отдельно взятую вершину в процессе анимации. Доступными значениями являются: одна, две или четыре кости. |
VSync Count | Рендеринг может быть синхронизирован с частотой обновлений устройства вывода (монитора) с целью избежания артефактов “разрывов” (смотрите ниже). Вы можете выбрать синхронизацию с каждой вертикальной пустотой (VBlank), с каждой второй вертикальной пустотой или же вовсе отключить синхронизацию. |
LOD Bias | Уровень LOD выбирается исходя из размера объекта, занимаемого им на экране. Когда размер находится между двумя уровнями LOD, выбор может быть сделан как в сторону более детализированной, менее детализированной модели, так и в сторону более детализированной из двух имеющихся моделей. Значение может изменяться от 0 до 1 — чем ближе значение к 0, тем более вероятно что будет использоваться менее детализированная модель. |
##Максимальный уровень LOD | Наибольший LOD, который будет использоваться в игре. Для получения дополнительной информации ознакомьтесь с примечанием ниже. |
Particle Raycast Budget | Максимальное количество излучаемых лучей, используемых для аппроксимации столкновений систем частиц (те с качеством Medium или Low ). Просмотрите модуль столкновений системы частиц. |
Async Upload Time Slice | The amount of CPU time in milliseconds per frame to spend uploading buffered textures to the GPU. See Async Texture Upload. |
Async Upload Buffer Size | The size in MB for the Async Upload buffer. See Async Texture Upload. |
Максимальный уровень LOD
Модели, которые будут иметь уровень детализации ниже максимального уровня (MaximumLOD) не будут использоваться, а также будут опущены при сборке (что позволит сохранить место в памяти). Unity будет использовать для настроек целевой платформы усреднённое значение LOD объектов, взятое из всех максимальных LOD, которые присутствуют в сцене. Если LOD был включён в группу, тогда независимо от используемой настройки качества, модели из этой группы будут включены в сборку и будут всегда загружаться при исполнении для этой LOD группы. В качестве примера, если в любой настройке будет использоваться уровень LOD 0, тогда в сборку будут включены все уровни LOD и использующие их объекты.
Разрыв кадра
Изображение на дисплее устройства обновляется не постоянно, а через некоторый постоянный интервал времени, подобно тому как происходит обновление кадра в Unity. Тем не менее, обновления Unity не обязательно синхронизированы с таковыми дисплея, таким образом, может возникнуть ситуация, когда Unity отправил на дисплей новый кадр, пока предыдущий все еще рендерится. Это приводит к визуальному артефакту, называемому “разрывом кадра” в том месте экрана, где произошла смена кадра.
Unity можно настроить на переключение кадров лишь в том промежутке времени, когда устройство вывода изображения (монитор) не обновляется, в момент так называемой “вертикальной пустоты” (“vertical blank”). Опция VSync настроек качества (Quality Settings) синхронизирует переключение кадров с вертикальной пустотой устройства или опционально с любой другой вертикальной пустотой. Последнее будет полезно, если игре для рендеринга одного кадра может потребоваться более одного устройства.
Сглаживание
Сглаживание (анти алиасинг) улучшает отображение граней полигонов, путём сглаживания их “зазубренности”. Однако это выливается в нагрузке на видеокарту и использование большего количества её памяти (нагрузка на центральный процессор отсутствует). Уровень сглаживания подразумевает то, насколько сглажены грани полигонов (и сколько это требует памяти).
However, built-in hardware anti-aliasing does not work with Deferred Shading or HDR rendering; for these cases you’ll need to use Antialiasing Image Effect.
Мягкие Частицы
Мягкие частицы исчезают в местах пересечения с геометрией сцены. Выглядит это конечно весьма привлекательно, однако требует для себя больше вычислительных ресурсов (более комплексные пиксельные шейдеры), и работает только на платформах, поддерживающих (текстуры глубины (depth textures))(SL-DepthTextures). Более того, вам нужно использовать проход рендеринга под названиемотложенное освещение, или произвести из скрипта камерный рендеринг текстур глубины.
Как сделать графику на Unity лучше. Конкретные советы
Hello, username! Меня зовут Константин Ермолаев и я профессионально занимаюсь 3д графикой и разработкой игр на Unity. Чаще всего по поводу моих игр слышу вопрос: «Это что, Unity?» Да, это Unity. И ничего магического в этом нет, всем кому интересна данная тема — под кат.
Самое главное что вы должны знать о графике — это то, из чего она состоит.
Графика строится из набора изображений, который смешивается друг с другом по определенному закону, который приближает визуализацию финального изображения к реальному (либо стилизованному, если так задумано). Так и движок Unity работает точно по такому же принципу. Если кратко, то берем базовые цвета поверхностей, перемножаем их с освещенностью, добавляем отражения и спекуляр. Это общеизвестные факты, но без них никуда.
Your browser does not support HTML5 video.
Казалось бы всё просто, сел и сделал красиво, но в реальности мало кто может добиться приличных результатов за короткий срок, всё потому что в юнити досихпор нет некоторых очень важных элементов, которые позволяют это сделать быстро и главное надёжно.
Тени
В 2019 году мы имеем стандартные тени такого вида
это «Мягкие тени». Без боли на это смотреть невозможно.
Это тени из ассетстора за деньги. Это не очень удачный пример (взял то, что было под рукой), но суть должна быть ясна, тени действительно размыты и радуют глаз.
Объемный свет
Нативного решения у юнити вообще нет, поэтому сравнивать не буду. Просто покажу, что есть несколько вариантов решений в ассетсторе на примере своей игры:
Постобработка
У юнити есть есть PostProcessStackV2 и он в целом справляется со своей задачей, но кое чего всё равно не хватает, это хорошего AO, точнее HBAO+. Это ScreenSpace Ambient Occlusion, который не создает теней на объектах разнесенных по глубине.
Кроме самозатенения тут есть и очень интересная возможность Color Bleeding — эмуляция вторичного отражения света, которое добавляет картинке жизни.
Для кого-то это покажется несущественным, но для меня наличие данных возможностей — единственное, что позволяет вообще делать графику на юнити, а не там где вы возможно подумали, потому что главное в Юнити это всё таки удобство и стоимость разработки с малым числом людей и бюджетом, а для нас — инди — это самое главное. Как известно: дьявол кроется в деталях и я перечислил те из них, которые считаю самыми важными. Всё остальное это уже стандартный подход: замоделить модельки, затекстурить модельки, сделать шейдер и т. п. По данной теме итак предостаточно информации.
Названия плагинов не упоминаю, чтобы не сочли за рекламу, это не мои плагины. Если у вас есть ещё какие то полезные вещи для улучшения графики в Unity, то комментарии открыты и ждут Вас, username.
- Unity
- Работа с 3D-графикой
Улучшение графики игры на движке Unity
В этом уроке я расскажу вам каким образом можно улучшить графику вашей игры, созданной на движке Unity, благодаря плагину Post Processing.
Видеоурок
Прочитать статью о плагине FPS Starter kit можно здесь .
Плагин Post Processing это замечательное дополнение от Unity , которое в скором времени будет интегрировано в сам движок. Плагин позволяет создавать очень красивые эффекты для камеры и делать общую картинку совершенно непохожей на первоначальную. В видео детально описывается моменты работы с этим плагином, здесь же, я приведу картинки до добавления эффектов и после:
(До применения эффектов)
(После применения эффектов)
Результат действительно потрясающий! Если немного дольше над всем этим посидеть, то ваша игра заиграет абсолютно новыми красками и будет выглядеть как профессиональный шедевр.
Как улучшить графику в юнити
Искать на сайте Unity
Улучшенная графика, производительность и многое другое: публичная бета-версия Unity 5.4 доступна для скачивания
15 марта 2016 г. через Engine & platform | 10 мин. читать
Расширить
Расширить
Охваченные темы
Поделиться
As part of our commitment to bringing you stable products, Unity 5.4 is now available as a beta to all Unity users, including everyone using Unity Personal Edition. We encourage you to download it and try out the many graphics and performance updates. As always, your feedback on the release is very important to us and we encourage you to post in the beta forum and to submit your bug reports via the Unity Bug Reporter.
Why is Unity 5.4 being released as a beta?
Мы внимательно прислушиваемся к тому, что вы говорите о качестве финальных релизов, поэтому, чтобы получить больше комментариев о том, как вы используете наши технологии до того, как что-то сделать финальными, мы решили выпустить Unity 5.4 как бета-версию.
Одновременно мы делаем доступной Unity 5.3.4. Мы приложили много усилий, чтобы сделать эту версию стабильной и надежной, и мы продолжим улучшать стабильность Unity 5.3.x и выпускать небольшие обновления и патчи в течение следующих 6 месяцев.
Узнайте больше о том, что мы сделали, чтобы улучшить качество релизов Unity, или ознакомьтесь с описанием функционала Unity 5.4 beta.
Графика, производительность, интеграция Unity IAP и обновление рендеринга для VR
Unity 5.4. beta включает много улучшений и нововведений для работы с графикой. Также мы много сделали для оптимизации нашего пайплайна рендеринга для VR, значительно упростив его, чтобы вы смогли создавать билды для всех основных VR платформ.
Наш кросс-платформенный сервис Unity In-App Purchase, который вы можете использовать для интеграции различных магазинов приложений с помощью одного API , теперь больше интегрирован в редактор Unity, помогая оценивать и ускорять получение прибыли вашей игры.
Этот новейший релиз также предлагает более быстрое создание билдов WebGL, поддержку экранов с Retina и много чего еще.
Больше настраиваемых частиц и улучшенная система освещения
Unity 5.4 beta включает новые настройки для частиц, позволяя вам управлять их высотой и шириной и контролировать 3D форму mesh частиц.
Мы также выпускаем новый trigger module, который позволяет вам изменять свойства частиц из списка коллайдеров. Через очень простую форму вы можете уничтожать частицы, когда они затрагивают коллайдеры, используя индивидуальный скрипт коллбэка. Возможно изменять свойства всех частиц. Пример можно увидеть ниже
И, наконец, системы больших частиц теперь можно освещать более реалистично с помощью Light Probe Proxy Volumes. Light Probe Proxy Volumes (LPPV) – это способ включать информацию о запеченном свете в большие динамические объекты, которые не могут использовать запеченные лайтмапы.
LPPV работает, генерируя 3D-сетку вставляемых light probes в ограниченный объем и позволяя вам определять разрешение сетки. Делая так, вы можете добавлять пространственный градиент к освещенным объектам. LPPV может быть полезен не только для частиц, вы также можете использовать его для любых больших динамических объектов.
Расширить
Художники: перенесите текстуры в Unity-проект, и вы на правильном пути
Если вы используете такие инструменты, как Substance Painter, Quixel DDo Painter, Marmoset Toolbag 2 или Knald, вы увидите, что текстурные мэши, импортированные из этих программ, теперь стабильно и предсказуемо остаются такими, как надо, при импорте в Unity: просто перенесите их прямо в ваш проект.
Расширить
Расширить
Расширить
Расширить
Чтобы сделать это, мы переключили стандартную модель шейдинга с традиционного нормализованного фонга на GGX в Unity 5.3. В Unity 5.4 beta мы также полностью пересмотрели реализацию для свертывания cube map, чтобы добиться точных результатов за меньшее время.
Пост-эффекты в действии
Три месяца назад мы разместили в Asset Store бета-версию нашего набора инструментов для пост-эффектов, включая Screen Space Raytraced Reflections (SSRR), Tonemapping, Color Grading, Antialiasing (SMAA) и Depth of Field. Все они доступны для скачивания.
Этот контент поддерживается сторонним провайдером и не позволяет просматривать видео без разрешения на сбор файлов Targeting Cookies. Включите в настройках cookie-файлов пункт Targeting Cookies, если хотите смотреть видеозаписи от этих провайдеров.
Как вы можете видеть, Как вы можете видеть, мы используем их в наших демо Adam и The Labs.
Этот контент поддерживается сторонним провайдером и не позволяет просматривать видео без разрешения на сбор файлов Targeting Cookies. Включите в настройках cookie-файлов пункт Targeting Cookies, если хотите смотреть видеозаписи от этих провайдеров.
Нам очень приятно объявить, что наши пост-эффекты имеют открытый код. Вы можете найти их на BitBucket, и ваш вклад только приветствуется!
Больше VR-платформ и улучшенная производительность
Если вы следили за анонсами с Vision VR Conference, вы знаете, что мы объявили о поддержке SteamVR и некоторых значительных улучшениях производительности. Все это доступно в Unity 5.4 beta.
Поддержка большего количества VR-платформ
Мы рады сообщить, что с помощью новейшей версии Unity вы можете разрабатывать под устройства SteamVR, Oculus Rift, Gear VR и Playstation VR с помощью единого API, при этом учитывать абсолютно все тонкости устройств почти не потребуется. Чтобы сделать это доступным, мы реорганизовали подсистему VR, чтобы устранить избыточный код, который дублировал функциональность VR-устройств.
Улучшенная производительность V
Благодаря Double Wide Rendering VR-разработчики теперь могут одновременно рендерить изображения для обоих экранов для Windows и PS4. Мы также анонсировали Graphics Jobs, функцию, которая позволяет перемещать задания из основного потока в рабочий, что значительно улучшает производительность рендеринга.
Если вы хотите начать работать с VR, вам помогут учебные пособия и бесплатные ассеты, которые мы выпустили вместе с Unity 5.3.
Более глубокая интеграция In-app Purchase (IAP)
С Unity IAP и Analytics, которые теперь поддерживают новый App Store для tvOS, мы продолжает расширять количество поддерживаемых платформ. Теперь вы можете тестировать ваши проекты в песочнице, получать данные о прибыли через дашборд Unity Analytics и подтверждать платежи в реальном времени.
Улучшенный многопоточный рендеринг
Поддержка многопоточного рендеринга в Unity 5.4 beta вышла на новый уровень. В зависимости от вашего проекта и платформы, под которую вы разрабатываете, он может значительно улучшить частоту кадров.
Проделав большую работу, чтобы убрать частицы, спрайты, вспышки, ореолы, линии из основного потока в Unity 5.3, мы создали генерацию списка параллельных команд. Вместо того, чтобы создавать один список графических команд для ядра процессора, физики и других используемых систем, он переносит работу на несколько ядер процессора, убирая некоторые потенциальные узкие места и позволяя множеству сложных сцен работать быстрее.
Меньше draw calls с интенсингом GPU
Меньшее количество draw calls означает лучшую производительность, и, постепенно реализуя поддержку интенсинга GPU, мы позволяем вам обрабатывать огромное количество одинаковых геометрий, которые распределяют одни и те же материалы с очень небольшим количеством draw calls. Сейчас поддержка интенсинга GPU доступна для разработки под Windows PC с DX11 и Shader Model 4.0 и OS X с OpenGL 4.1 и выше. Мы работаем над новыми платформами, поэтому следите за новостями.
Расширить
Сцена содержит 3 типа mesh камней. Каждый камень окрашен в разные цвета серой шкалы с использованием свойств материала блока. Первая сцена использует измененную версию стандартного шейдера; вторая сцена использует встроенный стандартный шейдер. Эти данные собраны в Unity 5.4 beta 8 на Windows / D3D11, Intel Core i7-4980HQ@2.8GHz CPU, nVidia GeForce GT 750M GPU.
Исправленные базовые графические функции: массивы текстур, compute shaders и другое
Если вы создаете свои собственные шейдеры, 2D Texture Arrays могут помочь вам, когда вы оптимизируете большие сцены и в целом используете системы рендеринга. Они работают, позволяя GPU обрабатывать текстуры 2D, которые имеют те же размеры и форматы, что и одиночный объект.
Мы также улучшили ряд низкоуровневых графических функций. Сompute shaders теперь могут быть соединены вместе через DispatchIndirect, были улучшены вычислительные буфферные счетчики, информация отладки может использоваться для отладки compute shader. Быстрые текстурные копии могут быть сделаны с новой функцией CopyTexture; была добавлена правильная поддержка для равномерных массивов, таких как параметры шейдеров. На платформах Metal, OpenGL и D3D9 мы внедрили Alpha-to-coverage; на iOS мы теперь поддерживаем многопоточный рендеринг при использовании графики Metal. Наконец, эффекты изображений могут быть добавлены в просмотр сцены камеры с помощью нового свойства ImageEffectAllowedInSceneView.
Мы уверены, что все эти небольшие улучшения будут очень полезны для улучшения вашего пайплайна рендеринга.