This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
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
Учебные материалы

Вычислительные шейдеры 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
#include <core/materials/shaders/render/common.h>

MAIN_COMPUTE_BEGIN(WIDTH_GROUP,HEIGHT_GROUP)
	<your code here>
MAIN_COMPUTE_END

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

Direct3D
#include <core/materials/shaders/render/common.h>

[numthreads(WIDTH_GROUP, HEIGHT_GROUP, 1)]
void main(DISPATCH_INFO dispatch_info) {
	<your code here>
}

Semantics
Семантика#

UUSL Direct3D Description
GROUP_ID GROUP_ID SV_GroupID SV_GroupID Contains the index of the workgroup currently being operated on by a compute shader Содержит индекс рабочей группы, над которой в данный момент работает вычислительный шейдер
GROUP_THREAD_ID GROUP_THREAD_ID SV_GroupThreadID SV_GroupThreadID Contains the index of work item currently being operated on by a compute shader Содержит индекс рабочего элемента, над которым в настоящее время работает вычислительный шейдер
DISPATCH_THREAD_ID DISPATCH_THREAD_ID SV_DispatchThreadID SV_DispatchThreadID Contains the global index of work item currently being operated on by a compute shader Содержит глобальный индекс рабочего элемента, над которым в настоящее время работает вычислительный шейдер
GROUP_INDEX GROUP_INDEX SV_GroupIndex SV_GroupIndex Contains the local linear index of work item currently being operated on by a compute shader Содержит локальный линейный индекс рабочего элемента, над которым в данный момент работает вычислительный шейдер

Keywords
Ключевые слова#

UUSL Direct3D Описание
SHARED groupshared Mark a variable for thread-group-shared memory for compute shadersПомечает переменную для разделяемой группой потоков памяти для вычислительных шейдеров
MEMORY_BARRIER_SHARED GroupMemoryBarrier() Blocks execution of all threads in a group until all group shared accesses have been completedБлокирует выполнение всех потоков в группе до тех пор, пока не будут завершены все групповые общие доступы
MEMORY_BARRIER_SHARED_SYNC GroupMemoryBarrierWithGroupSync() Blocks 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Блокирует выполнение всех потоков в группе, пока не будут завершены все групповые общие доступы и все потоки в группе не достигнут этого вызова
Последнее обновление: 16.08.2024
Build: ()