soft particles что это
Мягкие частицы (Soft Particles).
Одной из хорошо распиаренных возможностей DX10 являются так называемые мягкие частицы (soft particles). Однако на самом деле для реализации этого эффекта вполне достаточно поддержки SM3 и и они великолепно делаются на OpenGL (не требуя при этом мелкомягкой и убогой ви$ты).
Рассмотрим что же именно подразумевается под «мягкими» частицами и в чем заключается их отличие от традиционных частиц.
Рис 1. Артефакты, возникающие при использовании традиционных частиц.
Это связано с тем, что частицы представлена одним полигоном, в то время как частицы обычно соответствуют не плоским фигурам, а объемными.
Рис 2. Сцена с рис. 1, но с использованием мягких частиц.
Рис 3. Отличие мягкой частицы от обычной.
В идеальном случае при выводе такой частицы нам необходимо определить длину части луча (соответствующего текущему фрагменту), целиком лежащей внутри видимой части объема частицы.
При этом возможны два случая.
1. Луч «протыкает» объемную частицу насквозь и просто берем прозрачность из текстуры (рис 4.a).
2. Внутри шара находятся непрозрачные объекты, выведенные ранее. Тогда нам нужен отрезок от точки входа в частицу до ближайшего пересечения луча с объектами сцен, лежащими внутри объемной частицы. В этом случае отношение длины этого отрезка к заданной толщине частицы задает увеличение прозрачности частицы (рис 4.b).
Таким образом, в тем местах, где billboad уходит за объекты сцены происходит плавное «пропадание» частицы (вместо резкого скачка).
Для того, чтобы можно было понять протыкает ли луч насквозь такую объемную частицу или нет, нам достаточно прочесть значение из z-буфера, соответствующее данному фрагменту, и сравнить его с текущей глубиной частицы с учетом заранее заданной толщины частицы.
Поскольку полупрозрачные объекты, в том числе и частицы, всегда выводят после вывода непрозрачных, то можно после вывода всех непрозрачных объектов скопировать буфер глубины в текстуру и при выводе мягких частиц читать из нее значения глубины.
Это удобно еще и потому, что во многих случаях для повышения быстродействия сначала осуществляется рендеринг всей сцены только в буфер глубины (подобный прием был использован Дж. Кармаком еще в Doom III).
Ниже приводится соответствующий фрагментный шейдер и скриншот, полученный при его использовании.
Ниже приводится полный исходный код на С++, использованный для рендеринга сцены с рис. 2 и 5.
По этой ссылке можно скачать весь исходный код к этой статье. Также доступны для скачивания откомпилированные версии для M$ Windows и Linux.
Copyright © Alexey V. Boreskov 2003-2008
Частицы в Unity3d
Итак, урок посвящен частицам в Unity3d. Предназначен скорее для новичков, но каждый, думаю, найдет что-то для себя интересное. Движок сегодня очень популярен и не осваивает его только ленивый. К тому же проект, над которым я сейчас работаю мы делаем тоже на Юнити.
ОГОНЬ
Теперь в свитке Inspector в сабсвитке Particle System появились настройки нашей системы частиц. В принципе можно настраивать и отсюда их. Но удобнее будет нажать кнопку «Open Editor…». Откроется окно со всеми эмитерами и их настройками. Очень удобно, если настраивается сложный эффект. Визуально все понятно и не возникает путаницы. Справа вверху у Вас будет несколько вспомогательных кнопок Show Selected, Resimulate, Wireframe. Show Selected чуть затемняет все не выбранные эмитеры и подсвечивает тот, который Вы выбрали в данный момент.
рис. 002 Выбирать эмитеры(после того, как Вы их создали, конечно) можно в свитке Hierarchy.
Первое, что мы должны сделать, чтобы увидеть не дефолтные белые шарики, а нужную текстуру – это сделать материал и текстуру огня. Сразу оговорюсь, что делать текстуры то еще развлечение. Достаточно долгая и кропотливая работа. Но как я уже говорил – это стоит того в итоге. Я использую свои давние наработки, которые я делал для игры Deep Black. Для текстур огня и дыма я использовал FumeFX плагин для 3dsmax. Моделировал различные взрывы, интенсивность, направления и т.д. Потом рендерил в серии кадров. Так я получал различной интенсивности и размера огненные всполохи. С дымом чуть проще. Как? Расскажу позже.
Итак, чтобы создать новый материал достаточно кликнуть правой кнопкой по любому месту в папке Materials (для моего проекта)
Возвращаемся в наш редактор частиц, выбираем эмитер FireMetalBarrel и сразу же переходим в самый нижний сабсвиток Renderer. Ставим галочку (это значит, что он не будет игнорироваться и будет активен ) и разворачиваем его кликом по нему. Render Mode оставляем Billboard. Это значит, что при любом угле обзора текстуры частиц всегда будут направлены в камеру. Снимаем галочки Cast и Receive Shadows так как шейдер материалов, типа Particles не принимает тени и не отбрасывает их. Перетаскиваем наш заготовленный материал в строчку Material и видим что-то отдаленно похожее на огонь. Материал можно так же назначить выбрав его из всех доступных, нажав маленький кружок обведенный зеленым цветом.
Опишу действие параметров:
Duration – общая продолжительность эффекта. Как показала практика особо не влияет при зацикленных эффектах.
Looping – зацикленность
Prewarm – как бы прогрев эффекта, чтобы он начался уже с основной интенсивностью
Start Delay – задержка в старте проигрывания в секундах
Start Lifetime – Время жизни в секундах
Start Speed – скорость, с которой стартуют частицы
Start Rotation – стартовая повернутость частицы на определенный градус. В нашем случае от 0 до 360.
Start Color – стартовый цвет. Можно регулировать по альфе или по цвету.
Gravity Multiplier – множитель гравитации. 9,82 м/c– гравитация для планеты Земля.
Inherit Velocity – наследуемая скорость для следующих частиц.
Simulation Space – система координат. В нашем случае – world. При Local позволяет частицам перемещаться вместе с эмитером, как например, двигатель космолета. При world – частицы ведут себя, как факел, который несут, т.е. отстают от эмитера.
Play on Awake – частицы стартуют автоматически.
Max Particles – максимальное кол-во частиц одновременно проигрываемых из этого эмитера.
Emission
Rate – количество частиц генерируемое в секунду.
Bursts – Параметр, который позволяет выбрасывать сразу нужное кол-во частиц в указанные промежутки времени, а не одна за другой последовательно. Выключен, в нашем случае.
Shape
Shape – форма эмитера. Конус, сфера, полусфера, бокс, меш.
Angle – угол разброса. В нашем случае 15 градусов.
Radius – радиус эмитера.
Emit from – откуда генерируются частицы. Из одной точки, из всего тела эмитера и т.д.
Random Direction – Задает случайное направление движения частиц. Помогает создать некую мелкую хаотичность в нашем случае с генерацией языков пламени.
Velocity over Lifetime
Параметр позволяет рандомайзить скорость движения частиц в течение их жизни. В нашем случае система координат world и направление вверх, т.е. по Y. Случайная скорость от 0.5 до 1. Получается, что языки пламени движутся с разной скоростью.
Force over Lifetime
Система координат тоже world. Помогает задать влияние небольших сил, которые смещают частицы в стороны по Х и по Y на небольшие расстояния. Y в данном случае почему то работает, не вверх, как в предыдущем.
Color over lifetime
Очень важный параметр, который помогает сделать плавным визуальное появление частицы по альфе и плавным ее пропаданием.
рис. 007 Тут можно регулировать цвета и альфаканал.
Rotation over Lifetime
Если Вы все сделали правильно, то у Вас должно получиться довольно неплохое пламя. Но, сам эффект еще не готов и на половину и поэтому не стоит расстраиваться, если огонь далек от идеала. Сейчас я расскажу о том, как сделать дым. По сути с ним все просто – это тот же самый огонь лишь клонированный и немного перенастроенный
После небольшой обработки по размерам и десатурейту (превратил в ч/б) и добавления альфа канала путем копирования самого изображения и вставки в канал альфа – имеем нечто похожее на текстуру дыма.
Кстати я рекомендую стараться делать все текстуры кратные степени двойки по сторонам, типа 128х128, 1024х512, 64х16 и т.д. Это сэкономит Вам уйму времени, если надумаете использовать их потом еще в других проектах.
Создаём новый материал Smoke и настраиваем его по образу и подобию материала огня с той разницей, что используем немного другой шейдер и другую текстуру.
Вводим параметры, как показано на рисунке 008.
ИСКРЫ.
Искры, по сути, тот же клонированный огонь с измененными параметрами и другим материалом. Назовем этот эмитер Spark. Настройки для него показаны на рис. 012.
Текстуру можете сделать в Фотошопе – это маленькая точка или точка с небольшим свечением вокруг. Размер текстуры, как я уже говорил в начале 16х16 или около того. Шейдер – Particles/Additive.
ГОРЯЧИЙ ВОЗДУХ.
Здесь опять тот же хорошо настроенный, клонированный и чуть модифицированный эмитер огня, но все дело делает шейдер, который по дефолту не идет с Юнити. У нас он был написан нашими программистами для проекта. Думаю не составит труда найти подобный шейдер в инете.
Ну и финальный результат смотрите на видео:
Настройки Качества
Unity позволяет вам установить уровень качества графики, на котором будет производится попытка рендеринга. В общем случае, высокое качество снижает частоту кадров, таким образом, иногда лучше не устанавливать наивысший уровень качества на мобильных устройствах или старом оборудовании, так как это будет отрицательно влиять на игровой процесс. Инспектор Quality Settings (в меню: Edit->Project Settings->Quality ) используется для установки уровня качества для выбранных устройств в редакторе. Он разделен на две основные области: в верхней расположена следующая матрица:
Для быстрой ориентации в настройках качества, Unity позволяет вам назначать своим комбинациям настроек уникальные имена. Строки матрицы позволяют вам настроить какой уровень качества будет применён для той или иной платформы. Самая нижняя строчка матрицы не является уровнем качества как таковым, но она позволяет задать стандартный уровень качества для всех платформ (зелёный чекбокс в колонке отвечает за уровень выбранного качества для выбранной платформы). По-умолчанию вместе с Unity идёт 6 предустановленных наборов уровня качества, но вы также можете настраивать и сохранять свои наборы, используя кнопку, расположенную под матрицей. Чтобы удалить ненужный набор, можно воспользоваться значком корзины (расположенном в самой правой колонке).
Для редактирования уровня детализации, можете нажать на его названии под панелью настроек матрицы:
Параметры качества, которые вы можете установить для определенного уровня качества, следующие:
Максимальный уровень LOD
Модели, которые будут иметь уровень детализации ниже максимального уровня (MaximumLOD) не будут использоваться, а также будут опущены при сборке (что позволит сохранить место в памяти). Unity будет использовать для настроек целевой платформы усреднённое значение LOD объектов, взятое из всех максимальных LOD, которые присутствуют в сцене. Если LOD был включён в группу, тогда независимо от используемой настройки качества, модели из этой группы будут включены в сборку и будут всегда загружаться при исполнении для этой LOD группы. В качестве примера, если в любой настройке будет использоваться уровень LOD 0, тогда в сборку будут включены все уровни LOD и использующие их объекты.
Разрыв кадра
Изображение на дисплее устройства обновляется не постоянно, а через некоторый постоянный интервал времени, подобно тому как происходит обновление кадра в Unity. Тем не менее, обновления Unity не обязательно синхронизированы с таковыми дисплея, таким образом, может возникнуть ситуация, когда Unity отправил на дисплей новый кадр, пока предыдущий все еще рендерится. Это приводит к визуальному артефакту, называемому “разрывом кадра” в том месте экрана, где произошла смена кадра.
Симуляция примера разрыва кадра. Смещение картинки отчетливо заметно на увеличенном фрагменте.
Unity можно настроить на переключение кадров лишь в том промежутке времени, когда устройство вывода изображения (монитор) не обновляется, в момент так называемой “вертикальной пустоты” (“vertical blank”). Опция VSync настроек качества (Quality Settings) синхронизирует переключение кадров с вертикальной пустотой устройства или опционально с любой другой вертикальной пустотой. Последнее будет полезно, если игре для рендеринга одного кадра может потребоваться более одного устройства.
Сглаживание
Сглаживание (анти алиасинг) улучшает отображение граней полигонов, путём сглаживания их “зазубренности”. Однако это выливается в нагрузке на видеокарту и использование большего количества её памяти (нагрузка на центральный процессор отсутствует). Уровень сглаживания подразумевает то, насколько сглажены грани полигонов (и сколько это требует памяти).
Без сглаживания, ребра полигона выглядят “зубчатыми”.
с 6-ти кратным сглаживанием, рёбра полигона будут сглажены.
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). Более того, вам нужно использовать проход рендеринга под названиемотложенное освещение, или произвести из скрипта камерный рендеринг текстур глубины.
Как настроить Quality – качество графики в Unity?
Для каждой продвинутой игры очень важна настройка качества графики. В этой статье мы покажем пример настройки качества графики и покажем, как будет изменятся сцена при изменении настроек игры.
Как Вы знаете, качество графики в игре влияет на FPS и на на качество картинки! FPS – с англ. frames per second, – частота кадров в секунду, то есть величина, и показывающая количество кадров, сменяющихся за 1 секунду. Чем больше кадров в секунду будет в Вашей игре, тем плавнее и четче будет итоговая картинка, но тем больше ресурсов потребуется для такой прорисовки. И чтобы учесть возможности разных игроков с разной мощностью устройств, в игре с ледует делать несколько уровней настроек графики. Тогда каждый пользователь вашего приложения сможет выбрать для себя оптимальный уровень графики, то есть такой, при котором Ваша игра у него не будет лагать и подвисать.
Например, игра Witcher 3 имеет довольно высокие требования к ПК и если игрок со слабым компьютером попытается поиграть на высоком уровне графики, то у него могут возникнуть проблемы с картинкой. Ниже приведён пример отображения сцены с низким и высоким количеством FPS.
Как Вы смогли убедится – ч ем больше FPS тем плавнее будет картинка и меньше “фризов”. Стоит отметить, что н астройки графики актуальнее настраивать именно для 3D игр. В них часто используются высокополигональные модели, требующие четкой прорисовки. А в 2D играх, в большинстве случаев, используются спрайты, которые мало нагружают устройство и эти параметры там будут не столь критичны. Но в конечном итоге всё зависит от вашей игры, чем она требовательнее, тем нужнее настройка качества графики в ней!
Для создания нового уровня графики жмём Add Quality Level и вводим ему имя в поле Name.
Для выбора дефолтного уровня графики (уровня по умочанию), жмём на значок вниз и выбираем имя нужного уровня графики.
Ниже будут описаны настройки уровня графики.
Rendering
Pixel Light Count | Количество пиксельных источников. |
Texture Quality | Низкое или высокое качество отображения текстур |
AntiAliasing | Уровень сглаживания |
Soft Particles | Использование частицами мягкого смешивания |
Shadows
Shadow resolution | Разрешение теней, влияющее на их качество |
Shadow Projection | Проецирования теней. Close Fit тень рендерится в высоком разрешении. Stable Fit тень рендерится в низком разрешении. |
Shadow Cascades | Многопоточность теней. Чем больше потоков теней, тем больше качество самих теней |
Shadow Distance | Расстояние, больше которого тени не будут обрабатываться |
Other
Blend Weights | Количество костей, которые влияют на отдельно взятую вершину анимации |
VSync Count | Синхронизация с частотой обновления монитора, которое может избавить пользователя от артефактов и разрывов изображения |
LOD Bias | Детализация моделей. Чем больше число, тем модели становятся более детализированные |
Maximum LOD Level | Наибольший уровень LOD, который может быть в игре |
Particle Raycast Budget | Использование метода столкновения частиц |
Различие настроек графики
Как видно в приведенном примере, с увеличением уровня графики растёт качество текстур, теней, освещения, моделей и уровня сглаживания. Если на самом маленьком уровне настройки графики качество теней и дальность их прорисовки низкая, текстуры мыльные и модели не имеют сглаживания, то на высоком уровне графики тень отрисовывается максимально далеко и чётко. Модели имеют сглаживание и свет, выглядит реалистичнее.
Но нельзя забывать, что чем более высокий уровень графики настроен, тем больше игроку требуется ресурсов компьютера для стабильного FPS. Так что не лишним будет дать возможность игроку выбирать тот уровень, который ему подходит.
Выбор качества графики во время игры
После настройки уровней качества графики, надо дать возможность пользователю нашей игры выбрать качество графики самостоятельно. Для этого будем использовать Dropdown, который может вмещать в себя все наши уровни графики и нам не придётся делать много кнопок для выбора определенного уровня графики.
Создаём dropdown, нажимаем на + и вводим названия уровня графики.
Далее создадим скрипт, который будет менять уровень графики в зависимости от нашего выбора. Для получения значения dropdown будем использовать UnityEngine.UI. Создаем переменную с типом Dropdown. Далее прикрепляем скрипт к объекту в редакторе и привязываем к скрипту Dropdown.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//Обязательно импортируем для работы с UI
public class qualty : MonoBehaviour
<
public Dropdown dropdown;
>
Для того, чтобы наш скрипт смог определить изменения dropdown, в dropdown жмём на + в поле On value changed и добавляем туда объект с нашим скриптом, где создадим функцию, которая меняет уровень графики с помощью функции QualitySettings. SetQualityLevel, где первый аргумент – это номер уровня графики, а второй аргумент это его активация, если true – активация уровня графики, а false – деактивация этого уровня графики.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//Обязательно импортируем для работы с UI
public class qualty : MonoBehaviour
<
public Dropdown dropdown;
public void checkdropdown()
<
QualitySettings.SetQualityLevel(dropdown.value, true);//Изменяем уровен графики
>
>
Теперь игрок может выбрать уровень графики. Вот как это выглядит:
В этой статье мы кратко пробежались по основным опциям в настройках уровней качества графики 3D игры и увидели, как меняется картинка при разных настройках FPS игры, а также рассмотрели простой способ, как настроить возможность выбора уровня качества графики для игрока.
Quality
Unity allows you to set the level of graphical quality it attempts to render. Generally speaking, quality comes at the expense of framerate and so it may be best not to aim for the highest quality on mobile devices or older hardware since it tends to have a detrimental effect on gameplay. Use the Quality settings (menu: Edit > Project Settings, then select the Quality category) to select the quality level in the Editor for the chosen device. It is split into two main areas: the Quality matrix appears at the top; and below it, the settings for the selected quality level appear.
Unity lets you assign a name to a given combination of quality options for easy reference. The rows of the matrix let you choose which of the different platforms each quality level applies to. The Default row at the bottom of the matrix is not a quality level in itself but rather sets the default quality level used for each platform (a green checkbox in a column denotes the level currently chosen for that platform). Unity comes with six quality levels pre-enabled but you can add your own levels.
Quality settings levels for each platform
To delete an unwanted quality level, use the trashcan icon (the rightmost column).
To select a quality level for editing, click on its name in the matrix. Its definitions appear in the panel below the settings and you can modify any settings you need to:
Edit the settings for a specific Quality level
To define a new Quality level, click the Add Quality Level button and type the name for the new level in the Name property box.
Then you can choose which of the quality options documented in the following sections you need to update or set:
Rendering
If you disable this property, Unity only calculates Texture Streaming for GameObjects with Streaming Controller components. Use this for finer-grained control of Texture Streaming. See documentation on Texture Streaming API: Control Cameras for Texture Streaming for more details.
Streaming textures pick the smallest mipmap level possible to try to hit the memory budget. Unity always loads non-streaming textures at full resolution, even if that exceeds the budget.
The Memory Budget includes non-streaming Textures. For example, if your budget is 100MB and you have 90MB of non-streaming Textures, The Texture Streaming system tries to fit all the streaming Textures in the remaining 10MB. If it can’t, it loads the mipmaps at a lower resolution.
Unity prioritises the Max Level Reduction over the Memory Budget. The Texture Streaming system never discards more mipmaps than the Max Level Reduction, even if the lack of reduction causes the memory to exceed the Texture Streaming Memory Budget.
The Texture Streaming system never discards more mipmaps than this value, even if the lack of reduction causes the memory to exceed the Texture Streaming Memory Budget.
This value is also the mipmap level that the Texture Streaming system initially loads at startup. For example, when this is set to 2, Unity skips the two highest mipmaps on first load.
If the Scene Texture content changes significantly and rapidly, the system might attempt to load more Texture mipmaps than the file IO can keep up with. Lowering this value reduces the IO bandwidth that the Texture Streaming system generates. The result is a more rapid response to changing mipmap requirements.
Anti-aliasing
Anti aliasing improves the appearance of polygon edges, so they are not “jagged”, but smoothed out on the screen. However, it incurs a performance cost for the graphics card and uses more video memory (there’s no cost on the CPU though). The level of anti-aliasing determines how smooth polygon edges are (and how much video memory it consumes).
Without anti-aliasing, polygon edges are “jagged”.
With 4x anti-aliasing, polygon edges are smoothed out.
Hardware anti-aliasing does not work with Deferred Shading A rendering path in the Built-in Render Pipeline that places no limit on the number of Lights that can affect a GameObject. All Lights are evaluated per-pixel, which means that they all interact correctly with normal maps and so on. Additionally, all Lights can have cookies and shadows. More info
See in Glossary or HDR high dynamic range
See in Glossary rendering. For more information on anti-aliasing compatibility, see Post processing.
Soft Particles
Soft particles fade out near intersections with other Scene geometry. This looks much nicer, but is more resource intensive to process and only works on platforms that support depth textures. Furthermore, you have to use either the Deferred Shading or Legacy Deferred Lighting rendering path, or make the camera render depth textures from scripts.
Shadows
Property: | Function: | |
---|---|---|
Shadowmask Mode | Choose the shadowmask behavior when using the Shadowmask Mixed lighting mode. Use the Lighting window (menu: Window > Rendering The process of drawing graphics to the screen (or to a render texture). By default, the main camera in Unity renders its view to the screen. More info See in Glossary > Lighting) to set this up in your Scene. | |
Distance Shadowmask A version of the Shadowmask lighting mode that includes high quality shadows cast from static GameObjects onto dynamic GameObjects. More info See in Glossary | Unity uses real-time shadows up to the Shadow Distance, and baked shadows beyond it. | |
Shadowmask A Texture that shares the same UV layout and resolution with its corresponding lightmap. More info See in Glossary | Static GameObjects The fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info See in Glossary that cast shadows always cast baked shadows. | |
Shadows A UI component that adds a simple outline effect to graphic components such as Text or Image. It must be on the same GameObject as the graphic component. More info See in Glossary | Choose which type of shadows to use. The available options are Hard and Soft Shadows, Hard Shadows Only and Disable Shadows. | |
Shadow Resolution | Choose which resolution to render shadows at. The available options are Low Resolution, Medium Resolution, High Resolution and Very High Resolution. The higher the resolution, the greater the processing overhead. | |
Shadow Projection | Choose which method to use for projecting shadows from a directional light. | |
Close Fit | Renders higher resolution shadows but they can sometimes wobble slightly if the camera moves. | |
Stable Fit | Renders lower resolution shadows but they don’t wobble with camera movements. | |
Shadow Distance | Enter the maximum distance from the Camera at which shadows are visible. Unity does not render shadows that fall beyond this distance. | |
Shadow Near Plane Offset | Enter the offset shadow near plane to account for large triangles being distorted by shadow pancaking. | |
Shadow Cascades | Choose the number of shadow cascades to use. The available options are No Cascades, Two Cascades, or Four Cascades. A higher number of cascades gives better quality but at the expense of processing overhead (see Shadow Cascades for further details). | |
Cascade splits | Adjust the cascade shadow split(s) by moving the vertical line between each cascade left or right. Depending on what value you chose for the Shadow Cascades setting, you can see two or four different colors. If Shadow Cascades is set to No Cascades, then this entire control is hidden. |
Other
Property | Function |
---|---|
Blend Weights | Choose the number of bones that can affect a given vertex during an animation. The available options are 1 Bone, 2 Bones, 4 Bones, and Unlimited. |
V Sync Count | Choose to synchronize rendering with vertical blanks or not to synchronize at all. Unity can synchronize rendering with the refresh rate of the display device to avoid tearing artifacts. The available options are Every V Blank, Every Second V Blank, or Don’t Sync. |
Lod Bias | Set the level-of-detail (LOD) bias. LOD levels are chosen based on the onscreen size of an object. When the size is between two LOD levels, the choice can be biased toward the less detailed or more detailed of the two Models available. This is set as a fraction from 0 to +infinity. When it is set between 0 and 1 it favors less detail. A setting of more than 1 favors greater detail. For example, setting LOD Bias to 2 and having it change at 50% distance, LOD actually only changes on 25%. |
Maximum LOD The Level Of Detail (LOD) technique is an optimization that reduces the number of triangles that Unity has to render for a GameObject when its distance from the Camera increases. More info See in Glossary Level | Set the highest LOD that the game uses. See Maximum LOD level for more information. |
Particle Raycast Budget | Set the maximum number of raycasts to use for approximate particle system A component that simulates fluid entities such as liquids, clouds and flames by generating and animating large numbers of small 2D images in the scene. More info See in Glossary collisions A collision occurs when the physics engine detects that the colliders of two GameObjects make contact or overlap, when at least one has a Rigidbody component and is in motion. More info See in Glossary (those with Medium or Low quality). See Particle System Collision Module. |
Async Upload Time Slice | Set the amount of CPU time in milliseconds per frame Unity spends uploading buffered Texture and Mesh The main graphics primitive of Unity. Meshes make up a large part of your 3D worlds. Unity supports triangulated or Quadrangulated polygon meshes. Nurbs, Nurms, Subdiv surfaces must be converted to polygons. More info See in Glossary data to the GPU. See LoadingTextureandMeshData. |
Async Upload Buffer Size | Set the size in megabytes of the Async Upload Buffer Unity uses to stream Texture and Mesh data for the to the GPU. See LoadingTextureandMeshData. |
Maximum LOD level
Unity does not use Models which have a LOD below the MaximumLOD level and omits them from the build (which saves storage and memory space). Unity uses the smallest LOD value from all the MaximumLOD values linked with the Quality settings for the target platform. If an LOD level is included, then Models from that LODGroup are included in the build and always loaded at runtime for that LODGroup, regardless of the Quality setting being used. As an example, if LOD level 0 is used in any Quality setting then all the LOD levels are included in the build and all the referenced Models load at runtime.
Tearing
The picture on the display device is not continuously updated, but rather the updates happen at regular intervals much like frame updates in Unity. However, Unity’s updates are not necessarily synchronized with those of the display, so it is possible for Unity to issue a new frame while the display is still rendering the previous one. This results in a visual artifact called “tearing” at the position onscreen where the frame change occurs.
Simulated example of tearing. The shift in the picture is clearly visible in the magnified portion.
It is possible to get Unity to switch frames only during the period where the display device is not updating, the so-called “vertical blank”. The V Sync Count option in Quality settings synchronizes frame switches with the device’s vertical blank or optionally with every other vertical blank. The latter may be useful if the game requires more than one device update to complete the rendering of a frame.
2017–09–18 Page amended
Shadowmask Mode added in 2017.1 NewIn20171