Post stable: Dreambooth. Stable Diffusion |

Содержание

объяснение в картинках / Хабр

Генерация изображений при помощи ИИ — одна из самых новых возможностей искусственного интеллекта, поражающая людей (в том числе и меня). Способность создания потрясающих изображений на основании текстовых описаний похожа на магию; компьютер стал ближе к тому, как творит искусство человек. Выпуск Stable Diffusion стал важной вехой в этом развитии, поскольку высокопроизводительная модель оказалась доступной широкой публике (производительная с точки зрения качества изображения, скорости и относительно низких требований к ресурсам и памяти).

Поэкспериментировав в генерацией изображений, вы можете задаться вопросом, как же она работает.

В этой статье я вкратце расскажу, как функционирует Stable Diffusion.

Stable Diffusion гибка, то есть может использоваться множеством разных способов. Давайте сначала рассмотрим генерацию изображений на основе одного текста (text2img).

На картинке выше показан пример текстового ввода и получившееся сгенерированное изображение. Кроме превращения текста в изображение, другим основным способом применения модели является изменение изображений (то есть входными данными становятся текст + изображение).

Давайте начнём разбираться со внутренностями модели, потому что это поможет нам объяснить её компоненты, их взаимодействие и значение опций/параметров генерации изображений.

Компоненты Stable Diffusion

Stable Diffusion — это система, состоящая из множества компонентов и моделей. Это не единая монолитная модель.

Изучая внутренности, мы первым делом заметим, что в модели есть компонент понимания текста, преобразующий текстовую информацию в цифровой вид, который передаёт заложенный в текст смысл.

Мы начнём с общего обзора, а позже углубимся в подробности машинного обучения. Однако для начала можно сказать, что этот кодировщик текста — это специальная языковая модель Transformer (технически её можно описать как текстовый кодировщик модели CLIP).

Она получает на входе текст и выдаёт на выходе список чисел (вектор), описывающий каждое слово/токен в тексте.

Далее эта информация передаётся генератору изображений, который состоит из двух компонентов.

Генератор изображений выполняет два этапа:

1- Создание информации изображения.

Этот компонент является секретным ингредиентом Stable Diffusion. Именно благодаря нему возник такой рост качества по сравнению с предыдущими моделями.

Этот компонент выполняется в несколько шагов (step), генерируя информацию изображения. Это параметр steps в интерфейсах и библиотеках Stable Diffusion, который часто по умолчанию имеет значение 50 или 100.

Этап создания информации изображения действует полностью в

пространстве информации изображения (или в скрытом пространстве). Подробнее о том, что это значит, мы расскажем ниже. Это свойство ускоряет работу по сравнению с предыдущими моделями диффузии, работавшими в пространстве пикселей. Этот компонент состоит из нейросети UNet и алгоритма планирования.

Слово «диффузия» (diffusion) описывает происходящее в этом компоненте. Это пошаговая обработка информации, приводящая в конечном итоге к генерации высококачественного изображения (при помощи следующего компонента — декодера изображений).

2- Декодер изображений.

Декодер изображений рисует картину на основе информации, которую он получил на этапе создания информации. Он выполняется только один раз в конце процесса и создаёт готовое пиксельное изображение.

На изображении выше мы видим три основных компонента (каждый со своей собственной нейросетью), из которых состоит Stable Diffusion:

  • ClipText для кодирования текста.

    Входные данные: текст.

    Выходные данные: 77 векторов эмбеддингов токенов, каждый в 768 измерениях.

  • UNet + Scheduler для постепенной обработки/диффузии информации в пространстве информации (скрытом пространстве).

    Входные данные: эмбеддинги текста и исходный многомерный массив (структурированные списки чисел, также называемые тензором), состоящий из шума.

    Выходные данные: массив обработанной информации

  • Декодер автокодировщика, рисующий готовое изображение при помощи массива обработанной информации.

    Входные данные: массив обработанной информации (размеры: (4,64,64))

    Выходные данные: готовое изображение (размеры: (3, 512, 512) — (красный/зелёный/синий, ширина, высота))



Что такое диффузия?

Диффузия — это процесс, выполняемый внутри розового компонента «image information creator» (этапа создания информации изображения). Имея эмбеддинги токенов, описывающие введённый текст, и случайный начальный массив информации изображения (также они называются latent), процесс создаёт массив информации, который декодер изображения использует для рисования готового изображения.

Это процесс выполняется поэтапно. Каждый шаг добавляет больше релевантной информации. Чтобы представить процесс в целом, мы можем изучить массив случайных latent, и увидеть, что он преобразуется в визуальный шум. В данном случае визуальное изучение — это прохождение данных через декодер изображений.

Диффузия выполняется в несколько шагов, каждый из которых работает с входным массивом latent и создаёт ещё один массив latent, ещё больше напоминающий введённый текст, а вся визуальная информация модели собирается из всех изображений, на которых была обучена модель.

Мы можем визуализировать набор таких latent, чтобы увидеть, какая информация добавляется на каждом из шагов.

Наблюдать за этим процессом довольно увлекательно.

В данном случае нечто особо восхитительное происходит между шагами 2 и 4. Как будто контур возникает из шума.


Как работает диффузия

Основная идея генерации изображений при помощи диффузионной модели использует тот факт, что у нас есть мощные модели компьютерного зрения. Если им передать достаточно большой массив данных, эти модели могут обучаться сложным операциям. Диффузионные модели подходят к задаче генерации изображений, формулируя задачу следующим образом:

Допустим, у нас есть изображение, сделаем первый шаг, добавив в него немного шума.

Назовём «срез» (slice) добавленного нами шума «noise slice 1». Сделаем ещё один шаг, добавив к шумному изображению ещё шума («noise slice 2»).

На этом этапе изображение полностью состоит из шума. Теперь давайте возьмём их в качестве примеров для обучения нейронной сети компьютерного зрения. Имея номер шага и изображение, мы хотим, чтобы она спрогнозировала, сколько шума было добавлено на предыдущем шаге.

Хотя этот пример показывает два шага от изображения к полному шуму, мы можем управлять тем, сколько шума добавляется к изображению, поэтому можно распределить его на десятки шагов, создав десятки примеров для обучения на каждое изображение для всех изображений в обучающем массиве данных.

Красота здесь в том, что после того, как эта сеть прогнозирования шума начнёт работать правильно, она, по сути, сможет рисовать картины, удаляя шум на протяжении множества шагов.

Примечание: это небольшое упрощение алгоритма диффузии. На ресурсах по ссылкам в конце статьи представлено более подробное математическое описание.

Рисование изображений устранением шума

Обученный предсказатель шума может взять шумное изображение и количество шагов устранения шума, и на основании этого способен спрогнозировать срез шума.

Срез шума прогнозируется таким образом, что если мы вычтем его из изображения, то получим изображение, которое ближе к изображениям, на которых обучалась модель.

Если обучающий массив данных состоял из эстетически приятных изображений (например, LAION Aesthetics, на котором обучалась Stable Diffusion), то получившееся изображение будет иметь склонность к эстетической приятности.

В этом по большей мере и заключается описание генерации изображений диффузионными моделями, представленное в статье Denoising Diffusion Probabilistic Models. Теперь, когда мы понимаем, что такое диффузия, нам понятно, как работают основные компоненты не только Stable Diffusion, но и Dall-E 2 с Google Imagen.

Обратите внимание, что описанный выше процесс диффузии генерирует изображения без использования текстовых данных. В последующих разделах мы расскажем, как в процесс внедряется текст.

Увеличение скорости: диффузия сжатых (скрытых) данных, а не пиксельного изображения

Для ускорения процесса генерации изображений Stable Diffusion (по информации из исследовательской статьи) выполняет процесс диффузии не с самими пиксельными изображениями, а со сжатой версией изображения. В статье это называется «переходом в скрытое пространство».

Это сжатие (и последующая распаковка/рисование) выполняется при помощи автокодировщика. Автокодировщик сжимает изображение в скрытое пространство при помощи своего кодировщика, а затем воссоздаёт его при помощи декодера на основе только сжатой информации.

Далее со сжатыми latent выполняется прямой процесс диффузии. Используются срезы шума, применяемые к этим latent, а не к пиксельному изображению. То есть предсказатель шума на самом деле обучается прогнозировать шум в сжатом описании (в скрытом пространстве).

При помощи прямого процесса (с использованием кодировщика автокодировщика) мы генерируем данные для обучения предсказателя шума. После его обучения мы можем генерировать изображения, выполняя обратный процесс (при помощи декодера автокодировщика).

Эти два потока показаны на рисунке 3 статьи про LDM/Stable Diffusion:

Также на этом рисунке показаны компоненты «согласования», которые в данном случае являются текстовыми строками, описывающими изображение, которое должна генерировать модель. Поэтому давайте рассмотрим эти текстовые компоненты.

Текстовый кодировщик: языковая модель Transformer

Языковая модель Transformer используется в качестве компонента понимания языка, она получает текстовую строку и создаёт эмбеддинги токенов. В опубликованной модели Stable Diffusion используется ClipText (модель на основе GPT), а в статье применяется BERT.

В статье, посвящённой Imagen, показано, что выбор языковой модели важен. Замена на более объёмные языковые модели сильнее влияет на качество генерируемого изображения, чем более объёмные компоненты генерации изображений.

Улучшение/увеличение языковых моделей существенно влияет на качество моделей генерации изображений. Источник: Статья про Google Imagen, написанная Saharia и соавторами. Рисунок A.5.

В первых моделях Stable Diffusion просто подключалась предварительно обученная модель ClipText, выпущенная OpenAI. Возможно, будущие модели перейдут на новые и гораздо более объёмные OpenCLIP-варианты CLIP. В эту новую группу входных векторов включены текстовые модели размерами до 354 миллионов параметров, в отличие от 63 миллионов параметров в ClipText.

Как обучается CLIP

CLIP обучается на массиве изображений и подписей к ним. Массив данных выглядит примерно так, только состоит из 400 миллионов изображений и подписей:

CLIP — это сочетание кодировщика изображений и кодировщика текста. Обучающий процесс модели можно упрощённо представить как кодирование изображения и его подписи кодировщиками изображений и текста.

Затем мы сравниваем получившиеся эмбеддинги при помощи косинусного коэффициента. В начале процесса обучения схожесть будет низкой, даже если тест описывает изображение правильно.

Мы обновляем две модели так, чтобы в следующий раз при создании эмбеддингов получившиеся эмбеддинги были схожими.

Повторяя этот процесс со всем массивом данных и группами входных векторов большого размера, мы получаем кодировщики, способные создавать эмбеддинги, в которых изображение собаки и предложение «a picture of a dog» схожи. Как и в word2vec, процесс обучения также должен включать в себя отрицательные примеры изображений и подписей, которые не совпадают, а модель должна присваивать им низкую оценку схожести.

Передача текстовой информации в процесс генерации изображений

Чтобы сделать текст частью процесса генерации изображений, нам нужно модифицировать предсказатель шума так, чтобы он использовал в качестве входных данных текст.

Теперь наш массив данных содержит закодированный текст. Так как мы работаем в скрытом пространстве, то входные изображения и прогнозируемый шум находятся в скрытом пространстве.

Чтобы лучше понять, как текстовые токены используются в Unet, давайте глубже разберёмся с Unet.

Слои предсказателя шума Unet (без текста)

Для начала рассмотрим диффузионную Unet, не использующую текст. Её входы и выходы выглядят так:

Внутри мы видим следующее:

  • Unet — это последовательность слоёв, работающая над преобразованием массива latent.
  • Каждый слой обрабатывает выходные данные предыдущего слоя.
  • Часто выходных данных подается (через остаточные соединения) для обработки на дальнейших этапах сети.
  • Шаг времени преобразуется в вектор эмбеддингов шага времени, который используется в слоях.


Слои предсказателя шума Unet с текстом

Давайте посмотрим, как изменить эту систему, чтобы уделить внимание тексту.

Основное изменение системы, которое необходимо для добавления поддержки текстового ввода (техническое название: text conditioning) — добавление слоя attention между блоками ResNet.

Обратите внимание, что блок resnet не смотрит непосредственно на текст. Слои attention объединяют эти текстовые описания в latent. И теперь следующий ResNet может использовать эту встроенную текстовую информацию в своей обработке.

Заключение

Надеюсь, это даст вам поверхностное понимание работы Stable Diffusion. В ней задействовано множество других концепций, но я считаю, что их проще понять, если вы знаете описанные выше строительные блоки. Для дальнейшего изучения можно воспользоваться представленными ниже полезными ресурсами.

Ресурсы


  • У меня есть одноминутный клип на YouTube по использованию Dream Studio для генерации изображений при помощи Stable Diffusion.
  • Stable Diffusion with 🧨 Diffusers
  • The Annotated Diffusion Model
  • How does Stable Diffusion work? – Latent Diffusion Models EXPLAINED [Видео]
  • Stable Diffusion — What, Why, How? [Видео]
  • High-Resolution Image Synthesis with Latent Diffusion Models [Статья про Stable Diffusion]
  • Более подробное изучение алгоритмов и математики представлено в статье Лилиан Венг What are Diffusion Models?

Благодарности

Благодарю Робина Ромбаха, Дэнниса Сомерса, Яна Сидякина и сообщество Cohere For AI за отзывы о ранних версиях этой статьи.

Environment and post-processing — Документация Godot Engine (stable) на русском языке

Godot 3 предоставляет переработанный ресурс Environment, а также новую систему постобработки с множеством доступных эффектов прямо из коробки.

Окружение

Ресурс Environment хранит всю информацию, необходимую для управления окружением рендеринга. Сюда входит небо, окружающее освещение, тональное отображение, эффекты и настройки. Сам по себе он ничего не делает, но становится включенным, если используется в одном из следующих мест в порядке приоритета:

Camera node

Environment (окружение) может быть установлено для камеры. Она будет иметь приоритет перед любыми другими настройками.

В основном это полезно, когда нужно переопределить существующее окружение, но в целом лучше использовать опцию ниже.

WorldEnvironment node

Узел WorldEnvironment может быть добавлен в любую сцену, но только один может существовать в активном дереве сцены. Добавление более одного узла приведет к предупреждению.

Любое добавленное окружение имеет более высокий приоритет, чем окружение по умолчанию (объясняется ниже). Это означает, что его можно переопределять для каждой отдельной сцены, что делает его весьма полезным.

Окружение по умолчанию

Можно установить окружение по умолчанию, которое действует как запасной вариант, если окружение не было установлено для Camera или WorldEnvironment. Просто перейдите в Project Settings -> Rendering -> Environment:

Новые проекты, созданные в Менеджере проектов, поставляются с окружением по умолчанию (default_env.tres). Если необходимо создать такое окружение, сохраните его на диск, прежде чем ссылаться на него здесь.

Environment options

Ниже приводится подробное описание всех опций окружения и того, как их предполагается использовать.

Фон

Раздел «Background» (Фон) содержит настройки заполнения фона (части экрана, где объекты не были нарисованы). В Godot 3.0 фон служит не только для отображения изображения или цвета, он также может изменять воздействие на объекты окружающего и отражённого света.

Существует множество способов установить фон:

  • Очистить цвет использует прозрачный цвет по умолчанию, определенный в проекте. Фон будет постоянного цвета.

  • Custom Color подобен Clear Color, но с пользовательским значением цвета.

  • Sky позволяет создать панорамное небо (текстура в виде сферы с охватом 360 градусов) или процедурное небо (простое небо с градиентом и дополнительным солнцем). Объекты будут отражать его и поглощать окружающий свет от него.

  • Цвет + Небо позволяет определить небо (как указано выше), но использует постоянное значение цвета для рисования фона. Небо будет использоваться только для отражения и рассеянного света.

Рассеянный свет

Ambient (как определено здесь) — это тип света, который влияет на каждую геометрическую фигуру с одинаковой интенсивностью. Он является глобальным и не зависит от освещения, которое может быть добавлено в сцену.

Существует два типа окружающего света: Ambient Color (это постоянный цвет, умноженный на альбедо материала) и получаемый из Sky (как описано ранее, но для включения этого режима необходимо установить небо в качестве фона).

Когда в качестве фона установлено небо Sky, можно смешивать цвета окружающей среды и неба с помощью параметра Sky Contribution (по умолчанию для удобства это значение равно 1.0, поэтому на объекты влияет только небо).

Вот сравнение того, как разный окружающий свет влияет на сцену:

Наконец, есть параметр Energy, который представляет собой множитель. Он полезен при работе с HDR.

В целом, рассеянный свет (ambient) следует использовать только в простых сценах, больших экстерьерах или по соображениям производительности (рассеянный свет дёшев), поскольку он не обеспечивает наилучшего качества освещения. Лучше генерировать окружающий свет с помощью ReflectionProbe или GIProbe, которые более точно имитируют распространение непрямого света. Ниже приведено сравнение по качеству между использованием плоского окружающего цвета и GIProbe:

Используя один из описанных выше методов, объекты получают постоянное окружающее освещение, заменённое окружающим светом от зондов.

Туман

Туман, как и в реальной жизни, заставляет отдалённые объекты исчезать в однородном цвете. Физический эффект на самом деле довольно сложен, но Godot обеспечивает хорошую аппроксимацию. В Godot есть два вида тумана:

  • Depth Fog: Применяется в зависимости от расстояния до камеры.

  • Height Fog: Применяется к любым объектам ниже (или выше) определённой высоты, независимо от расстояния до камеры.

Оба этих типа тумана можно настроить, сделав их кривую более или менее резким переходом.

Чтобы сделать эффект тумана более интересным, можно настроить два свойства:

Первый — Sun Amount, который использует свойство Sun Color (цвет солнца) тумана. Если смотреть на направленный свет (обычно солнце), цвет тумана будет меняться, имитируя солнечный свет, проходящий сквозь туман.

Второй — Transmit Enabled имитирует более реалистичное пропускание света. На практике это делает свет более заметным на фоне тумана.

Карта тональности

Эта функция доступна только при использовании бэкенда GLES3

Выбирает кривую тонового отображения, которая будет применена к сцене, из списка стандартных кривых, используемых в киноиндустрии и игровой индустрии. Операторы тонового отображения, отличные от линейного, используются для того, чтобы сделать светлые и тёмные области более однородными, избегая при этом обрезания ярких бликов.

The tone mapping options are:

  • Mode: Используемый режим отображения тонирования.

    • Linear: Режим тонового картирования по умолчанию. Это самый быстрый и простой оператор тонового отображения, но он приводит к тому, что яркое освещение выглядит передутым, с заметной обрезкой в выходных цветах.

    • Reinhardt: Выполняет изменение цветов рендеринга пикселей по такой формуле: color = color / (1 + color). Это позволяет избежать обрезания ярких бликов, но полученное изображение может выглядеть немного тусклым.

    • Filmic: Это позволяет избежать обрезания ярких бликов, в результате чего изображение обычно выглядит более ярким, чем при использовании Reinhardt.

    • ACES Fitted: тоновый маппер Academy Color Encoding System. ACES Fitted немного дороже, чем другие варианты, но он более реалистично обрабатывает яркое освещение, десатурируя его по мере того, как оно становится ярче. ACES обычно имеет более контрастный выход по сравнению с Reinhardt и Filmic. ACES рекомендуется использовать, если вы стремитесь к фотореалистичному изображению.

    • ACES: Устарел (будет удален в Godot 4.0). Ведёт себя как ACES, но не десатурирует освещение по мере того, как оно становится ярче (что менее реалистично). Рекомендуется использовать ACES Fitted вместо ACES.

  • Exposure: Экспозиция тонального отображения, имитирующая количество света, получаемого с течением времени (по умолчанию: 1.0). Более высокие значения приводят к общему более светлому виду. Если сцена кажется слишком тёмной в результате применения оператора тонового отображения или изменения точки белого, попробуйте немного увеличить это значение.

  • White: Точка белого в тональном отображении, которая моделирует, где в шкале находится белый цвет (по умолчанию: 1.0). Для фотореалистичного освещения рекомендуемые значения находятся между 6.0 и 8.0. Более высокие значения дают менее яркие блики, но в целом сцена выглядит немного темнее.

Auto Exposure (HDR) (автоэкспозиция)

Эта функция доступна только при использовании бэкенда GLES3

Несмотря на то, что в большинстве случаев освещение и текстурирование в значительной степени контролируются художником, Godot поддерживает простую реализацию высокого динамического диапазона с помощью механизма автоматической экспозиции. Обычно это используется для достижения реализма при совмещении внутренних помещений с низким освещением и на открытом воздухе. Автоэкспозиция имитирует работу камеры (или глаза), пытаясь адаптироваться между светлыми и тёмными местами и их различным количеством света.

Самый простой способ использовать автоэкспозицию — убедиться, что наружное освещение (или другое сильное освещение) имеет энергию больше 1.0. Это делается путём изменения множителя Energy (на самом светильнике). Для согласованности Sky обычно тоже нужно использовать множитель энергии, чтобы соответствовать направленному свету. Обычно значений от 3.0 до 6.0 достаточно для имитации условий внутри и снаружи помещения.

При сочетании автоэкспозиции с постобработкой Glow (подробнее об этом ниже) пиксели, выходящие за пределы тональной карты White, перетекают в буфер свечения, создавая типичный для фотографии эффект свечения.

В разделе «Auto Exposure» пользовательские значения имеют разумные значения по умолчанию, но вы всё равно можете их подстроить:

  • Scale: Значение для масштабирования освещения. Более яркие значения создают более яркие изображения, меньшие — более тёмные.

  • Min Luma: Минимальная яркость, на которую будет настраиваться автоматическая экспозиция. Яркость — это среднее значение света во всех пикселях экрана.

  • Max Luma: Максимальная яркость, на которую будет настраиваться автоматическая экспозиция.

  • Speed: Скорость, с которой происходит коррекция яркости. Чем выше значение, тем быстрее происходит коррекция.

Mid- and post-processing effects

В среде поддерживается большое количество широко используемых эффектов промежуточной и последующей обработки.

Screen-Space Reflections (SSR) (отражения в экранном пространстве)

Эта функция доступна только при использовании бэкенда GLES3

Хотя Godot поддерживает три источника данных об отражениях (Sky, ReflectionProbe и GIProbe), они могут не обеспечить достаточную детализацию для всех ситуаций. Сценарии, в которых отражения экранного пространства имеют наибольший смысл, — это когда объекты соприкасаются друг с другом (объект над полом, над столом, плавающий на воде и т.д.).

Другое преимущество (даже если оно включено минимально) заключается в том, что оно работает в реальном времени (в то время как другие типы отражений предварительно вычисляются). Это можно использовать для того, чтобы персонажи, автомобили и т.д. отражались от окружающих поверхностей при движении.

Для более точной настройки техники имеется несколько параметров, управляемых пользователем:

  • Max Steps (максимум шагов) определяет длину отражения. Чем больше это число, тем дороже вычисление.

  • Исчезание позволяет регулировать кривую нарастания, что полезно для смягчения площади контакта.

  • Fade Out (затухание) позволяет настроить кривую затухания, чтобы предел шага затухал плавно.

  • Depth Tolerance (допуск глубины) можно использовать для допуска экрана к зазорам. Чем больше значение, тем больше зазоров будет проигнорировано.

  • Roughness (шероховатость) — будет применяться размытие в пространстве экрана для аппроксимации шероховатости в объектах с данной характеристикой материала.

Keep in mind that screen-space-reflections only work for reflecting opaque geometry. Transparent materials won’t be reflected, as they don’t write to the depth buffer. This also applies to shaders that use SCREEN_TEXTURE or DEPTH_TEXTURE.

Затенение окружающего пространства экрана (SSAO)

Эта функция доступна только при использовании бэкенда GLES3

Как упоминалось в разделе Ambient, области, куда не попадает свет от узлов освещения (либо потому, что они находятся за пределами радиуса, либо затенены), освещаются окружающим светом. Godot может имитировать это с помощью GIProbe, ReflectionProbe, Sky или постоянного цвета окружения. Проблема, однако, заключается в том, что все предложенные ранее методы действуют скорее на больших масштабах (большие регионы), чем на более мелком уровне геометрии.

Постоянный цвет окружающей среды и Sky везде одинаковы, в то время как зонды GI и Reflection имеют больше локальных деталей, но недостаточно для моделирования ситуаций, когда свет не может заполнить внутренние полые или вогнутые элементы.

Это можно смоделировать с помощью Screen Space Ambient Occlusion. Как видно на изображении ниже, его цель — сделать вогнутые области темнее, имитируя более узкий путь для проникновения света:

Частой ошибкой является включение этого эффекта, включение света и невозможность оценить его. Это происходит потому, что SSAO действует только на окружающий свет, а не на прямой свет.

Вот почему на изображении выше эффект менее заметен при прямом свете (слева). Если вы хотите заставить SSAO работать и с прямым светом, используйте параметр Light Affect (хотя это и неправильно, некоторым художникам нравится, как это выглядит).

SSAO лучше всего смотрится в сочетании с реальным источником непрямого освещения, например, GIProbe:

Настроить SSAO можно с помощью нескольких параметров:

  • Radius/Intensity: (радиус/интенсивность) Для управления радиусом или интенсивностью окклюзии доступны эти два параметра. Радиус указывается в мировых (метрических) единицах.

  • Radius2/Intensity2: Можно использовать вторичный радиус/интенсивность. Обычно хорошо работает сочетание большого и малого радиуса AO.

  • Bias: Этот параметр можно настроить для решения проблемы самозатемнения, хотя значение по умолчанию обычно работает достаточно хорошо.

  • Light Affect: SSAO воздействует только на окружающий свет, но увеличение этого ползунка может заставить его воздействовать и на прямой свет. Некоторые художники предпочитают этот эффект.

  • Ao Channel Affect: Если используется нулевое значение, для окружающего затенения будет использоваться только текстура AO материала; SSAO не будет применяться. Значения больше 0 умножают текстуру AO на эффект SSAO в различной степени. Это не влияет на материалы без текстуры AO.

  • Quality: В зависимости от качества, SSAO будет делать больше выборок по сфере для каждого пикселя. Высокое качество хорошо работает только на современных графических процессорах.

  • Blur: Тип используемого ядра размытия. Ядро 1×1 — это простое размытие, которое лучше сохраняет локальные детали, но не так эффективно (обычно лучше работает с настройками высокого качества выше), в то время как 3×3 лучше смягчает изображение (с эффектом, похожим на дизеринг), но не так хорошо сохраняет локальные детали.

  • Edge Sharpness: Этот параметр можно использовать для сохранения резкости краёв (избегает областей без AO на складках).

Глубина резкости / Дальнее размытие

Этот эффект имитирует фокусное расстояние на камерах высокого класса. Он размывает объекты за заданным диапазоном. Он состоит из Distance с областью Transition (в мировых единицах):

Параметр Amount управляет степенью размытия. Для больших размытий может потребоваться настройка параметра Quality, чтобы избежать артефактов.

Глубина резкости / Близкое размытие

Этот эффект имитирует фокусное расстояние на камерах высокого класса. Он размывает объекты вблизи камеры (действует в противоположном направлении, как размытие вдали). Он состоит из Distance с областью Transition (в мировых единицах):

Параметр Amount управляет степенью размытия. Для больших размытий может потребоваться настройка параметра Quality, чтобы избежать артефактов.

Обычно оба размытия используются вместе, чтобы сфокусировать внимание зрителя на определённом объекте:

Свечение

В фотографии и кино, когда количество света превышает максимум, поддерживаемый носителем (будь то аналоговый или цифровой), он обычно вытекает наружу в более тёмные области изображения. Это моделируется в Godot с помощью эффекта Glow (свечение).

По умолчанию, даже если эффект включен, он будет слабым или невидимым. Чтобы он действительно проявился, должно произойти одно из двух условий:

И то, и другое приведёт к тому, что свет начнет вытекать из более ярких участков.

Когда свечение становится видимым, им можно управлять с помощью нескольких дополнительных параметров:

  • Intensity (интенсивность) — это общая шкала для эффекта, его можно сделать сильнее или слабее (0.0 убирает его).

  • Strength (сила) — насколько сильно обрабатывается ядро гауссова фильтра. При больших значениях фильтр насыщается и расширяется наружу. В целом, изменение этого параметра не требуется, так как размер можно более эффективно настроить с помощью Levels (уровней).

Blend Mode (режим смешивания) эффекта также можно изменить:

  • Additive — самый сильный, поскольку он только добавляет эффект свечения на изображение без смешивания. В целом, он слишком силён для использования, но может хорошо смотреться при низкой интенсивности Bloom (создает эффект, похожий на сон).

  • Screen гарантирует, что свечение никогда не будет ярче самого себя, и отлично работает в качестве универсального средства.

  • Softlight — самый слабый режим по умолчанию, создающий лишь едва заметное нарушение цвета вокруг объектов. Этот режим лучше всего работает в тёмных сценах.

  • Replace (заменить) можно использовать для размытия всего экрана или отладки эффекта. Он показывает только эффект свечения без изображения ниже.

Чтобы изменить размер и форму эффекта свечения, Godot предоставляет Levels. Маленькие уровни — это сильное свечение, которое появляется вокруг объектов, а большие уровни — это туманное свечение, покрывающее весь экран:

Однако настоящая сила этой системы заключается в возможности комбинировать уровни для создания более интересных узоров свечения:

Наконец, поскольку самые верхние слои создаются путём растягивания небольших размытых изображений, возможно, будет заметна некоторая блочность. Включение Bicubic Upscaling позволяет избавиться от неё с минимальными затратами производительности. Обратите внимание, что это эффективно только при использовании бэкенда GLES3.

Adjustments (настройки)

В конце обработки Godot предлагает возможность выполнить некоторые стандартные корректировки изображения.

Первое — это возможность изменять типичные параметры яркости, контрастности и насыщенности:

Второй способ заключается в использовании градиента для коррекции цвета. Обычный чёрно-белый градиент, как показано ниже, не даст никакого эффекта:

Но создание собственных позволит сопоставить каждый канал с отдельным цветом:

Что делает стабильный менеджер?

Управление конюшней — полезная работа для тех, кто любит быть рядом с лошадьми и хочет, чтобы о них хорошо заботились. Менеджеры такого типа могут получать достойную зарплату, применяя свои с трудом заработанные навыки на работе.

Если вы подумываете о том, чтобы стать менеджером стабильного бизнеса, важно знать, какие навыки вам необходимо развивать. Получение образования в области коневодства может помочь вам развить эти навыки, чтобы вы могли сделать успешную карьеру в качестве управляющего конюшней. Имейте в виду следующее, собирая больше информации об этом потенциальном карьерном пути.

Что делает стабильный менеджер?

У управляющего конюшней есть несколько обязанностей, связанных с заботой о лошадях, а также с надзором или выполнением повседневных деловых операций. Как управляющий конюшней, у вас будет возможность применить свои навыки коневодства и управления бизнесом. Стабильные менеджеры не обязательно работают на фермах. Некоторые работают в других средах в индустрии лошадей, например, на конных выставках или в конном пансионе. В то время как некоторые из этих менеджеров работают на кого-то выше, например, на управляющего фермой, другие управляют собственным конезаводом.

Обязанности управляющего коровником

Работа в управлении коровником связана с выполнением широкого круга обязанностей и задач на регулярной основе. Обязанности по управлению коровником могут включать:

  • Предоставление ветеринарной помощи
  • Надзор за работниками коровника
  • Заказ расходных материалов, включая корм для лошадей
  • Техническое обслуживание и заказ оборудования
  • Оплата расходов
  • Ведение амбарной документации, включая финансовую отчетность
  • Ремонт или замена сломанного оборудования и ограждений
  • Управление заработной платой сотрудников и графиками
  • Планирование уроков верховой езды, при необходимости
  • Планирование регулярного ветеринарного и кузнечного ухода для поддержания здоровья лошадей
  • Организация транспорта на конные выставки, при необходимости
  • Заполнение документов и обеспечение своевременной вакцинации лошадей для конных выставок или других соревнований, по мере необходимости

Имейте в виду, что это лишь некоторые из обязанностей и задач, за которые отвечают управляющие коровником. У некоторых из этих менеджеров есть другие обязанности в зависимости от типа лошадиной среды, в которой они работают. Например, некоторые управляющие стойлами дают уроки верховой езды, а другие помогают с рождением жеребят в конюшне.

Навыки, необходимые управляющим конюшней

Благодаря сочетанию ухода за лошадьми и деловых знаний, управляющие конюшнями должны обладать широким спектром навыков. Развитие этих навыков вместе с правильным образованием и опытом может помочь вам построить успешную карьеру в управлении фермой. Это некоторые из наиболее распространенных навыков, которыми вы должны обладать, чтобы работать менеджером сарая.

Деловая этика и обязанности

Одним из наиболее важных навыков, необходимых менеджерам конюшен, является четкое понимание личной и профессиональной деловой этики и ответственности. Как менеджер вы должны будете соблюдать федеральные, государственные и местные законы, когда речь идет об управлении сотрудниками и поддержании безопасной рабочей среды. Вам также необходимо уметь правильно управлять персоналом и обрабатывать графики, начисление заработной платы и другие повседневные операции.

Работа управляющим амбаром означает, что вы будете ухаживать за лошадьми и другими животными, а также за работниками. Учитывая эту ответственность, крайне важно иметь сильное чувство и понимание деловой этики. Эти деловые навыки также необходимы для выполнения руководящей роли в целом. Обладая этими навыками, вы сможете правильно и эффективно управлять конюшней или сараем.

Навыки общения

Поскольку управление конюшней выходит за рамки ухода за лошадьми, важно также иметь прочные навыки общения. В своей повседневной рабочей среде вы будете взаимодействовать с другими людьми, такими как сотрудники, фермеры или другие лица, связанные с коневодством. Например, если вы управляете конюшней, предлагающей уроки верховой езды, вы будете взаимодействовать с клиентами, которые захотят записаться на это обучение. Как управляющий коровником, вы также будете общаться с другими специалистами, занимающимися уходом за лошадьми, такими как кузнецы и ветеринары.

Способность эффективно общаться с другими людьми является одним из основных навыков, которыми вы должны обладать в качестве управляющего конюшней. У вас будет множество возможностей развивать эти навыки, получая образование в области изучения лошадей и работая над созданием сетей для своей карьеры, например, встречаясь с ветеринарами или менеджерами ферм.

Навыки содержания лошадей

Работа в конюшне означает, что вы будете нести основную ответственность за то, чтобы лошади, находящиеся под вашим присмотром, были максимально здоровы и безопасны. Это предполагает наличие навыков и знаний в области содержания лошадей, таких как понимание потребностей лошадей в питании и обучение навыкам управления поведением. Вам также понадобятся навыки в других аспектах коневодства, включая верховую езду.

В зависимости от типа рабочей среды, которую вы выберете для своей стабильной карьеры менеджера, вам могут понадобиться и другие навыки земледелия. Например, в некоторых конюшнях может потребоваться знание того, как проводить безопасные уроки в качестве инструктора по верховой езде или научиться помогать жеребятам. Имейте в виду, что обращение с машинами и другим оборудованием, используемым в конюшнях или в промышленности, в целом, является еще одним полезным навыком коневодства. Обладая этими навыками, вы сможете выполнять больше обязанностей в конюшне. Эти навыки также могут дать вам практический опыт, который может вам понадобиться, если вы решите подняться и стать управляющим фермой.

Историческая осведомленность

Знание об исторической важности коневодства в целом может быть полезным, когда вы работаете управляющим коровником. Также важно иметь конкретные знания об истории организации, в которой вы работаете. Например, вам может понадобиться узнать историю конных выставок, в которых участвует ваша конюшня. Знание истории коневодческой отрасли и конкретной истории конюшни или организации, которой вы управляете, может помочь вам глубже оценить свою работу. Эти знания могут добавить еще один уровень профессионализма к вашим навыкам управления конюшней.

Бизнес-инструменты и технологии

Управление коровником включает в себя множество различных аспектов повседневных деловых операций. Чтобы сделать это эффективно, вам нужно знать, как управлять заработной платой, бизнес-расходами и другими финансами, человеческими ресурсами и аналогичными задачами. Программное обеспечение для бизнеса, такое как программное обеспечение для расчета заработной платы или компьютерное управление, может значительно упростить выполнение этих задач, но вам все равно нужно понимать, как их правильно использовать. Также полезно расширить эти знания, включив в них более продвинутые инструменты, такие как облачное программное обеспечение. Возможность сочетать эти технологические навыки с другими навыками в области коневодства дает вам всестороннее и глубокое понимание того, что нужно для успешной карьеры управления коровником.

Программа Post Equine 

В Post University мы предлагаем программу бакалавриата в области изучения лошадей, чтобы помочь вам получить образование, необходимое для управления коровником. Эта программа, доступная в Интернете и в кампусе, включает в себя курсы, охватывающие все аспекты коневодческой отрасли, такие как управление лошадьми и правила безопасного поведения в конюшнях. Мы также предлагаем концентрации для этой программы, включая Управление конным бизнесом, Коучинг конного спорта и Оздоровление лошадей.

Независимо от того, на каком аспекте изучения лошадей вы планируете сосредоточиться, у нас есть курсы, которые вам понадобятся для получения необходимых навыков и знаний. Мы также предлагаем второстепенную программу обучения лошадям, а также такие курсы, как уход за лошадьми и проектирование и эксплуатация объектов. Этот второстепенный предмет дает вам возможность узнать больше об управлении конюшнями , если вы еще не уверены, хотите ли вы продолжить эту карьеру.

Если вы хотите узнать больше о нашей программе изучения лошадей, свяжитесь с Почтовым университетом сегодня. Мы можем предоставить вам более подробную информацию об этой программе получения степени и помочь вам начать процесс поступления.

 

Спасибо, что прочитали! Мнения и информация, представленные в этом посте, не отражают напрямую программы и/или результаты Post University. Если вы хотите узнать больше о наших программах, вы можете найти полный список наших программ на нашем веб-сайте или свяжитесь напрямую с !  

Обратите внимание, что вакансии, результаты карьеры и/или зарплаты, указанные в этом блоге, не отражают работу, результаты карьеры и/или зарплаты, ожидаемые от какой-либо программы Post University. Чтобы узнать больше о программе Post University и ее результатах, пожалуйста, заполните форму , чтобы поговорить с представителем приемной комиссии.

Руководство по устойчивости кроссовок (2023 г.)

Руководство по устойчивости кроссовок (2023)