This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Professional (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Nodes
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Materials and Shaders
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
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Проходы

Specifies shaders and their defines to be used during the specific pass. The shaders are compiled for the specified render pass using the defines specified in attributes.Указывает шейдеры и их определения, которые будут использоваться во время определенного прохода. Шейдеры компилируются для указанного прохода рендеринга с использованием определений, указанных в атрибутах.

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

ULON
Pass render_pass_name
{
	Vertex = deferred_shader
	Fragment = deferred_shader
}
Примечание
You can specify various types of shaders in the pass (see the list of available shaders in UNIGINE).В проходе можно указать различные типы шейдеров ( посмотреть список доступных шейдеров в UNIGINE).

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

UUSL
PASS_<pass name>

Types of PassesТипы проходов#

  • custom_pass_name (string) — name of a custom rendering pass (up to 32 custom passes are supported)custom_pass_name ( строка ) — имя пользовательского прохода рендеринга (поддерживается до 32 пользовательских проходов)
  • wireframewireframe passwireframe - wireframe проход
  • visualizer_solidvisualizer solid passvisualizer_solid — сплошной проход visualizer
  • lightmap_datalightmap baking passlightmap_data - lightmap baking проход
  • deferreddeferred passdeferred - deferred проход
  • auxiliaryauxiliary passauxiliary - auxiliary проход
  • emissionemission passemission - emission проход
  • refractionrefraction passrefraction - refraction проход
  • reflectionreflection passreflection - reflection проход
  • transparent_blurtransparent blur passtransparent_blur - transparent blur проход
  • ambientambient passambient - ambient проход
  • light_environment_probeEnvironment Probe light passlight_environment_probe - Environment Probe легкий проход
  • light_voxel_probeVoxel Probe light passlight_voxel_probe - Voxel Probe легкий проход
  • light_omniomni-directional light passlight_omni - omni-directional легкий проход
  • light_projprojected light passlight_proj - projected light проход
  • light_worldworld light pass (called only when there are more than one WorldLight present in the world)light_world — пропуск world light (вызывается, только когда в мире присутствует более одного WorldLight)
  • light_allenvironment probe, omni-directional light, projected light, world light passeslight_all - environment probe, omni-directional light, projected light, world light проходов
  • depth_pre_passnative depth pre-passdepth_pre_pass-native depth предварительный проход
  • ms_depthSRAA passms_depth - SRAA проход
  • shadowshadows passshadow - shadows проход
  • postpost-process passpost - post-process проход
  • object_postobject post-process passobject_post - object post-process проход
  • procedural_decalsprocedural decals passprocedural_decals - procedural decals проход
  • procedural_fieldsprocedural fields passprocedural_fields - procedural fields проход

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

ULON
Pass deferred 
{
	Vertex = deferred_shader
	Fragment = deferred_shader
}
	
Pass shadow 
{
	Vertex = deferred_shader
	Fragment = deferred_shader
}

Pass depth_pre_pass 
{
	Vertex = depth_pre_pass_shader
	Fragment = depth_pre_pass_shader
}
	
Pass ms_depth 
{
	Vertex = depth_pre_pass_shader
	Fragment = depth_pre_pass_shader
}
Примечание
If the vertex shader isn't specified, the default core/shaders/common/empty.vert shader will be used.Если вершинный шейдер не указан, будет использоваться шейдер по умолчанию core/shaders/common/empty.vert.

Besides the shader node you can specify the relative path (as a string) to the file containing shader code in UUSL:Кроме узла шейдера в UUSL можно указать относительный путь (в виде строки) к файлу с кодом шейдера:

ULON
Pass lightmap_data
{
	Vertex = "core/shaders/mesh/lightmap_data.shader"
	Fragment = "core/shaders/mesh/lightmap_data.shader"
}

It is also possible to write inline shaders inside the Pass node (put them inside the #{ … }# construct):Также можно написать встроенные шейдеры внутри ноды Pass (поместите их внутрь конструкции #{ … }#):

ULON
Pass name
{
	Geometry = 
	#{
		// UUSL code
	}#
}

ArgumentsАргументы#

definesdefines#

String

Definitions that will be passed to the shader.Определения, которые будут переданы шейдеру.

Usage Example:Пример использования:

ULON
defines="MY_DEFINE=32,MY_DEFINE_2"
Примечание
You can list multiple defines separated by a comma without any space. To specify a value for a define, write the value after the equals sign symbol.Вы можете указать несколько определений, разделенных запятой без пробела. Чтобы указать значение для определения, напишите значение после символа знака равенства.

nodenode#

String

Specifies the type of a node for which this pass will be used (by default - all node types).Указывает тип узла, для которого будет использоваться этот проход (по умолчанию - все типы узлов).

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

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

ULON
Pass ambient <defines="BOX,HEIGHT" node=ObjectVolumeBox>
{
	Vertex = volume_shader
	Fragment = volume_shader
}

Pass ambient <defines="SPHERE,HEIGHT" node=ObjectVolumeSphere>
{
	Vertex = volume_shader
	Fragment = volume_shader
}
Последнее обновление: 07.04.2022
Build: ()