Unity Compute Shader备忘录
什么是Compute Shader,以及它能用来干什么 首先根据Direct3D 11的说明文档,我们可以知道一个Compute Shader是一个能够利用泛式(通用)的内存访问(即输入和输出),来进行任意运算的可编程着色器。作为类比,我认为Compute Shader和Unity中的Job System很像,准备好一系列的输入,并设置好输出的目标,然后执行这个Compute Shader或者Job,就能得到想要的结果。GPU和多线程,我认为在某种程度上是异曲同工的。Job System有一个优势,就是快,而Compute Shader也有这个优势,而且还要更快!Compute shader背后的思想就是General-purpose computing on graphics processing units(GPGPU),即在图形处理单元上进行通用计算。 如何在Unity里面使用Compute Shader 在Unity中创建Compute Shader之后,会得到一个默认的Compute Shader,里面的代码是这样的: // Each #kernel tells which function to compile; you can have many kernels #pragma kernel CSMain // Create a RenderTexture with enableRandomWrite flag and set it // with cs.SetTexture RWTexture2D<float4> Result; [numthreads(8,8,1)] void CSMain (uint3 id : SV_DispatchThreadID) { // TODO: insert actual code here! Result[id.xy] = float4(id.x & id....