This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
专业(SIM)
UnigineEditor
界面概述
资源工作流程
版本控制
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
Plugins
File Formats
材质和着色器
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
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
Tutorials

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上执行代码,读取和写入缓冲区数据。

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:此代码等效于:

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

layout (local_size_x = WIDTH_GROUP, local_size_y = HEIGHT_GROUP) in;
void main() {
	<your code here>
}
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 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包含当前由计算着色器操作的工作项的本地线性索引。
最新更新: 2023-11-30
Build: ()