本文主要参考下面这两篇文章,
如果对于 UE 如何写 Shader 还不熟悉,请参考下面几篇文章:
- 图1
前面几篇文章介绍了往 Shader 中添加 Color/Texture/Uniform 变量,本文章将介绍如何往 Shader中添加 Compute Shader。本文重点介绍使用步骤,关于原理性知识请参考最上面的两篇参考文章。
在蓝图中调用 UseComputeShader 函数
UseComputeShader 函数 C++ 实现
OutputRenderTarget,蓝图中的RenderTarget资源UniformStructData,Uniform数据结构体
虽然最终渲染出来的效果(见图1)有纹理贴图的效果,但是这个贴图并不是从外面传入进去的,而是使用 Compute Shader 计算生成的纹理。
UseComputerShader_RenderThread 函数
该函数主要是由两部分组成:
- 使用 Compute Shader 生成纹理 Texture;
- 将生成好的 Texture 数据传输给 Vertex 和 Pixel 渲染函数进行渲染,这部分跟之前几篇文章渲染流程基本上是一样的,这里就不做重点阐述了。如果还有不清楚的地方,可以参考这个系列文章中的前面几篇文章。