Установка
1. Откройте AmplifyshaderEditor###.unitypackage2. После загрузки Unity отобразится окно “Importing package” выберите All, и нажмите Import
3. Теперь Amplify Shader Editor установлен в вашем проекте Unity, и он должен иметь следующую структуру каталогов:
-
- YourProject\Assets\AmplifyshaderEditor\
- YourProject\Assets\AmplifyshaderEditor\Plugins\
- YourProject\Assets\AmplifyshaderEditor\Resources\
- YourProject\Assets\AmplifyshaderEditor\Samples\
- YourProject\Assets\AmplifyshaderEditor\Templates\
- YourProject\Assets\AmplifyshaderEditor\Textures\
Редактор
Шейдеры ASE можно создавать непосредственно на вкладке Project или через Меню Assets > Create > Shader > Amplify Surface Shader.
1. Дважды щелкните на шейдере ASE, чтобы открыть его на холсте ASE. Кроме того, вы можете открыть шейдер непосредственно на вкладке Инспектора, нажав кнопку Open в Shader Editor.
2. Назовите свой шейдер непосредственно на вкладке Node Properties, вы можете добавить свою собственную категорию, используя разделитель косой черты (/). Имейте в виду, что имена файлов шейдеров являются уникальными и должны быть установлены вручную на вкладке Project Explorer. Вы можете использовать разные имена для файла и фактического шейдера.
3. В этой области отображается текущий шейдер, щелкнув по нему, вы найдете и выберите шейдер на вкладке Project Explorer. Обратите внимание на зеленый контур, это визуальный помощник, который позволяет узнать, что в настоящий момент открыт только шейдер..
1. Дважды щелкните на материале, который использует шейдер ASE, чтобы открыть шейдер и материал на холсте ASE. Кроме того, вы можете открыть его непосредственно на вкладке инспектора материалов, нажав кнопку Open в Shader Editor.
2. При открытии материала активный шейдер и материал отображаются в нижней области холста. Как и в случае с шейдером, щелкнув по нему, вы найдете и выберите материал на вкладке Project Explorer. Обратите внимание на синий контур, это визуальный помощник, который позволяет узнать, что в настоящий момент открыты и материал, и шейдер.
Взаимодействие Холста и Интерфейса
1. Свойства ноды можно настроить на левой вкладке. Выберите любую ноду или ноду Output, чтобы раскрыть его параметры. Некоторые значения могут быть скорректированы непосредственно в ней самой. Свойства Output всегда отображаются на этой вкладке, если ни одна нода не выбрана. Вкладку Output Node Properties можно свернуть, нажав кнопку «минус» в правом верхнем углу вкладки.
2. Минималистичные кнопки Save/Update/Clear/Edit. Серого цвета, когда недоступны или отключены, зеленого, если актуальны, желтого, если устарели.
-
- Кнопка 1: Обновление шейдера вручную (Сохранить и Обновить)
- Кнопка 2: Переключить обновление шейдера LIVE (Автоматическое Сохранить и Обновить)
- Кнопка 3: Удалить не подключенные ноды
- Кнопка 4: Открыть шейдер в Text Editor
4. Настройка холста.
-
- Кнопка 1: Выбрать и сфокусироваться на ноде Output
- Кнопка 2: Сфокусироваться на выбранных нодах, сфокусироваться на всей коллекции нод, если ничего не выбрано. Автоматическое увеличение также выполняется двойным нажатием кнопки или двойным нажатием клавиши «F».
6. Щелкните правой кнопкой мыши в любом месте на холсте, чтобы вызвать список нод с возможностью поиска, нажмите на имя ноды, чтобы создать ее.
7. Удерживайте клавишу быстрого доступа и щелкните в любом месте холста, чтобы создать новую ноду. Сочетания клавиш отображаются внутри [ ] и располагаются перед соответствующими именами нод на вкладке Palette. Например: клавиша «1» для Float и клавиша «5» для ноды Color.
Данные передаются слева направо – Input Port > Processed Data > Output Port. Только ноды, прямо или косвенно связанные с нодой Output, анализируются и используются для генерации окончательных инструкций шейдера. Если нода содержит неподключенные входные порты, ASE будет использовать внутренние данные на этапе обработки. Внутренние значения данных можно редактировать через вкладку Node Property.
Ноды Ноды можно выбрать, щелкнув по ним левой кнопкой мыши или левой кнопкой мыши, перетащив выделенную область над ними. Они могут быть добавлены или удалены из выбора, удерживая клавишу «Shift» и нажимая на нее. Нажмите ‘CTRL/CMD+A’, чтобы выбрать все. Отмените выбор всего, щелкнув левой кнопкой мыши по пустому месту на холсте. Переместите выбранные ноды, удерживая левую кнопку мыши над ними и перетаскивая.
Провода Удалите провод, удерживая клавишу «Alt» и щелкнув на порт ноды, или перетащите провод в пустое пространство холста и щелкнув левой кнопкой мыши. Провода, подключенные к выбранным нодам, выделяются для обозначения потока данных от самой левой ноды к самой правой ноде.
Соединения Создайте соединение, щелкнув левой кнопкой мыши и перетащив провод либо из выходного порта ко входному, либо из пустого входного порта в порт выхода. Удерживая левую кнопку мыши на уже подключенном входном порте, он удаляет конец провода и привязывает его к курсору мыши, чтобы вы могли перетащить его на другой порт. Перетащите провод на пустое пространство холста, и автоматически появится контекстное меню, и если выбран тип узла, устанавливается соединение с первым действительным портом.
Порты Выходные порты могут быть подключены к нескольким входным портам, но входные порты принимают только один вход. Провода автоматически привязываются к портам рядом с курсором мыши. Для более легкого использования активная область порта довольно обширна, вы даже можете подключить свои провода непосредственно к имени порта..
Вид Правая или средняя кнопка мыши служит для панорамирования вида. Холст будет прокручиваться автоматически при выборе или перемещении выделенных нод из видимой области рабочей области. Вы можете увеличить/уменьшить масштаб с помощью колесика прокрутки мыши. Степень уменьшения определяется динамически из расположения нод на холсте.
Вкладки Оба окна Node Properties и Node Palette автоматически сворачиваются при уменьшении ширины окна ASE ниже 750 пикселей. Вы всегда можете увеличить их, нажав прямоугольную кнопку.
Режимы Материала и Шейдера
Вы можете работать с ASE в одном из двух режимов, шейдера или материала, в зависимости от того, загружаете ли вы файл шейдера из ассета шейдера или материала. Граница холста служит визуальным индикатором активного режима, зеленый контур отображается в режиме шейдера, а синий контур - в режиме материала.
Значения, установленные в шейдере, обычно называются Default Values(Значения по-умолчанию). Любые изменения, внесенные в Default Values для любого данного шейдера, автоматически влияют на все материалы, использующие его. При одновременном редактировании материала и шейдера обратите особое внимание на то, какие значения изменяются.
В отличие от Default Values шейдера, значения материала могут быть уникальными. Значения материала отображаются только при работе в режиме материала (с открытым материалом и шейдером). Только ноды, которые представляют переменные (Color, Float, Int, Vector, Matrix), имеют раскрывающийся список «Parameter Type» и могут быть установлены в «Property». Default Values всегда копируются в значения материала при выборе свойства или параметра Property или Uniform. Каждый материал может быть изменен для создания неограниченного количества вариаций, при чем, используя один и тот же шейдер. Вы можете рассматривать свои материалы как экземпляры своего шейдера, каждый экземпляр уникален, но создается с использованием одного набора Default Values.
Copy Values и Paste Values позволяют копировать значения свойств между материалами , используя один и тот же шейдер ASE. Кнопка Open in Shader Editor позволяет быстро открыть как материал, так и шейдер, используемый в Amplify Shader Editor.
Шейдеры также можно открыть непосредственно через вкладку «Inspector», нажав кнопку Open in Shader Editor. Либо нажмите Open in Text Editor чтобы открыть его в текущем редакторе кода.
Нода Output
Узнать больше: Unity Shader Reference
Общее
|
Входы Стандартного Шейдера
|
Blend Mode
|
Stencil Buffer
Трафаретный буфер может использоваться в качестве общего назначения для каждой пиксельной маски для сохранения или удаления пикселей. Обычно это 8-битное целое число на пиксель. Значение может быть записано, увеличено или уменьшено. Последующие draw calls могут проверить это значение, чтобы решить, следует ли отбрасывать пиксель перед запуском пиксельного шейдера. Когда режим Cull установлен на OFF это меню показывает дополнительный набор вариантов сравнения для использования буфера отдельно от передних и задних граней.
|
Tessellation
|
Outline Создает настраиваемый эффект контура, используя технику обратного каркаса
|
Billboard
|
Depth
|
Rendering Options
Здесь можно активировать или деактивировать определенные функции шейдеров, по умолчанию большинство из них будет включено, чтобы имитировать стандартный шейдер Unity. |
Rendering Platforms
Определяет, какие платформы поддерживаются; по умолчанию установлено All. |
Additional Includes
Позволяет определить относительный путь из шейдера для файла включения cg. Если файл отсутствует или неправильный путь, он не сможет скомпилировать шейдер. «../» можно использовать для перехода в папку. |
Additional Pragmas
Позволяет добавлять отдельные прагматические директивы для управления компиляцией и рендерингом шейдера. |
Custom SubShader Tags
Позволяет добавлять пользовательские теги подшейдеров для управления рендеринга пользовательских шейдеров. |
Material Properties
В этом разделе будут перечислены переменные, для которых установлено Property. Вы изменяете их положение, перетаскивая их. |
Ссылка на Пользовательские Свойства
Определенные параметры шейдера, такие как Cull Mode или Stencil, также могут быть настроены с помощью свойств шейдера, Ints и Floats, которые будут специфичными, вместо их обычных предопределенных значений.Они будут иметь кликабельную точку на боковой панели раскрывающегося списка, которую вы можете использовать в качестве переключателя, чтобы активировать новый режим выбора свойств для выбора собственных свойств в списке параметров шейдера.
Функции Шейдеров
Функции Шейдеров, сокращенно SF, представляют собой отдельные сети нодов, которые позволяют создавать многократно используемые функции. Простые в настройке и чрезвычайно гибкие, они работают, получая входные значения непосредственно от вашего шейдера, обрабатывая эту информацию и выводя ее обратно для дальнейших изменений или прямого использования. Ресурсы SF не привязаны к какому-либо шейдеру, вы можете использовать их несколько раз на протяжении всего проекта, в одном и том же шейдере, внутри других Функций Шейдера или даже делиться ими с другими пользователями. От простых до сложных графиков, Функции Шейдеров - это отличный способ уменьшить беспорядок холста путем упаковки сложных сетей в отдельные ноды и отличный способ устранить ненужные повторяющиеся задачи.
Хотите поделиться своими творениями с сообществом ASE? Поспособствуйте здесь!
Характеристики
- Работает со всеми нодами ASE.
- Настраиваемые ноды Input/Output.
- Copy&Paste ноды между шейдерами и SF.
- Поддерживает все типы переменных, включая Material Properties.
- Многоразовые и уникальные ассеты, не привязанные ни к одному шейдеру или проекту.
- Беспрепятственный рабочий процесс редактора, drag&drop в любой открытый шейдер или добавление их из Node list.
Сравнение
Прежде всего, сети нодов производят одинаковый эффект прожига. Original не использует шейдерные функции. Version 1 используется SF, который содержит исходную сеть узлов, используемую для создания эффекта прожига, он получает 1 нода Texture Object для маски записи, 1 нода Texture Object для текстуры огня и 1 нода Texture Coordinate. Version 2 проще, чем в предыдущем примере, все генерации эффекта прожига и узлы текстур включены в SF, единственное исключение - нода Texture Coordinate который позволяет пользователям настраивать его поведение. Имейте в виду, что SF не нужно получать какие-либо входные данные, при необходимости выходные данные могут быть полностью сгенерированы на его графике.
Version 1 Пример Функции Шейдера
Создание и Использование
Создайте новый Shader Function Asset в Assets > Create > Shaders > Amplify Shader Function.
Ваша вновь созданная Shader Function будет автоматически открыта в редакторе ASE после переименования.
1. Добавьте описание Shader Function здесь. Вы также можете изменить порядок ваших Function Inputs/Outputs и Material Properties перетащив их в нужное положение. Порядок, установленный в вашей SF, будет таким же, как на вкладке инспектор Material.
2. Создайте 2 нода Input или больше. По умолчанию всегда есть 1 нода Output но вы можете добавить столько, сколько необходимо. Вы также можете использовать другие SF-узлы внутри своего активного SF, но, чтобы избежать Shader Function Loops, вы не можете добавить функцию на свой холст.
3. Выберите ноду Inputчтобы установить используемый тип, или переключите параметр Auto Cast чтобы автоматизировать процедуру непосредственно на левой вкладке, как если бы вы использовали другие свойства ноды.
4. Соедините полученные output(s) напрямую с нодой(ами) Output.
5. Сохраните изменения и нажмите Return чтобы вернуться к ранее открытым Шейдерам или Материалам, если таковые имеются.
1. Добавьте созданную Shader Function в свой шейдер, выбрав ее непосредственно из Node List. Ноды SF можно использовать так же, как и любые другие узлы ASE, их можно дублировать, копировать или удалять.
2. Кроме того, вы можете перетаскивать Shader Functionsпрямо на холст вашего редактора.
3. Дважды щелкните по ноде SF, чтобы открыть ее.
Горячие клавиши
Режим Colored Line
Нажмите [W], чтобы переключиться на него
Node Previews
Нажмите [ P ] чтобы переключиться на node previews
Режим Multi-line
Нажмите [ CTRL + W ] чтобы переключиться в режим multi-line.Полный список Горячих Клавиш
Редактор
- [Double Click Wire]: создание контрольной точки на проводе.
- [F1]: Открыть для Выбранной Ноды Страницу Вики.
- [C]: Создать комментарий
- [F]: фокус на выборе
- [B]: новый мастер Нод
- [Space]: Открыть Node Palette
- [W]: Переключиться в Режим Colored Line
- [Control + W]: Переключиться в Режим Multi-Line
- [P]: глобальный предварительный просмотр
- [Delete]: удалить выбранные Ноды
- [Backspace]: удалить выбранные Ноды
Ноды
- [Alpha5]: Color
- [Alpha0]: Int
- [Alpha1]: Float
- [Alpha2]: Vector2
- [Alpha3]: Vector3
- [Alpha4]: Vector4
- [L]: Lerp
- [N]: Normalize
- [O]: One Minus
- [E]: Power
- [A]: Add
- [D]: Divide
- [M]: Multiply
- [S]: Subtract
- [R]: World Reflection
- [T]: Texture Sample
- [U]: Texture Coordinates
Полупрозрачность
Вход Translucency обеспечивает быстрый способ представления рассеяния света. Это не самый реалистичный доступный метод, но это гибкое и быстрое приближение. В нашем примере (AmplifyShaderEditor\Examples\Official\Translucency) мы используем простую красную Depth Textureдля представления эффекта подповерхностного рассеяния, но вам не обязательно использовать ту же настройку, вы вполне можете подключить полную RGB-текстуру к входу Translucency для получения некоторого изменения цвета или стилизованных результатов.Material Properties ниже автоматически добавляются в ваш шейдер, когда вы подключаете свои значения Translucency Input Port.
|
Ваш Первый шейдер
1.Откройте редактор, создайте новый материал и новый шейдер на вкладке Project Explorer. Во вновь созданном материале выберите новый шейдер и нажмите кнопку Open в Shader Editor чтобы открыть шейдер и материал.
2. В качестве примера выберите ноду Output Nodeи измените его Light Model на specular.
3. Щелкните правой кнопкой мыши на холсте, чтобы открыть список доступных для поиска узлов, и введите “Lerp”. Нажмите на Lerp и подключите выходной порт узла к входному порту Albedo.
4. Удерживая клавишу 5, нажмите на холст, чтобы создать новую ноду Color. Кроме того, вы можете использовать список поиска, который использовался ранее, или перетащить ноду из Node Palette с правой стороны; Constants > Color [5].
5. Выберите новую ноду Color и нажмите ‘CTRL/CMD+D’ чтобы скопировать ее. Соедините обе ноды с входным портом ноды Lerp. Установите в первой ноде серый цвет и а второй на более живой цвет.
6. Создайте ноду Float перетащив его из Node Palette, подключите его к порту Alpha ноды Lerp. В свойствах узла только что созданного Float установите для его Minimum значение на 0 и Maximum на 1. Обратите внимание, что теперь Float можно управлять с помощью ползунка. Не забудьте установить для Parameter Type значение Property,так что вы сможете изменить его непосредственно в материале. Вы также можете назвать ноду и изменить его положение в инспекторе материалов, отрегулировав значение индекса. В качестве примера, давайте назовем его Color Mix.
7. Создайте новый Float и подключите его к входному порту Smoothness из ноды Output, установите его Minimum значение на 0 и Maximum на 1, как вы делали ранее. Установите его Type на Property и назовите его Smoothness Value. Создайте еще один объект Float и подключите его к входному порту Specular, установите его Minimum значение на 0 и Maximum на 1. Установите его Type на Property и назовите Specular Value.
8. В заключение, перетащите текстуру Normal Map из вашего Project Explorer прямо на холст. В качестве примера мы использовали текстуру Brushed Metal. Подключите его к входному порту Normal ноды Output и все готово. Вы только что создали свой первый шейдер, не забывайте регулярно сохранять свою работу, нажав кнопку Update расположенную в верхнем левом углу. В качестве альтернативы, вы можете редактировать шейдер с включенным режимом LIVE любые изменения немедленно сохраняются и обновляются. В зависимости от сложности шейдера, режим LIVE может занять около секунды для обновления. Вопреки значениям шейдера по умолчанию, любые изменения, внесенные в свойство материала, сразу видны.
Совместимость с Другими Программами
Aura 2
Использовать Aura 2 с ASE довольно легко, просто добавьте необходимые ноды.Обязательно ознакомьтесь с официальным руководством Aura 2 для получения обновленной информации.
Поддержка Substanc
Поддержка Substances в Unity 2018 и выше была добавлена в ASE.Исходный пример Substance необходимо было упаковать в пакет Unity, поскольку файлы .sbsar теперь вызывают ошибку импорта в Unity 2018, так как собственная поддержка Substance была заброшена.
Если вы используете версии до Unity 2018, в которых встроенная поддержка Substance еще не устарела, вы можете найти пример Substance ниже:
- Перейдите в папку AmplifyShaderEditor\Examples\Official\Substance
- Извлеките пакет LegacySubstanceExample.unitypackage
Если вы используете Unity 2018, вам необходимо убедиться, что вы устанавливаете плагин Allegorithmic Substance, прежде чем извлекать соответствующий пакет ASE:
- Скачать, импортировать и настроить Substance in Unity
- Перейдите в папку AmplifyShaderEditor\Examples\Official\Substance2018
- Извлеките Substance2018.unitypackage
ASE позволяет использовать вещества прямо или косвенно из редактора. Самый простой способ использования Substance это буквальное перетаскивание объекта Substance в редакторе. Будет создана новый нода Substance Sample с различными текстурами внутри, которые можно использовать где угодно.
Можно настроить Substance для генерации всех текстур и перетаскивать каждую из них независимо, как обычную текстуру. Они сохранят свои ссылки и будут обновляться соответствующим образом, даже если вы регенерируете текстуры.
Также возможно создать общий шейдер, который используется непосредственно в шейдере. Единственное предостережение для этого - дополнительная конфигурация, необходимая в ассете Substance чтобы связать каждый образец текстуры с созданной текстурой. Если требуется более автоматический процесс, то для узла образца текстуры можно настроить использование имени свойства, которое соответствует именам Unity по умолчанию (например: _MainTex for albedos, _SpecGlossMap for specular maps, _MetallicGlossMap for metallic maps, _Glossiness for smoothness maps, _BumpMap for normal maps, _OcclusionMap for occlusion maps, _EmissionMap for emission maps, и т. Д.) Таким образом, ассет Substance обнаружит свойство и автоматически назначит им правильную текстуру без дополнительного вмешательства.
MegaSplat
Встроенная поддержка ASE включена в MegaSplatШейдеры Curved World
Это руководство покажет вам, как интегрировать Curved World с редактором Amplify Shader.Вы можете скачать простой пример здесь.
1. Для первого шага мы собираемся включить файл curvedworld.cginc. На изображении выше обратите внимание, как мы добавили include со строкой: "../cginc/CurvedWorld_Base.cginc", это потому, что наш файл шейдера находился в папке рядом с папкой cginc, где находится файл, поэтому "../" часть строки идет вверх по одной папке, часть "/cginc/" pзаглядывает внутрь папки cginc, а последняя часть - сам файл. Вы можете просто использовать "CurvedWorld_Base.cginc", ЕСЛИ ваш файл шейдера был рядом с этим файлом.
Примечание: Вы должны быть осторожны с этим включением, потому что Unity не позволяет вам автоматически определять, где находится файл по имени, вы должны указать путь к файлу. Если вам случится переместить файл в другую папку, вам придется исправить путь к файлу и перекомпилировать шейдер снова, иначе файл не будет включен. (В качестве альтернативы вы также можете использовать основанный на проекте абсолютный путь: "Assets/VacuumShaders/Curved World/Shaders/cginc/CurvedWorld_Base.cginc". В этом случае вам нужно будет только исправить путь в случае перемещения папки Curved World Shader .)'
2. Во-вторых, чтобы применить эффект Curved World к объекту с помощью своего шейдера, вам нужно вызвать его собственную функцию, которая находится в файле, который мы включили в первый шаг. Чтобы достичь этого, вы должны создать и подключить ноду пользовательского выражения к выходу "local vertex offset" и он должен вызвать Function, которую вы хотите вызвать, в поле кода, которое в данном случае равно "V_CW_TransformPointAndNormal(v.vertex, v.normal,v.tangent);". Обратите внимание на флажок "Call Mode" на панели параметров, его необходимо включить, чтобы этот шаг работал без каких-либо проблем.
Примечание. Если вам необходимо выполнить какое-либо преобразование вершины, вы все равно можете подключить его к входу узла Function.
Это оно! Теперь вы можете использовать все остальное, как в обычном шейдере ASE, и это должно работать в Curved World!
VertExmotion
Пакет VertExmotion включает в себя встроенные узлы для ASE.1.Распакуйте файл 'VertExmotion/Addon/VertExmotion_AmplifyShaderEditorNodes.unitypackage'.
2. Добавьте узел VertExmotion и подключите его к порту входа Local Vertex Offset.
3. Установите для параметра Vertex Output значение «Relative» в параметрах ноды Output.
4. Добавьте файл VertExmotion cginc (Assets/VertExmotion/Shaders/VertExmotion.cginc) в разделе Additional Directives, Includes.
5.Если вы используете тесселяцию, обязательно добавьте ноду VertExmotion (Advanced NC); подключите и Vertex Offset, и Normal к входам ноды Output. (Необязательно)
6.HD SRP вариант включен. (Необязательно)
Общие советы
Мобильные шейдеры
При создании шейдеров для мобильных устройств необходимо учитывать некоторые особые соображения. Обычно эти соображения связаны с производительностью шейдера, но иногда существуют художественные или дизайнерские решения, которые приводят к изменениям, которые необходимы на уровне шейдера:Это просто наиболее распространенный способ создания шейдеров для мобильных устройств:
Rendering Options
Часто игнорируемые параметры рендеринга позволяют отключить некоторые ключевые функции системы освещения Unity. Например, вам может показаться, что вам достаточно отключить систему Unity GI, но при этом поддерживать рабочий процесс PBR..
В этом крайнем примере этого изображения все специальные функции освещения отключены и даже тени отключены. Это может быть не то, что нужно, но это хорошая отправная точка.
Custom Lighting Model
Модель освещения на заказASE позволяет создавать индивидуальные модели освещения шейдеров. Это все еще шейдеры с единой поверхностью, которые позволяют заменять функции единого освещения. В ASE это означает, что вы можете настроить свою модель освещения шейдера на собственное освещение. Выполнение этого преобразует основной выходной узел в тот, который имеет только порты эмиссии и непрозрачности. При этом можно использовать существующие узлы с некоторыми дополнительными легкими узлами для создания оптимизированного и адаптированного шейдера для конкретной цели.
На следующем рисунке показано, как можно создать простой wrapped шейдер Ламберта, который должен быть очень производительным для машин нижнего уровня.
Nodes used: Texture Sample, World Normal, World Space Light Dir, Dot, Multiply Float, Add
Объедините это с предыдущими вариантами рендеринга для дополнительной экономии и обратите внимание на то, как в общих опциях некоторые из них были выключены или выключены для лучшей производительности (например: Shader Model, Precision, Cast Shadows)
В качестве шага обучения, возможно, было бы неплохо проверить образец Toon Ramp, предоставляемый пакетом ASE, в котором более сложным образом используется настраиваемое освещение для создания эффекта Toon Ramp с поддержкой света и теней..
Мобильные дружественные шаблоны
Иногда требуется конкретный вершинный / фрагментный шейдер, который выполняет очень простую работу, например, частицы, спрайты, пользовательский интерфейс и т. Д. В этих и других случаях ASE позволяет внедрить код шейдера в уже существующие шейдеры, которые мы называем " шаблоны». Это обычные вершинные / фрагментирующие шейдеры, которые были модифицированы путем добавления некоторых тегов, которые редактор может прочитать, чтобы знать, куда внедрить новый код и какой код уже существует в шаблоне.Целая страница посвящена тому, как работают эти шаблоны и как вы можете создать свой собственный прямо здесь.
Причина, по которой они могут быть важны для мобильных шейдеров, заключается в том, что эти шаблоны могут быть чрезвычайно простыми практически без кода. Если идея заключается в том, чтобы сохранить производительность, общий неосвещенный шаблон может служить основой для построения, поскольку они доступны для редактирования внутри редактора, а дополнительные функции могут быть добавлены либо путем построения более сложного дерева графиков, либо путем редактирования исходного шаблона. Единственное предостережение в том, что пользователь должен иметь немного знаний о шейдере, чтобы редактировать или создавать оригинальный шаблон шейдера. К счастью, ASE уже предоставляет несколько шаблонов, которые любой пользователь может выбрать и использовать как любой другой шейдер.
Nodes used: Template Parameter, Texture Sample, Grayscale, Float, Lerp
Эта функция все еще находится в разработке, и в будущем будет предоставлено больше этих шаблонов для реализации более сложных или специфических эффектов, когда они станут доступны.
Android
При использовании узла Texture Sampler в ASE, а целевой платформой является Android, он игнорирует параметр масштабирования, который является предполагаемым поведением, поскольку Unity не масштабирует карты нормалей для платформ, которые не поддерживают формат DXT5nm, то есть формат, сжимаемый Unity. нормальные карты в.Хотя это можно исправить путем непосредственного изменения встроенных файлов шейдеров, что затрудняет выполнение и обслуживание, более простое решение состоит в том, чтобы выполнить те же вычисления, что и в Unity с самим редактором.
Следующее изображение и файл шейдера выполняют этот расчет, а также следят за тем, чтобы шейдер по-прежнему работал даже вне среды Android, проверив определяющий символ, который устанавливает Unity. Мы рекомендуем вам создать функцию шейдера с этой логикой, если вам нужно использовать ее в нескольких шейдерах.
Normal Scale in Android
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.