This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Полезные советы
Программирование на C#
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров узла
Setting Up Materials
Setting Up Properties
Освещение
Landscape Tool
Sandworm (Experimental)
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Встроенные объекты
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Objects
Sound Objects
Pathfinding Objects
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
UnigineScript
C++
C#
File Formats
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
Работа с контентом
Оптимизация контента
Материалы
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Вычислительные шейдеры UUSL

UUSL supports compute shaders: there are special functions, semantics and parameters for compute shaders. UUSL поддерживает вычислительные шейдеры: существуют специальные функции, семантика и параметры для вычислительных шейдеров.

In Unigine, compute shaders have a *.comp extension. В Unigine вычислительные шейдеры имеют расширение *.comp.

A compute shader is a special part of the graphics pipeline. It allows to execute code on the GPU, read and write buffer data. Вычислительный шейдер - это особая часть графического конвейера. Он позволяет выполнять код на GPU, читать и записывать данные буфера.

Рекомендуем ознакомиться
This article assumes you have prior knowledge of the compute shaders. Also, read the following topics on UUSL before proceeding: UUSL Data Types and Common Intrinsic FunctionsUUSL TexturesUUSL SemanticsUUSL ParametersВ этой статье предполагается, что вы уже знакомы с вычислительными шейдерами. Кроме того, прежде чем продолжить, прочтите следующие темы о UUSL:

Main FunctionОсновная функция#

To start and end the void Main function of the compute shader, use the following instructions: Чтобы запустить и завершить функцию void Main вычислительного шейдера, используйте следующие инструкции:

UUSL
MAIN_COMPUTE_BEGIN(WIDTH_GROUP,HEIGHT_GROUP)
	<your code here>
END_COMPUTE
Внимание
You should add a new line (press Enter) after closing the instruction. После закрытия инструкции следует добавить новую строку (нажмите Enter).

This code is equivalent to: Этот код эквивалентен:

OpenGL
layout (local_size_x = WIDTH_GROUP, local_size_y = HEIGHT_GROUP) in;
void main() {
	<your code here>
}
Direct3D
[numthreads(WIDTH_GROUP, HEIGHT_GROUP, 1)]
void main(DISPATCH_INFO dispatch_info) {
	<your code here>
}

SemanticsСемантика#

UUSL OpenGL Direct3D Description
GROUP_ID SHARED GROUP_ID gl_WorkGroupID shared gl_WorkGroupID SV_GroupID groupshared SV_GroupID Contains the index of the workgroup currently being operated on by a compute shaderMark a variable for thread-group-shared memory for compute shaders Содержит индекс рабочей группы, над которой в данный момент работает вычислительный шейдер
GROUP_THREAD_ID MEMORY_BARRIER_SHARED GROUP_THREAD_ID gl_LocalInvocationID memoryBarrierShared() gl_LocalInvocationID SV_GroupThreadID GroupMemoryBarrier() SV_GroupThreadID Contains the index of work item currently being operated on by a compute shaderBlocks execution of all threads in a group until all group shared accesses have been completed Содержит индекс рабочего элемента, над которым в настоящее время работает вычислительный шейдер
DISPATCH_THREAD_ID MEMORY_BARRIER_SHARED_SYNC DISPATCH_THREAD_ID gl_GlobalInvocationID memoryBarrierShared() barrier() gl_GlobalInvocationID SV_DispatchThreadID GroupMemoryBarrierWithGroupSync() SV_DispatchThreadID Contains the global index of work item currently being operated on by a compute shaderBlocks execution of all threads in a group until all group shared accesses have been completed and all threads in the group have reached this call Содержит глобальный индекс рабочего элемента, над которым в настоящее время работает вычислительный шейдер
GROUP_INDEX GROUP_INDEX gl_LocalInvocationIndex gl_LocalInvocationIndex SV_GroupIndex SV_GroupIndex Contains the local linear index of work item currently being operated on by a compute shader Содержит локальный линейный индекс рабочего элемента, над которым в данный момент работает вычислительный шейдер
Последнее обновление: 24.11.2020
Build: ()