我的专栏目录:
YivanLee:专题概述及目录![图标](https://i-blog.csdnimg.cn/blog_migrate/d6ea8e09530a242b2ee5802be9b6a242.png)
简介:
Computeshader非常胜任大量的计算,有时候可以把这种大量计算的工作先交给GPU计算然后再把计算的结果拿给我们使用比如物理模拟,流体模拟等,下面我们就在虚幻4中使用ComputeShader。
先上效果图吧
这是一张纯由ComputeShader计算出来的一张图片,代码来自Shadertoy。
![v2-e0bfe75c42d1f5876d3e3de2d3a4959a_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/c3c95bcf3e566a0e9900796fb2d981ef.jpeg)
我下面的代码是基于我前面章节所写的代码的,想要知道从零是如何开始的,请从第二卷开始看。
在开始写虚幻的compute shader之前我们需要了解ComputeShader,这里有一篇unity的相关文章,只看它理论部分就好
ComputeShader的原理我在这里主要贴一下这张图,这里需要仔细理解这个图:
![v2-a1c51f4c5604bf0dba9dd837fe1b3528_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/6e2c6d7ec13a5f57ae37ff2981718191.jpeg)
下面我做一个举例:
假设我现在有一张64x64这么大的一张RT需要给CS计算。我的CS代码是下面这么写的:
![v2-4e333224b889fa4e558cac9544480718_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/3a32449ba9296640ba1f9d6b1d08d434.jpeg)
那么我需要怎么dispatch呢:
![v2-ea5079519888a71df0ecc1aab37751a9_b.png](https://i-blog.csdnimg.cn/blog_migrate/c055cb09f3917e02dbaf0a2ceaaaa8c1.png)
可以看到我的SurfaceSize是64,除以32以后我实际上di