kernelIndex | 要执行的内核。单个计算着色器资源可具有多个内核入口点。 |
argsBuffer | 具有分发参数的缓冲区。 |
argsOffset | 缓冲区中的字节偏移,绘制参数起始位置。 |
执行计算着色器。
此函数“运行”该计算着色器,给定工作大小是从 GPU 直接读取的。典型的用例是从 ComputeShader 中生成任意数量的数据,然后分发这些数据,无需回读 CPU。
具有参数 argsBuffer
的缓冲区必须以给定的 argsOffset
偏移获得三个整数:
X 尺寸中的工作组数、Y 尺寸中的工作组数、Z 尺寸中的工作组数。
在每个工作组中均进行了一定数量的着色器调用(“线程”)。该工作组
大小是在计算着色器本身中指定的(使用“numthreads”HLSL 属性),因此计算着色器
调用的总数是组数乘以线程组大小。
可使用 GetKernelThreadGroupSizes 函数查询工作组的大小。
它们直接映射到 Direct3D11 DispatchIndirect、OpenGL glDispatchComputeIndirect 以及其他图形 API 上的等同函数。
另请参阅:Dispatch、Graphics.DrawProceduralIndirect、ComputeBuffer.CopyCount、计算着色器。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.