This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Редактор материалов

Material Editor enables you to create your own materials visually without writing a single line of code — simply create and connect nodes building a graph! It is simple enough for users who are new to materials creation and powerful enough to let you do a lot of things. A brief list of features includes:Редактор материалов позволяет визуально создавать собственные материалы без единой строчки кода — просто создавайте ноды и объединяйте их в граф! Он достаточно прост для пользователей, которые плохо знакомы с созданием материалов, и достаточно мощен, чтобы можно было делать множество вещей. Краткий список функций включает в себя:

  • Ability to create your own base materials (.mgraph) and use them as directly assigned to objects or as parent materials for hundreds of other materials to avoid reassembling the material graph over and over again. The Materials hierarchy window will help you.Возможность создавать собственные базовые материалы (.mgraph) и использовать их как непосредственно назначенные объектам или как исходные материалы для сотен других материалов, чтобы избежать повторной сборки графа материала. Вам поможет окно иерархии материалов.
  • Ability to create your own custom graph nodes using other nodes (Subgraphs), or using your code. When you change the contents of a Subgraph, all materials using it will be updated as well.Возможность создавать собственные пользовательские ноды графа, используя другие ноды (Подграфы) или код. Когда вы изменяете содержимое подграфа, все материалы, использующие его, также обновятся.
  • Ability to switch between material types (there are five available at the moment: Mesh Opaque PBR, Mesh Alpha Test PBR, Mesh Transparent PBR, Mesh Transparent Unlit, Decal PBR).Возможность переключения между типами материалов (на данный момент доступно пять: Mesh Opaque PBR, Mesh Alpha Test PBR, Mesh Transparent PBR, Mesh Transparent Unlit, Decal PBR).
  • Optional toggling of performance-affecting features on and off.Возможность подключения и отключения функций, влияющих на производительность.
  • Ability to construct the final material's UI, you can add various parameters and even combine them into groups for convenience.Возможность создания пользовательского интерфейса конечного материала, вы можете добавлять различные параметры и даже объединять их в группы для удобства.
  • Connector — a special 'collapsed' mode of a graph node when it occupies less space and can be attached right to an input of another graph node.Connector — особый "свернутый" режим ноды графа, когда она занимает меньше места и может подключаться прямо ко входу другой ноды графа.
  • Expression — a special node enabling you to write simple arithmetic operations, but the main thing is that you can use it as a swizzle in combination with the ability to change the number of data components. Be sure you'll like it!Expression — специальная нода, позволяющая писать простые арифметические операции, но главное, что ее можно использовать как swizzle в сочетании с возможностью изменения количества компонентов данных. Вам это точно понравится!
  • Ability to write code in a special Function node, here you can implement even multiple functions calling each other.Способность написать код в специальной ноде Function, здесь можно реализовать даже несколько функций, вызывающих друг друга.
  • You can drag-n-drop textures from the Asset Browser or directly from your file manager, and they will be automatically imported with the corresponding nodes added to the graph.Вы можете перетаскивать текстуры из Asset Browser или напрямую из вашего файлового менеджера, и они будут автоматически импортированы с соответствующими нодами, добавленными к графу.
  • Loops — a complex, but very cool feature enabling you to repeat an arbitrary sequence of actions multiple times. We have analyzed multiple existing implementations of graph loops and invented a new one that is almost on par with loops in code. Why not write loops in code then? Because using a graph makes implementation of complex things inside a loop much easier than doing the same in code.Циклы — сложная, но очень крутая функция, позволяющая многократно повторять произвольную последовательность действий. Мы проанализировали несколько существующих реализаций циклов графа и изобрели новую, которая почти не уступает циклам в коде. Почему бы тогда не написать циклы в коде? Потому что использование графа значительно упрощает реализацию сложных вещей внутри цикла по сравнению с кодом.
  • When working with complex or large graphs, you may end up with your wires are all over the place crisscrossing each other and you may want more visual clarity. That's when portals come into play. You can connect a wire to a Portal In node at one location and then place a Portal Out node at any other location you need and take what you've supplied to Portal In from a Portal Out (like you dug a tunnel for your wire under the node graph).При работе со сложными или большими графами вы можете столкнуться с пересечением большого количества соединений, и вам понадобится больше визуальной ясности. Вот когда порталы вступают в игру. Вы можете подсоединить ребро к ноде Portal In в одном месте, а затем разместить ноду Portal Out в любом другом месте, которое вам нужно, и взять то, что вы передали в Portal In, из Portal Out (как будто вы вырыли туннель для своего провода под графом).

See AlsoСмотрите также#

Material Graph AssetАссет графа материала#

A Material Graph asset (.mgraph) is both a source material network (node-based description to be compiled into a material) and a normal base material that can be assigned to a mesh surface.Ресурс Material Graph (.mgraph) представляет собой как сеть исходных материалов (описание на основе нод, которое компилируется в материал), так и обычный базовый материал который может быть назначен на поверхность меша.

To create a new Material Graph, right-click in the Asset Browser to open the Create menu, then select Create Material -> Material Graph.Чтобы создать новый граф материала, щелкните правой кнопкой мыши Asset Browser, чтобы открыть меню Create, затем выберите Create MaterialMaterial Graph.

Specify a name for your graph asset. A new *.mgraph asset will be created in the current folder of your project.Укажите имя для вашего ассета графа. Новый ассет *.mgraph будет создан в текущей папке вашего проекта.

As the Material Graph asset represents a base material, it is also available in the root of the Materials Hierarchy and can be assigned to supported surfaces and objects. Depending on the material's type it can be assigned to the following objects:Поскольку ассет Material Graph представляет собой базовый материал, он также доступен в корне Materials Hierarchy и может быть назначен на поддерживаемые поверхности и объекты. В зависимости от типа материала его можно назначить на следующие объекты:

Working with Material GraphsРабота с графами материалов#

Right-click on the *.mgraph asset and choose Edit Graph or simply double-click the asset to open it in the Material Editor window.Щелкните правой кнопкой мыши ассет *.mgraph и выберите Edit Graph или просто дважды щелкните по ассету, чтобы открыть его в окне Material Editor.

The Material Editor window includes the Graph View displaying the material graph network and the settings panel.Окно Material Editor включает в себя окно Graph View, в котором отображаются сеть графа материала и панель настроек.

The material graph network consists of nodes — functional blocks accountable for processing input data. By composing the graph network, you define the look of your material.Сеть графа материала состоит из нод — функциональных блоков, отвечающих за обработку входных данных. Составляя сеть графов, вы определяете внешний вид материала.

The Material node is the master node of your material. It provides a set of inputs for graphic data and generates a material of a specific type depending on the current settings.Нода Material является главной нодой материала. Она предоставляет набор входных данных для графических данных и генерирует материал определенного типа в зависимости от текущих настроек .

Finally, the output from the Master Node is connected to the Final node — the primary output material node.Наконец, выход Мастер-ноды подключается к ноде Final — основной выходной ноде материала.

Примечание
A material graph can contain several Material nodes, but only the one connected to the Final node will be used.Граф материала может содержать несколько нод Material, но будет использоваться только тот, который подключен к ноде Final.

Press the Save button to save changes and compile the material graph to a base material. Compilation errors, if any, will be listed in the Warnings and Errors panel and in the Console window.Нажмите кнопку Save, чтобы сохранить изменения и скомпилировать граф материала в базовый материал. Ошибки компиляции, если таковые имеются, будут перечислены в панели Предупреждения и ошибки и в окне Console.

Navigation ControlsНавигация#

Mouse Wheel drag Pan material graphСдвиг графа материала
Mouse Wheel scroll Zoom in/outУвеличение/уменьшение масштаба
RMB / Space key Display node creation paletteПоказать панель создания нод
LMB click Select node / edgeВыбор ноды/ребра
LMB drag on background Select nodes with the rectangle toolВыделение нод с помощью инструмента «Прямоугольник»
Shift + LMB on node Add to node selectionДобавить ноду к текущему выделению
Ctrl + LMB on node Remove from node selectionУдалить ноду из текущего выделения
LMB drag on node Move the selected nodesПереместить выбранные ноды
Ctrl + C Copy the selected nodes to the clipboardСкопировать выбранные ноды в буфер обмена
Ctrl + V Paste nodes from the clipboardВставить ноды из буфера обмена
Ctrl + D Clone the selected nodesКлонировать выбранные ноды
Delete Key Delete the selected nodes / edgeУдалить выбранные ноды/ребра
Примечание
Copying and pasting networks of nodes is performed via a text format for convenient sharing of material graphs and their parts, so you can copy a shared text representation of a graph network and paste it right to your material editor.Копирование и вставка нод выполняется в текстовом формате для удобного совместного использования графов материалов и их частей, поэтому вы можете скопировать общее текстовое представление сети графов и вставить его прямо в редактор материалов.

Common SettingsОбщие настройки#

The Common Settings define the set of supported features for the material.Общие настройки определяют набор поддерживаемых свойств материала.

Type

The type of the output material:Тип выходного материала:

  • Physically-based mesh materials: Материалы физически корректного меша:

    • Mesh Opaque PBRdeferred opaque materialMesh Opaque PBR — непрозрачный материал с отложенным рендерингом;
    • Mesh Alpha Test PBRdeferred alpha test materialMesh Alpha Test PBR — альфа-тестовый материал с отложенным рендерингом;
    • Mesh Transparent PBRforward (transparent) materialMesh Transparent PBR — (прозрачный) материал с прямым рендерингом.
  • Mesh Transparent Unlit — transparent non-physical material; Mesh Transparent Unlit — прозрачный нефизический материал;
  • Decal PBRdeferred decal material. Decal PBR — материал декали с отложенным рендерингом.
Vertex Mode

Defines the mode for vertex adjustment and tessellation inputs:Определяет режим для корректировки вершин а также входы для тесселяции:

  • Position — vertex positions are replaced by new values.Position — позиции вершин заменяются новыми значениями.
  • Offset — new values are added to original vertex positions.Offset — к исходным позициям вершин добавляются новые значения.
Vertex Space

Defines the vector space for vertex adjustment and tessellation. Options depend on the Vertex Mode selected:Определяет векторное пространство для корректировки вершин и тесселяции. Варианты зависят от выбранного Vertex Mode:

  • Position Vertex Mode:
    • Camera World — positions are relative to the camera position.Camera World — позиции относительно позиции камеры.
    • Object — positions are relative to the object's pivot.Object — позиции относительно оси объекта.
    • View — positions are relative to the camera.View — позиции относительно камеры.
    • Absolute World — positions are relative to the world origin.Absolute World — позиции относительно начала мира.
  • Offset Vertex Mode:
    • World — offsets are relative to the world origin.World — смещения относительно начала координат мира.
    • Object — offsets are relative to the object's pivot.Object — смещения относительно оси объекта.
    • Tangent — offsets are relative to the surface tangent.Tangent — смещения относительно касательной к поверхности.
    • View — offsets are relative to the camera.View — смещения относительно камеры.
Normal Space

Defines the space for normal vectors:Определяет пространство для векторов нормалей:

  • World;
  • Object;
  • Tangent;
  • View.
Depth Mode

Defines how the Depth data is treated:Определяет, как обрабатываются данные глубины:

  • Offset;
  • Override.
Depth Shadow Flag indicating whether custom depth affects shadows.Флаг, указывающий, влияет ли изменение глубины на тени.
Tessellation Enables the Tessellation-related inputs and Tessellation settings.Включает входы для параметров тесселяции и настройки тесселяции.
Two Sided Enables the Two Sided option.Включает опцию Two Sided.
Write Velocity Offset Enables the Velocity input.Включает вход Velocity.
Advanced Mode Enables the Compilation Settings.Включает настройки компиляции.

Transparent Material SettingsНастройки прозрачного материала#

The following settings are available only for the Mesh Transparent PBR and Mesh Transparent Unlit material types.Следующие настройки доступны только для типов материалов Mesh Transparent PBR и Mesh Transparent Unlit.

Blend Mode

Blending preset. One of the following can be selected:Набор предустановок смешивания. Можно выбрать один из следующих:

  • Alpha blend;
  • Additive;
  • Multiplicative;
  • Disabled;
  • Custom.
Blend Src Option used to scale the source color (the color of an overlaying material). Available only when Custom preset is selected.Опция, используемая для масштабирования исходного цвета (цвет накладываемого материала). Доступно только при выборе предустановки Custom.
Blend Dest Option used to scale the destination color (the color of an obscured material). Available only when Custom preset is selected.Параметр, используемый для масштабирования целевого цвета (цвет скрытого материала). Доступно только при выборе предустановки Custom.
Overlap Enables the Overlap option.Включает параметр Overlap.
Depth Test Enables the Depth Test option.Включает параметр Depth Test.
Depth Write Enables the Depth Write option.Включает параметр Depth Write.
Participate in PostEffects Enables the Post Processing options.Включает параметры Post Processing.

Decal Material SettingsНастройки материала декали#

The following settings are available only for the Decal PBR material types.Следующие настройки доступны только для типов материалов Decal PBR.

Normal Under Decal

Defines the tangent space (Tangent-Binormal-Normal matrix) used for normal mapping:Определяет касательное пространство (матрицу Tangent-Binormal-Normal), используемое для отображения нормалей:

  • Take From Decal Mesh — normals of the decal mesh (for Mesh decals) or plane (for Orthographic and Projected decals) are used;Take From Decal Mesh — используются нормали меша декаля (для декалей Mesh) или плоскости (для декалей Orthographic и Projected);
  • Up Direction of Decal — decal's local up vector is used;Up Direction of Decal — используется локальный вектор декали, направленный вверх;
  • GBuffer Normal — normals from the screen normal buffer are used;GBuffer Normal — используются нормали из буфера экранных нормалей ;
  • GBuffer Depth Based Normal — normals are constructed based on the screen depth buffer content. Unlike GBuffer Normal, this option provides unaltered normals as they are presented in the scene geometry.GBuffer Depth Based Normal — нормали строятся на основе содержимого буфера глубины экрана. В отличие от GBuffer Normal, эта опция обеспечивает неизменяемые нормали в том виде, в каком они представлены в геометрии сцены.
Normal Blend Mode

Blending mode for decal's normals:Режим смешивания для нормалей декалей:

  • Alpha Blend;
  • Additive.
Screen Projection Enables Screen Projection of the decal instead of projecting it onto a surface (only Mesh decals are supported).Включает проекцию декали на экран вместо проецирования ее на поверхность (поддерживаются только надписи Mesh).

Compilation SettingsНастройки компиляции#

These settings are only for the Direct3D compiler (DirectX API).Эти настройки предназначены только для компилятора Direct3D (API DirectX).

Внимание
It is not recommended to make changes to the default values without understanding these settings.Не рекомендуется изменять значения по умолчанию без понимания этих настроек.
Optimization Level

Level of shader optimization and arithmetic refactoring (such as merging a multiply instruction followed by an add into a fused mad): Уровень оптимизации шейдеров и арифметического рефакторинга (например, слияние инструкции multiply, за которой следует add, в объединенный mad):

  • The level 0 means no optimization at all. Compilation is fast and provides the slowest code.Уровень 0 означает полное отсутствие оптимизации. Компиляция выполняется быстро и выдает самый медленный код.
  • The other levels correspond to gradually increasing extent of optimization up to the highest level 4.Остальные уровни соответствуют постепенно увеличивающейся степени оптимизации до самого высокого уровня 4.
Warning Mode

The following modes are available: Доступны следующие режимы:

  • Disable — warnings are disabled.Disable — предупреждения отключены;
  • Soft — warnings are logged but ignored.Soft — предупреждения выводятся в лог, но игнорируются;
  • Hard — warnings are considered errors.Hard — предупреждения считаются ошибками.
IEEE Strictness Forces the IEEE strict compile.Принудительно выполняет строгую компиляцию IEEE.

ParametersПараметры#

In the Parameters panel, you define the list of material parameters.В панели Parameters определяется список параметров материала.

The following controls are available:Доступны следующие элементы управления:

  • Add — add a new parameter. Add — добавить новый параметр.
  • Clone — clone the selected parameter. Clone — клонировать выбранный параметр.
  • Move Up — move the selected parameter up in the list. Move Up — переместить выбранный параметр вверх по списку.
  • Move Down — move the selected parameter down in the list. Move Down — переместить выбранный параметр вниз по списку.
  • Remove — remove the selected parameter. Remove — удалить выбранный параметр.

When adding a new parameter, you should specify the parameter's Name, Type, and default settings in the parameter creation dialog. The following set of parameter types is provided:При добавлении нового параметра вы должны указать имя параметра, тип и настройки по умолчанию в диалоге создания параметра. Предусмотрен следующий набор типов параметров:

  • Slider — a float value within the specified range ([0.0f; 1.0f] by default).Slider — значение с плавающей запятой в указанном диапазоне (по умолчанию [0.0f; 1.0f]).
  • Color — a float vector of 4 components representing a color value.Color — вектор с плавающей запятой из 4 компонентов, представляющих значение цвета.
  • Texture2D, Texture3D, Texture2DArray, Texture2DInt, TextureCube — a texture of the corresponding type.Texture2D, Texture3D, Texture2DArray, TextureCube — текстура соответствующего типа.
  • Group — an auxiliary type for grouping parameters. Use the and buttons to rearrange and group parameters.Group — вспомогательный тип для группировки параметров. Используйте кнопки и для изменения порядка и группировки параметров.
  • Float, Float2, Float3, Float4 — a float value or a vector of N float values.Float, Float2, Float3, Float4 — значение с плавающей запятой или вектор из N значений с плавающей запятой.
  • Int, Int2, Int3, Int4 — an integer value or a vector of N integer values.Int, Int2, Int3, Int4 — целочисленное значение или вектор из N целочисленных значений.

To use a parameter in your material graph, drag the item to the Graph View to create a node of the corresponding type:Чтобы использовать параметр в графе материала, перетащите элемент в Graph View, чтобы создать ноду соответствующего типа:

Warnings and ErrorsПредупреждения и ошибки#

The Warnings and Errors panel enables you to track problems in the material graph and is visible only if there are any.Панель Warnings and Errors позволяет отслеживать проблемы на графе материала и видна только в том случае, если они есть.

The panel lists all problem nodes in the graph, select an entry to see the problems with its ports or data in the Message section.Панель перечисляет все проблемные ноды в графе; выберите запись, чтобы увидеть проблемы с портами или данными в разделе Message.

Some warnings may appear after migrating your content to a higher SDK version. These are reminder warnings meant to notify about changes in the logic of certain nodes. You can discard the warning by using the Remove Warning button.Некоторые предупреждения могут появляться после переноса контента на более позднюю версию SDK. Это предупреждения-напоминания, предназначенные для уведомления об изменениях в логике определенных нод. Вы можете отказаться от предупреждения, нажав кнопку Remove Warning.

NodesНоды#

Nodes of Material Editor are functional blocks that represent data sources and processing instructions similar to variables and functions in shader programming.Ноды редактора материалов — это функциональные блоки, представляющие источники данных и инструкции по обработке, аналогичные переменным и функциям в программировании шейдеров.

Most nodes have the output preview shown on a preview sphere (for most nodes) or a plane (for textures).У большинства нод предварительный просмотр вывода отображается на сфере предварительного просмотра (для большинства нод) или на плоскости (для текстур).

Some nodes have a set of settings defining their behavior. Double-clicking the node opens the dialog for adjustment of the node's settings.Некоторые ноды имеют набор настроек, определяющих их поведение. Двойной щелчок по ноде открывает диалоговое окно для настройки ее параметров.

Nodes that have no more than one input and one output port have a special connector mode — they are collapsible for convenience. A collapsed node connected to another node becomes attached to it. Drag the collapsed node to break the connection and detach the node.Ноды, имеющие не более одного входного и одного выходного порта имеют специальный режим коннектора — для удобства они сворачиваются . Свернутая нода, соединенная с другой нодой, становится присоединенной к ней. Перетащите свернутую ноду, чтобы разорвать соединение и отсоединить ноду.

Nodes are split into several groups based on their applicability and color-coded for better identification.Ноды разделены на несколько групп на основании их применимости и имеют цветовую кодировку для более удобной идентификации.

PortПорт#

A port defines an input (left side) or output (right side) of a node. Connecting edges to a port allows data to flow through the Material Graph node network.Порт определяет вход (слева) или выход (справа) ноды. Подключение ребра к порту позволяет данным проходить по сети нод графа материалов.

Each port has a data type defining edges that can be connected to it. All data types are color-coded, meaning that each of them has an associated color used for identification.Каждый порт имеет тип данных, определяющий ребра, которые могут быть к нему подключены. Все типы данных имеют цветовую кодировку, что означает, что каждый из них имеет соответствующий цвет, используемый для идентификации.

float float float2 float2 float3 float3 float4 float4
int int int2 int2 int3 int3 int4 int4
matrix — a matrix of float values: float2×2, float3×3, float4×4. matrix — матрица значений с плавающей запятой: float2×2, float3×3, float4×4 .
texture — any type of a texture: Texture 2D, Texture 3D, Texture 2D Array, Texture 2D Int and Texture Cube. текстура — любой тип текстуры: Texture 2D, Texture 3D, Texture2DArray а также Texture Cube.
bool — a boolean value used in logical nodes and loops. bool — логическое значение, используемое в логических нодах, а также циклах.
any — arbitrary data type meaning the port supports several data types. any — произвольный тип данных, означающий, что порт поддерживает несколько типов данных.
error — indicates an error (e.g., no required input provided or type conversion has failed). error — указывает на ошибку (например, не введены необходимые данные или не удалось выполнить преобразование типа).

Only one edge can be connected to any input port, but you can connect multiple edges to an output port.К любому входному порту можно подключить только одно ребро, но к выходному порту можно подключить несколько ребер.

Most input ports have a default input value.Большинство входных портов имеют входное значение по умолчанию .

EdgeРебро#

An edge represents a connection between two ports (input and output). Edges define how data flows through the Material Graph node network. You can only connect an edge from an output port to an input port.Ребро представляет собой соединение между двумя портами (вход и выход). Ребра определяют, как данные проходят через сеть нод Material Graph. Вы можете подключить ребро только от выходного порта к входному порту.

A new edge is created by dragging from the desired output port to the desired input port or vice versa. To remove an edge select it with the left click and hit Delete.Новое ребро создается путем перетаскивания из нужного выходного порта в желаемый входной порт или наоборот. Чтобы удалить ребро, выберите его левым щелчком и нажмите Delete.

Port AdaptersАдаптеры портов#

Port adapter is a feature giving you the ability to select data components in an arbitrary order, combine and rearrange them, providing convenient access to elements and a lot of flexibility. It is available for the following data types:Адаптер порта — это функция, дающая вам возможность выбирать компоненты данных в произвольном порядке, комбинировать и переупорядочивать их, обеспечивая удобный доступ к элементам и большую гибкость. Он доступен для следующих типов данных:

  • bool;
  • float, float2, float3, float4;
  • int, int2, int3, int4.

When you drag a new edge to an input port, a number of available connection options shall appear:Когда вы перетаскиваете новое ребро на входящий порт, появляется ряд доступных вариантов подключения:

  • The = option provides the direct connection in the case the input type can provide all needed data components.Опция = обеспечивает прямое соединение в случае, если тип ввода может предоставить все необходимые компоненты данных.
  • Selecting another option creates an Expression node accountable for type conversion.При выборе другого параметра создается нода Expression, отвечающая за преобразование типов.

You can change the adapter later by double-clicking the expression and editing the field. The Expression node enables you to write simple arithmetic operations and even use the Unigine Graphic API.Адаптер можно изменить позже, дважды щелкнув выражение и отредактировав поле. Нода Expression позволяет вам писать простые арифметические операции и даже использовать графический API Unigine.

Adding New NodesДобавление новых нод#

In order to add a new node, right-click on the background or press Space and select a node type from the palette or type its name in the Search field to find it.Чтобы добавить новую ноду, щелкните правой кнопкой мыши фон или нажмите пробел и выберите тип ноды из панели или введите ее имя в поле Search.

Dragging an edge from an input port opens a node creation palette with a pre-set filter to the required data type for the corresponding port.Перетаскивание ребра из входного порта открывает панель создания нод с предустановленным фильтром на требуемый тип данных для соответствующего порта.

Textures can be dragged directly from the Asset Browser. In this case, a Sample Texture node with corresponding settings will be added automatically.Текстуры можно перетаскивать прямо из Asset Browser. В этом случае будет автоматически добавлена нода Sample Texture с соответствующими настройками.

LoopsЦиклы#

Sometimes you need to perform certain actions multiple times, cloning the relevant groups of nodes will make your graph overcomplicated very quickly, even if only 10 iterations are required. In UNIGINE, you can create loops for that, just like in programming. Иногда нужно выполнить определенные действия несколько раз, но клонирование соответствующих групп нод очень быстро сделает ваш граф слишком сложным, даже если требуется всего 10 итераций. В UNIGINE для этого можно создавать циклы, как и в программировании.

To create a loop, add the Loop Begin and Loop End nodes and connect their Loop ports.Чтобы создать цикл, добавьте ноды Loop Begin и Loop End и соедините их порты Loop.

To add changing variables to the loop, connect nodes with starting values to the Add port of the Loop Begin node. By double-clicking the Loop Begin node, you can open the Input Constructor enabling you to rearrange, rename, delete existing inputs and implicitly set their type as well as set the maximum number of iterations.Чтобы добавить в цикл изменяющиеся переменные, подключите ноды с начальными значениями к порту Add ноды Loop Begin. Дважды щелкнув по ноде Loop Begin, вы можете открыть конструктор ввода, позволяющий переупорядочивать, переименовывать, удалять существующие входы и неявно задавать их тип, а также устанавливать максимальное количество итераций .

Then, build a graph implementing the functionality of a single iteration, the result of which should be passed to the Loop End node for further iterations. You can use the result of all iterations further in your graph.Затем постройте граф, реализующий функционал одной итерации, результат которого необходимо передать ноде Loop End для последующих итераций. Вы можете использовать результат всех итераций дальше в графе.

You can use the Index of the current iteration and the Maximum Iterations values in your logic. The Index starts with 0 and is equal to Maximum Iterations-1 at the last iteration.Вы можете использовать значения Index текущей итерации и значения Maximum Iterations в своей логике. Index начинается с 0 и равняется Maximum Iterations-1 на последней итерации.

Here's an example of a simple loop, incrementing a value by 0.1 10 times:Вот пример простого цикла, увеличивающего значение на 0,1 10 раз:

The Loop End node has the break input port that takes a boolean value, false by default. Passing a truth value (e.g., obtained via Logical Nodes) will interrupt the loop and exit the current iteration.Нода Loop End имеет входной порт break, который принимает логическое значение, по умолчанию false. Передача значения истинности (например, полученного с помощью логической ноды) прервет цикл и выйдет из текущей итерации.

Custom CodeПользовательский код#

No matter how advanced the materials system is, you might want something specific, maybe too complicated to implement via basic nodes. Or sometimes, it might be quicker to write several lines of code for mathematical operations instead of spawning a bunch of nodes and connecting them. The solution is simple — create a Function node and wrap any shader function into it. Input and output ports for the node shall be automatically generated according to the function's signature.Независимо от того, насколько продвинута система материалов, вам может понадобиться что-то особенное, возможно, слишком сложное для реализации с помощью базовых нод. Или иногда может быть быстрее написать несколько строк кода для математических операций, чем создавать кучу нод и соединять их. Решение простое — создайте ноду Function и оберните в нее любую шейдерную функцию. Входные и выходные порты для ноды должны автоматически генерироваться в соответствии с сигнатурой функции.

To add or edit code to the node double-click on the node, the Code Editor window will open. You can write as many functions as you need, the last function in the code will be considered the main one.Чтобы добавить или отредактировать код в ноде, дважды щелкните по ней, откроется окно редактора кода . Вы можете написать столько функций, сколько вам нужно, последняя функция в коде будет считаться основной.

PortalsПорталы#

Sometimes, especially in complex material graphs, there are too many crisscrossing edges making the whole graph look like a spiderweb, and the data flow very hard to understand. A portal is a set of special nodes including a single input and one or more outputs, all having the same name. Portals serve to reduce the number of edges and make the graph more 'readable'.Иногда, особенно в графах сложных материалов, слишком много пересекающихся ребер делают весь граф похожим на паутину, а поток данных очень трудно понять. Портал — это набор специальных нод, включающий один вход и один или несколько выходов, имеющих одинаковое имя. Порталы служат для уменьшения количества ребер и делают граф более «читабельным».

To create a portal, start with adding a Portal In node. Connect an input to the new node and double-click on it to adjust its color and name.Чтобы создать портал, начните с добавления ноды Portal In. Подключите вход к новой ноде и дважды щелкните по ней, чтобы настроить его цвет и имя.

And then you can create as many Portal Out nodes as you need. By double-clicking on a Portal Out node you can select the name of the desired input portal in case several portals are used.И тогда вы можете создать столько нод Portal Out, сколько вам нужно. Двойным щелчком по ноде Portal Out можно выбрать имя нужного входного портала, если используется несколько порталов.

SubgraphsПодграфы#

A Subgraph is a special type of material graph, which can be referenced from inside other material graphs. This can be very useful when the same operations are to be performed multiple times in a single graph or across multiple graphs. You simply pack these operations into a box with a set of inputs and outputs and then use this box anywhere you need. A Subgraph differs from a Material Graph in three main ways:Подграф — это особый тип графа материала, на который можно ссылаться внутри других графов материала. Это может быть очень полезно, когда одни и те же операции должны выполняться несколько раз в одном графе или в нескольких графах. Вы просто упаковываете эти операции в коробку с набором входов и выходов и затем используете эту коробку везде, где вам нужно. Есть три основных отличия подграфа от графа материала:

  • A Subgraph does not generate any material, it is used as a building block in material graphs.Подграф не создает никакого материала, он используется в качестве строительного блока в графах материалов.
  • A Subgraph does not have Material and Final nodes. Instead, it has two nodes called Inputs and Outputs, defining all input and output ports.Подграф не имеет нод Material и Final. Вместо этого у него есть две ноды с именами Inputs и Outputs, определяющие все входные и выходные порты.
  • A Subgraph is stored in a *.msubgraph asset.Подграф хранится в ассете *.msubgraph.

Basically, the process of construction of a Subgraph is the same as when you create a Material Graph.По сути, процесс построения подграфа такой же, как и при создании графа материала.

To create a new Subgraph, right-click in the Asset Browser to open the Create menu, then select Create Material -> Material Graph.Чтобы создать новый подграф, щелкните правой кнопкой мыши в Asset Browser, чтобы открыть меню Create, затем выберите Create Material -> Material Graph.

Click Save to apply and save changes.Нажмите Save, чтобы применить и сохранить изменения.

All subgraphs are automatically added to the palette, so if your start typing a name of such a subgraph in the search field of the node creation palette, it will be displayed in the list.Все подграфы автоматически добавляются в панель создания нод, поэтому, если вы начнете вводить имя такого подграфа в поле поиска панели создания нод, то он будет отображаться в списке.

Configuring Inputs and OutputsНастройка входов и выходов#

Double click on the Inputs node or the Outputs node to open the constructor panel enabling you to add, rearrange, delete and set the name and type of input and output ports of the subgraph correspondingly.Дважды щелкните по ноде Inputs или ноде Outputs, чтобы открыть панель конструктора, позволяющую добавлять, переупорядочивать, удалять и устанавливать имя и тип входных и выходных портов подграфа соответственно.

By connecting nodes to the ports of the Inputs node, you specify the optional ports of the subgraph having default values.Подключая ноды к портам Inputs, вы указываете необязательные порты подграфа, имеющие значения по умолчанию.

Using SubgraphsИспользование подграфов#

To add a subgraph to your material graph currently opened in the Editor, simply find it by name in the node creation palette or drag it from the Asset Browser, or you can add the Sub Graph node to your graph network, specify the *.msubgraph asset by double-clicking the node, and connect necessary edges to input and output ports of the subgraph.Чтобы добавить подграф к графу материала, открытому в данный момент в Редакторе, просто найдите его по имени в панели создания нод либо перетащите его из Asset Browser, либо вы можете добавить ноду Sub Graph в свою сеть графа, указать ассет *.msubgraph, дважды щелкнув по ноде, и подключить необходимые ребра к входным и выходным портам подграфа.

There is a set of core subgraphs implementing basic functionality (like contrast, refract, object_triplanar, etc.) stored in the core/subgraphs folder.Существует набор основных подграфов, реализующих основные функции (например, contrast, refract, object_triplanar и т. д.), которые хранятся в папке core/subgraphs.

Последнее обновление: 23.06.2023
Build: ()