Проходы
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:Синтаксис следующий:
Pass render_pass_name
{
Vertex = deferred_shader
Fragment = deferred_shader
}
You can check the current pass in the shader using the following defines:Вы можете проверить текущий проход в шейдере, используя следующие определения :
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 пользовательских проходов)
- wireframe — wireframe passwireframe - wireframe проход
- visualizer_solid — visualizer solid passvisualizer_solid — сплошной проход visualizer
- lightmap_data — lightmap baking passlightmap_data - lightmap baking проход
- deferred — deferred passdeferred - deferred проход
- auxiliary — auxiliary passauxiliary - auxiliary проход
- emission — emission passemission - emission проход
- refraction — refraction passrefraction - refraction проход
- reflection — reflection passreflection - reflection проход
- transparent_blur — transparent blur passtransparent_blur - transparent blur проход
- ambient — ambient passambient - ambient проход
- light_environment_probe — Environment Probe light passlight_environment_probe - Environment Probe легкий проход
- light_voxel_probe — Voxel Probe light passlight_voxel_probe - Voxel Probe легкий проход
- light_omni — omni-directional light passlight_omni - omni-directional легкий проход
- light_proj — projected light passlight_proj - projected light проход
- light_world — world light pass (called only when there are more than one WorldLight present in the world)light_world — пропуск world light (вызывается, только когда в мире присутствует более одного WorldLight)
- light_all — environment probe, omni-directional light, projected light, world light passeslight_all - environment probe, omni-directional light, projected light, world light проходов
- depth_pre_pass — native depth pre-passdepth_pre_pass-native depth предварительный проход
- ms_depth — SRAA passms_depth - SRAA проход
- shadow — shadows passshadow - shadows проход
- post — post-process passpost - post-process проход
- object_post — object post-process passobject_post - object post-process проход
- procedural_decals — procedural decals passprocedural_decals - procedural decals проход
- procedural_fields — procedural fields passprocedural_fields - procedural fields проход
Usage ExamplesПримеры использования#
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
}
Besides the shader node you can specify the relative path (as a string) to the file containing shader code in UUSL:Кроме узла шейдера в UUSL можно указать относительный путь (в виде строки) к файлу с кодом шейдера:
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 (поместите их внутрь конструкции #{ … }#):
Pass name
{
Geometry =
#{
// UUSL code
}#
}
ArgumentsАргументы#
definesdefines#
String
Definitions that will be passed to the shader.Определения, которые будут переданы шейдеру.
Usage Example:Пример использования:
defines="MY_DEFINE=32,MY_DEFINE_2"
nodenode#
String
Specifies the type of a node for which this pass will be used (by default - all node types).Указывает тип узла, для которого будет использоваться этот проход (по умолчанию - все типы узлов).
Available values:Доступные значения:
- DecalProj — projected decal
- DecalOrtho — orthographic decal
- DecalMesh — mesh decal
- LandscapeLayerMap — landscape layer map
- ObjectDummy — Dummy object
- ObjectDynamic — dynamic object
- ObjectMeshStatic — static mesh
- ObjectMeshCluster — mesh cluster
- ObjectMeshClutter — mesh clutter
- ObjectMeshSkinned — Skinned Mesh
- ObjectMeshDynamic — Dynamic Mesh
- ObjectMeshSplineCluster — mesh spline cluster
- ObjectLandscapeTerrain — Landscape Terrain
- ObjectTerrainGlobal — Global Terrain
- ObjectGrass — Grass
- ObjectParticles — particles
- ObjectBillboards — billboards
- ObjectVolumeBox — Volume Box
- ObjectVolumeSphere — Volume Sphere
- ObjectVolumeOmni — Volume Omni
- ObjectVolumeProj — Volume Projected
- ObjectGui — GUI object
- ObjectGuiMesh — GUI mesh
- ObjectWaterGlobal — Global Water
Usage ExampleПример использования#
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
}