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)
VR Development
Двойная точность координат
API
Animations-Related Classes
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
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы

Состояния

State allows you to set a mode for rendering passes and a value for rendering options. States change a set of generated definitions passed to shaders, so any changes made to a state cause shaders recompilation. A material state generates defines for shaders only if the state meets the conditions. You can specify your own states or use and specify values for UNIGINE's internal states.Состояние позволяет вам установить режим для проходов рендеринга и значение для параметров рендеринга. Состояния изменяют набор сгенерированных определений, передаваемых шейдерам, поэтому любые изменения, внесенные в состояние, вызывают перекомпиляцию шейдеров. Состояние материала генерирует определения для шейдеров только в том случае, если состояние соответствует условиям. Вы можете указать свои собственные состояния или использовать и указать значения для внутренних состояний UNIGINE.

The syntax is the following:Синтаксис следующий:

ULON
StateType state_name = value(s)

You can acces states in the shader using the following defines:Вы можете получить доступ к состояниям в шейдере, используя следующие определения:

UUSL
GET_STATE_<state name in uppercase> = value // for all states

STATE_<state name> // if the state value is bigger than 0 (for example, StateToogle)

STATE_<state name>_<name of an element from the items array> // for State and StateSwitch

To change the state's values use the corresponding API methods.Чтобы изменить значения состояния, используйте соответствующие методы API .

Types of StatesТипы состояний#

  • StateToggle (bool) — a switch that enables/disables the stateStateToggle (bool) — переключатель, который включает/выключает состояние
  • StateSwitch (integer) — a multiple-value switch based on array of items (mandatory argument)StateSwitch (integer) — многозначный переключатель на основе массива элементов (обязательный аргумент)
  • StateInt (integer) — a state with an integer number (used to pass the state value via the API to the shader)StateInt (integer) — состояние с целым числом (используется для передачи значения состояния через API в шейдер)
  • State — auto detection of the state type (if the items argument is present, then StateSwitch; otherwise StateToggle)State — автоопределение типа состояния (если присутствует аргумент items, то StateSwitch; иначе StateToggle)

Usage ExamplesПримеры использования#

Suppose we got the base material with these states defined:Предположим, мы получили базовый материал с такими определенными состояниями:

ULON
BaseMaterial 
{
	State my_state_switch = 4 <items = [a b c d e]> // or StateSwitch my_state_switch = 4 <items = [a b c d e]>
	State my_state_toggle = 1
	StateInt my_state_int = 256 <internal = true>
}

Then the following defines are available in the shaders:Тогда в шейдерах доступны следующие определения :

UUSL
#define GET_STATE_MY_STATE_SWITCH 4
#define GET_STATE_MY_STATE_TOGGLE 1
#define GET_STATE_MY_STATE_INT 256

#ifdef STATE_MY_STATE_SWITCH_A
    /* some UUSL code */
#elif  STATE_MY_STATE_SWITCH_B
    /* some UUSL code */
#elif  STATE_MY_STATE_SWITCH_E
    /* some UUSL code */
#endif

#ifdef STATE_MY_STATE_TOGGLE
    /*some UUSL code*/
#endif

int my_state_int = GET_STATE_MY_STATE_INT;

ArgumentsАргументы#

editableeditable#

Boolean

A flag indicating if state can be changed in the Parameters window or via API.Флаг, указывающий, можно ли изменить состояние в окне Parameters или через API .

Available values:Доступные значения:

  • false — unchangeablefalse — неизменяемый
  • true — changeable (by default)true — изменяемый (по умолчанию)

titletitle#

String

Title for the Editor.Название для редактора.

tooltiptooltip#

String

Tooltip for the Editor.Подсказка для редактора.

switch_groupswitch_group#

String

Sets this state to be responsible for the toggle of the specified group.Устанавливает, что это состояние отвечает за переключение указанной группы.

hiddenhidden#

Boolean

A flag indicating if the state is hidden in the Editor.Флаг, указывающий, скрыто ли состояние в редакторе.

Available values:Доступные значения:

  • false — shows the state in the Editorfalse — показывает состояние в Редакторе
  • true — hides the state in the Editortrue — скрывает состояние в Редакторе

internalinternal#

Boolean

A flag indicating if the state is hidden in the Editor and the state values are not saved for the inherited materials.Флаг, указывающий, скрыто ли состояние в редакторе и не сохраняются ли значения состояния для унаследованных материалов.

Available values:Доступные значения:

  • false — shows the state in the Editor and saves the state values for the inherited materialsfalse — показывает состояние в Редакторе и сохраняет значения состояния для унаследованных материалов
  • true — hides the state in the Editor and does not save the state values for the inherited materialstrue — скрывает состояние в Редакторе и не сохраняет значения состояния для унаследованных материалов

itemsitems#

Array of StringsМассив строк

Items used for the StateSwitch type.Предметы, используемые для типа StateSwitch.

passpass#

Массив строк

Specifies what passes use this state.Указывает, какие проходы используют это состояние.

Available values:Доступные значения:

Примечание

To make one or more passes use this state, write passes in square brackets and separate them with spaces. For example:Чтобы один или несколько проходов использовали это состояние, напишите проходы в квадратных скобках и разделите их пробелами. Например:

ULON
State wireframe_antialiasing <pass=[wireframe post custom_pass_name]>
Последнее обновление: 06.04.2022
Build: ()